From 6b467722ce67ad489326798250cc5312efa70dcd Mon Sep 17 00:00:00 2001
From: Kate Arzamastseva <pshns@ukr.net>
Date: Wed, 22 Jun 2011 23:16:31 +0300
Subject: [PATCH] mediamanager fixes

---
 inc/media.php                    |  37 ++++++++++-----
 inc/template.php                 |  14 ++++--
 lib/images/icon-file.png         | Bin 0 -> 3363 bytes
 lib/tpl/default/mediamanager.css |  79 ++++++++++++++++++++++++++++---
 4 files changed, 107 insertions(+), 23 deletions(-)
 create mode 100644 lib/images/icon-file.png

diff --git a/inc/media.php b/inc/media.php
index b4b62d2c5..c16665b13 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -697,7 +697,7 @@ function media_tab_view($image, $ns, $auth=null) {
 
     echo '<div class="mediamanager-tab-detail-view">';
     echo '<div class="background-container">';
-    echo $lang['media_view'];
+    echo $image;
     echo '</div>';
 
     echo '<div class="scroll-container">';
@@ -880,17 +880,17 @@ function media_diff($image, $ns, $auth) {
         $revs = getRevisions($image, 0, 1, 8192, true);
         $l_rev = $revs[0];
     }
-    echo '<table><tr><td>';
+    echo '<ul class="mediamanager-table-50"><li><div>';
     media_preview($image, $auth, $l_rev);
-    echo '</td>';
-    echo '<td>';
+    echo '</div></li>';
+    echo '<li><div>';
     media_preview($image, $auth, $r_rev);
-    echo '</td></tr><tr><td>';
+    echo '</div></li><li><div>';
     media_details($image, $auth, $l_rev);
-    echo '</td>';
-    echo '<td>';
+    echo '</div></li>';
+    echo '<li><div>';
     media_details($image, $auth, $r_rev);
-    echo '</td></tr></table>';
+    echo '</div></li></ul>';
 }
 
 /**
@@ -1045,7 +1045,14 @@ function media_printfile_thumbs($item,$auth,$jump){
 
     // output
     echo '<li><div>';
-    if($item['isimg']) media_printimgdetail($item, true);
+    if($item['isimg']) {
+        media_printimgdetail($item, true);
+    } else {
+        echo '<a name="d_:'.$item['id'].'" class="image" title="'.$item['id'].'" href="'.
+            media_managerURL(array('image' => hsc($item['id']))).'">';
+        echo '<img src="'.DOKU_BASE.'lib/images/icon-file.png" width="90px" />';
+        echo '</a>';
+    }
     echo '<a href="'.media_managerURL(array('image' => hsc($item['id']))).'" name=
         "h_:'.$item['id'].'" class="info" >'.hsc($file).'</a>';
     if($item['isimg']){
@@ -1054,6 +1061,8 @@ function media_printfile_thumbs($item,$auth,$jump){
         $info .= '&#215;';
         $info .= (int) $item['meta']->getField('File.Height');
         echo '<span class="info">'.$info.'</span>';
+    } else {
+        echo '<span class="info">&nbsp;</span>';
     }
     $info = '<i>'.dformat($item['mtime']).'</i>';
     echo '<span class="info">'.$info.'</span>';
@@ -1073,21 +1082,25 @@ function media_printimgdetail($item, $fullscreen=false){
     $w = (int) $item['meta']->getField('File.Width');
     $h = (int) $item['meta']->getField('File.Height');
     if($w>$size || $h>$size){
-        $ratio = $item['meta']->getResizeRatio($size);
+        if (!$fullscreen) {
+            $ratio = $item['meta']->getResizeRatio($size);
+        } else {
+            $ratio = $item['meta']->getResizeRatio($size,$size);
+        }
         $w = floor($w * $ratio);
         $h = floor($h * $ratio);
     }
     $src = ml($item['id'],array('w'=>$w,'h'=>$h));
     $p = array();
     $p['width']  = $w;
-    $p['height'] = $h;
+    if (!$fullscreen) $p['height'] = $h;
     $p['alt']    = $item['id'];
     $p['class']  = 'thumb';
     $att = buildAttributes($p);
 
     // output
     if ($fullscreen) {
-        echo '<a name="d_:'.$item['id'].'" class="image" href="'.
+        echo '<a name="d_:'.$item['id'].'" class="image" title="'.$item['id'].'" href="'.
             media_managerURL(array('image' => hsc($item['id']))).'">';
         echo '<img src="'.$src.'" '.$att.' />';
         echo '</a>';
diff --git a/inc/template.php b/inc/template.php
index 69ed61f7e..5d29f6950 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -1163,8 +1163,9 @@ function tpl_fileDetails(){
     global $NS;
     global $IMG;
 
-    $image = $_REQUEST['image'];
+    if ($_REQUEST['image']) $image = cleanID($_REQUEST['image']);
     if (!isset($IMG) && !isset($image)) return '';
+    if (isset($NS) && getNS($image) != $NS) return '';
 
     $opened_tab = $_REQUEST['tab_details'];
     if (!$opened_tab) $opened_tab = 'view';
@@ -1422,15 +1423,20 @@ function tpl_getFavicon($abs=false) {
  */
 function tpl_media() {
     //
-    global $DEL, $NS, $IMG, $AUTH, $JUMPTO;
+    global $DEL, $NS, $IMG, $AUTH, $JUMPTO, $lang;
     require_once(DOKU_INC.'lib/exe/mediamanager.php');
 
     echo '<div class="mediamanager" id="id-mediamanager">';
     echo '<div class="mediamanager-slider" id="id-mediamanager-layout">';
     echo '<div id="id-mediamanager-layout-namespaces" class="layout" style="width: 25%;">';
     html_msgarea();
-    echo hsc('Namespaces:');
-    echo '<br /><br />';
+    echo '<div class="mediamanager-tabs">';
+    echo '<a href="#" class="selected">'.hsc($lang['namespaces']).'</a>';
+    echo '<div class="clearer"></div>';
+    echo '</div>';
+    echo '<div class="background-container">';
+    echo hsc($lang['namespaces']);
+    echo '</div>';
     echo '<div class="scroll-container">';
     tpl_mediaTree(true);
     echo '</div>';
diff --git a/lib/images/icon-file.png b/lib/images/icon-file.png
new file mode 100644
index 0000000000000000000000000000000000000000..d350c8c3121240456de10bce8ba7d6cef8eb3266
GIT binary patch
literal 3363
zcmV+;4czjHP)<h;3K|Lk000e1NJLTq004jh004jp1^@s6!#-il00004b3#c}2nYxW
zd<bNS0000PbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$cwMj%lRCt{2
zU0rBY%^7}YceD8+F=ma?L<p$JMsJM0YxzDXEtIzOrllxIy@(fnLh40P0!5MPg|#54
zv=>77K*1ZUP>~{tG#>>;DUE(5V326^LX)!j(IlG9uIHTTh2Kd}&dxdWzcZUX4=kLY
zdFRYI&-2bZXU@zl!Wct>`bElg0TP%+B7izahL!*!lm&n+LtfR6B`nvg=Q4f57<;rt
zQ~>}$8UQ*VUIf$&f!Z5qxt^*ttgxv}WdQiZl8{9J000O8zPD@Fu6+n06go#OFhWSx
zgJu#D<Mou32_eKP?5aE`gb+@pQY)EErrgxj^zW6Gm4C&hXB7YdK--BECw`yL=Ov41
zCn|L<pVm}5*L7iXauUv*IrD1(P$mG#<#N#9-_K)Gv)~bgt~^BTJ<o#=A3iXpP2K`D
z!4&ztNCZGYt&pbzJOWVJVzw4GkXOwzunM3q$X5Z=wFj?#5&{CKHS$z|>n(r<j^lvi
zII6SN4jafL<&nu`Ad_LENu&(Q1@P+CD_CA$R-LW&(B-|&&CQU{=c)ONUSD|#NXS=<
zVzH?8`bir=5;nXw$RK$QtZ~Q+kW~Q5upt6Wd%ue7vj`v|p8(V3t3uKS5P%Kjt13ex
zfEok~`K$s-1i%T?-p@)t>uB#p030w)z78Y;V1y0i^OON&%v1{`0;m!2lFy1n01Png
z{kq5pNCZHIY4Ul1F*ZLQprxfnb(VFF=H_OmbV1MOsRfjO4&J_fyEWqhOn>87QF}Br
zG*I*L3FmqJ^PyY-JOdbX!Zdlh28e`7jv~LV`vGhqPZrf6A7C8{z*h29*hi5pN<IL4
z2=Jgz#siqHJy_#?+&R`xAOH<*0Fy9Ho^H^{#~6d-IA-4hOu+{7bPAA0zUO)1x^B`D
zBns2DhidYTg@Bov8RGHHn>WYW&Ck!nyLazY7l#Qp*B%HV*s)_r#d)7#8S()%2w-Yz
zig=tRfMT)8Jf&GBY$iX7NLAzmSkwk+X=#BC8#Zv+*i4?Ry-#E+l_DNjK|TPV0GM*$
zyLT^lApih6Iy#`Eql3%F=D00mPxE}&b-{JrNE;m?z`8yFTgj6JFZtp0IzoVT!@_N-
z`ehN-s3Spy{JQ=YK!a)Tw}pHFiyDEfu#G%fu#oRK4tSndah$ZzD}<V=0c;~rwhVD(
zv5+6`^S7cS$n!j66&HS;AtA2NB7+@NL$(Y-`!HGlx!`%fU*CV8tYjMv0b^rh#N)Kr
z!|Ca1C=?2+i?a&T-XG=pB>3ICzTKWZd$?;3R`7%Xm!3o%!D>!5Op?#j;PcOm#CzJg
zD6rN5%(B|HZ5#JZ1AJbEw5h47;<#zgl_`T?t;bd2!LZ<YUWFqdgla1Ubar+M*)=ye
z6Gy<BZuqIPk0T#r46f@+xAb*)1y>!mkSAjwMWla@rB7dk{F)yTWSTq`ppox;y(#hm
zEERwa<mv4233|N<sdW<qL}63y5hleaKYUIl`88bwm?lpb`F@oj)e%J77PX;4xd4`y
zmMRK?5Q4V0wphDTsRZS6S?by{<h8c8GWAxnBKQpATKMZO1WZm&5|7h*0_W!DBF7W5
zLPh}je4cA!Yh1T*@V%aO;D+iDQ1fpAyr_27A4h(;x+kT#r4~>wfWE#yVhD%>LI}2O
z*#et3Z4$bs3i2Bp8>R99_<v8H?$*6ZAt)CB?}PNolbKa)y5T3%z++9PyB4VV5MYXY
z-^=4Va%?9bz_0*Jd#;FmxQds3M>j159swx*UTd0s9t6ETcr2WTXIsQZ#GVG_pMzOo
zLsu^V`9YC9JG^g$N2{s@*6pxxo_Aqd{<aaRD*gj#Xah`7PZM7QySuwrw@Fx9T7spe
zCF$#nlJ0|bxfNDYSZ$(?BZQ!{vorS7GVAq8P%eO|aedw0-Lam#xVXsF6G+NKmh>pF
z63JT@Ui;3@PN5os1<D1G&1Qw{8X6j?wjx8#L?A-2E}K*;1sIcum4)}M=m^@qdpGeo
zEpB&pbwO8GSLAsT`8ot(b6l^95I};CsZ{k$zNru(^u%?Htg(@No5d3c>!*i@Cq(Eb
zf4vET2CX4LWz}D8@@*qhR|wEHIkcKns8!@?Gm$og0HaVbZ7i;XCkX)x@%;I7qW9<X
z`B=Nz*;$yIn<JjnQT5aEj(fl?$3<*N*G#2S(A(P^nU1xbQBW>`m6a7CyHcqH#bQxw
zXOBv<bmtu=nKnO=r>sHn2!J{}7$F3?T&|)ZEbW2T)>d#Fhie)&4@5kghaj1BA|k7H
z2w)Dv;p&PN?d|QbapT6d7gaQ6+_tz}t!uJC+2>#zTm9jDYDEYlHljjM(gx5mx<`co
zZ1zrDY5{2h=osCjlYARUv4wm9&W<1*WUKK0dhOr|Z;LbprD^~hs{VTI;9<3=L0AA$
z<dgoj0wDzHbUHRaj4PK(;e}~Z5JIaHOic@cv`<3SmWk`{?_aYY7SPnxl<+cfaW@)u
zj@46m^3G<nuyg0mnjs%R@MDloWBP3&pLE=I@&N>D02+C{y}iT`K(o)~a@_L@MIKgM
z9<uhqFlU1hSfD%v<Z?M7yQZclE&<r^fNgC^@}R1pgX3xso*Sq|Qfwq2po#*}O}@>f
z*h)TtCCkM}-9*yC^Lbkr`2ZFS3y&jzJ;i06<&=T;>EX1uhNv5<Hj%X=1kyeU>2w;3
z#o{MgI<3RPRV=*{wQn;iaogE!7SieT>I!1CwSsBn`@O8GR0`7R^y)L8nVESqJ3ISN
zpg`+i#|8yJ`sdJKx9`V~A7OcUd38Td<svar*1J^Mw70ht7sK-Z8pfXs82<Uo#)sz$
z`g!{+mw28B_wL<$dF<G+pJI#`hy@Ekxd7h2eG34U-cS4M*!S<>!|d!V0I(Cua-1g}
zZ{8x;^gNF!0M-Svf@J%@;QoUL4`vP@KKw(BG1H=pS{i{YRe$)S59uRH7`n)><~2*D
z5|dq2USaZsztPdrr2_{J`~YM8hBZ&+0@$~2A2ki>;dOU+!`7`^iD_()>pV81%h5)W
z?h9gke7tn<;K463#xHpCHPR125<smHDQZLdTuwt2`Tp<q>(|cU;NZ^|7Z?A-l`-%M
zfchrDx^~Zc>)`Q;V71{H^AHv5{onNTw0H94$%EtL<KHl68i2A@!gyZ!L>{n=z3nzp
zppic}H;2!kKmWUtk&&BB84^&{Rl;~ZCA=+SW1|pg0ze4GHuf;au(-GgmoH!b<IS5l
z{}P)S1yvmu?%%kLq*T*}CIA}w#bObLhljr&9v=P!##n0hjC3QAm3%+$*-DB@n=rzJ
z2L(|sm*M*L>vt|(xbRzyF}16ghN_GTHtG2`3xR|<?{{4nZr!@|==AB+zrh%b&B6^q
zc|X9jXV2E``#0Rz*H>{YxL+s~V19m{XiGxWIa!;iG>wgo(9_dHwP6uLTsfk=-}5}U
zd-v}6@#DvTfiad}QS&<}9~K_|-=A=!Cu-YqoHe#IPobq#EgqKfeloQ{xT+8TMn*>7
z9yxO4M;PPz3S$WfeGZPR`n$Ti)+ilgwz=)Ct*w#gqK=Drv}i5R(9jT@j)#0w+Bolj
z{P^+vLx&E1fieCsvG5X5`Z*XO1U)@HYi_~^?P0aGwLx23oAJ0@jcbw?zl!qyv9Yn@
zcm4aXK?9Tx3lIJgGAsEeNUfF)OU)DI`Mw}tym;~H=+UD;E|<&W6~>C7tPvRe>lD)u
z*k&65sQBhj^8Pn(-grYpL%*7woO}ctAuWKQx7+Z5ZMF#?kNOn~1$^$@xvw5Qdh~aq
zu|jYQfQ9VvzRjdmtA+|97%s!!zp$_X7cX8sb^G@1uOl;12rdDHV|(y;)P52IDiP)R
z%gf7f<;s;mU%h(uPned8A}9#~r0uwK^&*5gguTC9F2l8J*Zz9x(xnp^W9o`*svso*
z(+}8Yn>d8um>kD}8#iuzbN1}n0gSQSKWKA8_+yai2W+!V9Q@a4-}_zHg*$idd^<EW
z^h=EKGR0guglYiO57_3gK|?y7UiEy>^Wgsd`>zKF2Y-SYhH&eE@LK@uw#_!GugQYo
zV2_6nAI=U8419?hhj8lv_gjGI_IkHrg<k_adGh4r{{8#Ek2!{L>j2M~K!^5G$2L-I
zBOl=N*V30SUzP_32EM?YL%4N-MF1WElmK95VPT=-d%q9W4JVbPsEq5P!~=XD5}wIq
zKAk#s>gR<*;alO16oM)M{CUiohY)%{F){JCiHQl}8J{8#Pv(K!U?0ZQr%$hqj*k9A
tX{HiDs&6nsZNZ8aLK2umB7i!_{{RgX+`7Z6NNoTB002ovPDHLkV1kA<PUZjr

literal 0
HcmV?d00001

diff --git a/lib/tpl/default/mediamanager.css b/lib/tpl/default/mediamanager.css
index 25816e273..e7c78dbcf 100644
--- a/lib/tpl/default/mediamanager.css
+++ b/lib/tpl/default/mediamanager.css
@@ -24,6 +24,11 @@
     overflow-y: auto;
 }
 
+.mediamanager .clearer {
+    font-size: 0;
+    line-height: 0;
+}
+
 .mediamanager .mediamanager-slider {
     width: auto;
 }
@@ -51,7 +56,7 @@
 }
 
 .mediamanager-link-thumbnails {
-    background: url('/lib/images/icon-thumb.png') 0 -4px no-repeat;
+    background: url('../../images/icon-thumb.png') 0 -4px no-repeat;
     padding-left: 30px;
     display: block;
     float: left;
@@ -60,7 +65,7 @@
 }
 
 .mediamanager-link-list {
-    background: url('/lib/images/icon-list.png') 0 -4px no-repeat;
+    background: url('../../images/icon-list.png') 0 -4px no-repeat;
     padding-left: 30px;
     display: block;
     float: left;
@@ -69,7 +74,7 @@
 }
 
 .mediamanager-block-sort {
-    background: url('/lib/images/icon-sort.png') 0 -4px no-repeat;
+    background: url('../../images/icon-sort.png') 0 -4px no-repeat;
     padding-left: 30px;
     display: block;
     float: right;
@@ -148,14 +153,44 @@ form.meta textarea.edit {
     vertical-align: top;
     display: -moz-inline-stack;
     text-align: center;
+    zoom: 1;
+    *display: inline;
+    _height: 130px;
+    position: relative;
+}
+
+.mediamanager-thumbs li .image {
+    width: 100%;
+    height: 90px;
+    display: block;
+    overflow: hidden;
 }
 
 .mediamanager-thumbs li .info {
     display: block;
+    overflow: hidden;
+}
+
+.mediamanager-thumbs li input[type=checkbox] {
+    /*position: absolute;
+    left: 100%;
+    top: 100%;
+    margin-left: -20px;
+    margin-top: -20px;*/
+    display: none;
+}
+
+.mediamanager-thumbs li:hover input[type=checkbox],
+.mediamanager-thumbs li input[type=checkbox]:checked {
+    display: inline;
 }
 
 .mediamanager-list li {
+    list-style: none;
     display: block;
+    position: relative;
+    max-height: 50px;
+    margin: 0;
     margin-bottom: 3px;
 }
 
@@ -164,10 +199,11 @@ form.meta textarea.edit {
 }
 
 .mediamanager-list li .image {
-    width: 50px;
-    height: 50px;
+    width: 10%;
+    display: block;
     overflow: hidden;
     float: left;
+    height: 40px;
 }
 
 .mediamanager-list li .image img {
@@ -177,10 +213,39 @@ form.meta textarea.edit {
 .mediamanager-list li .info {
     overflow: hidden;
     float: left;
-    margin-left: 5px;
-    width: 20%;
+    width: 19%;
+    margin-left: 1%;
+}
+
+.mediamanager-list li input[type=checkbox] {
+    position: absolute;
+    left: 100%;
+    margin-left: -20px;
+    margin-top: 3px;
+    display: none;
+}
+
+.mediamanager-list li:hover input[type=checkbox],
+.mediamanager-list li input[type=checkbox]:checked {
+    display: block;
 }
 
 .mediamanager-file-list li:hover {
     background-color: #dadada;
 }
+
+.mediamanager-table-50 {
+    padding: 0;
+    margin: 0 !important;
+}
+
+.mediamanager-table-50 li {
+    width: 48%;
+    display: inline-block;
+    margin: 0;
+    margin-bottom: 10px;
+    padding: 2px;
+    vertical-align: top;
+    zoom: 1;
+    *display: inline;
+}
\ No newline at end of file
-- 
GitLab