PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /home/dux/www/OLD/fileman/js
Viewing File: /home/dux/www/OLD/fileman/js/main.js
/* RoxyFileman - web based file manager. Ready to use with CKEditor, TinyMCE. Can be easily integrated with any other WYSIWYG editor or CMS. Copyright (C) 2013, RoxyFileman.com - Lyubomir Arsov. All rights reserved. For licensing, see LICENSE.txt or http://RoxyFileman.com/license This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. Contact: Lyubomir Arsov, liubo (at) web-lobby.com */ $.ajaxSetup ({cache: false}); function selectFile(item){ $('#pnlFileList li').removeClass('selected'); $(item).prop('class', 'selected'); var html = RoxyUtils.GetFilename($(item).attr('data-path')); html += ' ('+t('Size')+': '+RoxyUtils.FormatFileSize($(item).attr('data-size')); if($(item).attr('data-w') > 0) html += ', '+t('Dimensions')+':'+$(item).attr('data-w')+'x'+$(item).attr('data-h'); html += ')'; $('#pnlStatus').html(html); } function getLastDir(){ return RoxyUtils.GetCookie('roxyld'); } function setLastDir(path){ RoxyUtils.SetCookie('roxyld', path, 10); } function selectDir(item){ var d = Directory.Parse($(item).parent('li').attr('data-path')); if(d){ d.Select(); } } function startDragDir(){ } function startDragFile(){ selectFile(this); } function dragFileOver(){ $(this).children('img.dir').attr('src', 'images/folder-green.png'); } function dragFileOut(){ $('#pnlDirList').find('img.dir').attr('src', 'images/folder.png'); } function makeDragFile(e){ var f = new File($(e.target).closest('li').attr('data-path')); return '<div class="pnlDragFile" data-path="'+f.fullPath+'"><img src="'+f.bigIcon+'" align="absmiddle">&nbsp;'+f.name+'</div>'; } function makeDragDir(e){ var f = new Directory($(e.target).attr('data-path')?$(e.target).attr('data-path'):$(e.target).closest('li').attr('data-path')); return '<div class="pnlDragDir" data-path="'+f.fullPath+'"><img src="images/folder.png" align="absmiddle">&nbsp;'+f.name+'</div>'; } function moveDir(e, ui, obj){ var dir = Directory.Parse(ui.draggable.attr('data-path')); var target = Directory.Parse($(obj).parent('li').attr('data-path')); if(target.fullPath != dir.path) dir.Move(target.fullPath); } function moveFile(e, ui, obj){ var f = new File(ui.draggable.attr('data-path')); var d = Directory.Parse($(obj).parent('li').attr('data-path')); var src = Directory.Parse(f.path); if(f.path != d.fullPath) f.Move(d.fullPath); } function moveObject(e, ui){ e.stopPropagation(); if(ui.draggable.hasClass('directory')) moveDir(e, ui, this); else moveFile(e, ui, this); dragFileOut(); } function clickFirstOnEnter(elId){ $('#'+elId).unbind('keypress'); $('.actions input').each(function(){this.blur();}); $('#'+elId).keypress(function(e) { if (e.keyCode == $.ui.keyCode.ENTER) { e.stopPropagation(); $(this).parent().find('.ui-dialog-buttonset button').eq(0).trigger('click'); } }); } function addDir(){ var f = getSelectedDir(); if(!f) return; clickFirstOnEnter('pnlDirName'); $('#txtDirName').val(''); var dialogButtons = {}; dialogButtons[t('CreateDir')] = function(){ var newName = $.trim($('#txtDirName').val()); if(!newName) alert(t('E_MissingDirName')); if(f.Create(newName)){ $('#pnlDirName').dialog('close'); } }; dialogButtons[t('Cancel')] = function(){$('#pnlDirName').dialog('close');}; $('#pnlDirName').dialog({title: t('T_CreateDir'),modal:true,buttons:dialogButtons}); } var uploadFileList = new Array(); function showUploadList(files){ var filesPane = $('#uploadFilesList'); filesPane.html(''); clearFileField(); for(i = 0; i < files.length; i++){ filesPane.append('<div class="fileUpload"><div class="fileName">'+files[i].name+' ('+RoxyUtils.FormatFileSize(files[i].size)+')<span class="progressPercent"></span><div class="uploadProgress"><div class="stripes"></div></div></div><a class="removeUpload" onclick="removeUpload(' + i + ')"></a></div>'); } if(files.length > 0) $('#btnUpload').button('enable'); else $('#btnUpload').button('disable'); } function listUploadFiles(files){ if(!window.FileList) { $('#btnUpload').button('enable'); } else if(files.length > 0) { uploadFileList = new Array(); addUploadFiles(files); } } function addUploadFiles(files){ for(i = 0; i < files.length; i++) uploadFileList.push(files[i]); showUploadList(uploadFileList); } function removeUpload(i){ var el = findUploadElement(i); el.remove(); try{ uploadFileList.splice(i, 1); showUploadList(uploadFileList); } catch(ex){ //alert(ex); } } function findUploadElement(i){ return $('#uploadFilesList .fileUpload:eq(' + (i)+ ')'); } function updateUploadProgress(e, i){ var el = findUploadElement(i); var percent = 99; if (e.lengthComputable) { percent = Math.floor((e.loaded / e.total) * 100); } if(percent > 99) percent = 99; el.find('.uploadProgress').css('width', percent + '%'); el.find('.progressPercent').html(' - ' + percent + '%'); } function uploadComplete(e, i){ uploadFinished(e, i, 'ok'); } function uploadError(e, i){ setUploadError(i); uploadFinished(e, i, 'error'); } function setUploadError(i){ var el = findUploadElement(i); el.find('.uploadProgress').css('width', '100%').addClass('uploadError').removeClass('uploadComplete'); el.find('.progressPercent').html(' - <span class="error">' + t('E_UploadingFile')+'</span>'); } function setUploadSuccess(i){ var el = findUploadElement(i); el.find('.uploadProgress').css('width', '100%').removeClass('uploadError').addClass('uploadComplete'); el.find('.progressPercent').html(' - 100%'); } function uploadCanceled(e, i){ uploadFinished(e, i, 'error'); } function uploadFinished(e, i, res){ var el = findUploadElement(i); var httpRes = null; try{ httpRes = JSON.parse(e.target.responseText); } catch(ex){} if((httpRes && httpRes.res == 'error') || res != 'ok'){ res = 'error'; setUploadError(i); } else{ res = 'ok'; setUploadSuccess(i) } el.attr('data-ulpoad', res); checkUploadResult(); } function checkUploadResult(){ var all = $('#uploadFilesList .fileUpload').length; var completed = $('#uploadFilesList .fileUpload[data-ulpoad]').length; var success = $('#uploadFilesList .fileUpload[data-ulpoad="ok"]').length; if(completed == all){ //$('#uploadResult').html(success + ' files uploaded; '+(all - success)+' failed'); uploadFileList = new Array(); var d = Directory.Parse($('#hdDir').val()); d.ListFiles(true); $('#btnUpload').button('disable'); } } function fileUpload(f, i){ var http = new XMLHttpRequest(); var fData = new FormData(); var el = findUploadElement(i); el.find('.removeUpload').remove(); fData.append("action", 'upload'); fData.append("method", 'ajax'); fData.append("d", $('#hdDir').attr('value')); fData.append("files[]", f); http.upload.addEventListener("progress", function(e){updateUploadProgress(e, i);}, false); http.addEventListener("load", function(e){uploadComplete(e, i);}, false); http.addEventListener("error", function(e){uploadError(e, i);}, false); http.addEventListener("abort", function(e){uploadCanceled(e, i);}, false); http.open("POST", RoxyFilemanConf.UPLOAD, true); http.setRequestHeader("Accept", "*/*"); http.send(fData); } function dropFiles(e, append){ if(e && e.dataTransfer && e.dataTransfer.files){ addFile(); if(append) addUploadFiles(e.dataTransfer.files); else listUploadFiles(e.dataTransfer.files); } else addFile(); } function clearFileField(selector){ if(!selector) selector = '#fileUploads'; try{ $(selector).val(''); $(selector).val(null); } catch(ex){} } function addFileClick(){ $('#uploadResult').html(''); showUploadList(new Array()); addFile(); } function addFile(){ clickFirstOnEnter('dlgAddFile'); $('#uploadResult').html(''); clearFileField(); var dialogButtons = {}; dialogButtons[t('Upload')] = {id:'btnUpload', text: t('Upload'), disabled:true, click:function(){ if(!$('#fileUploads').val() && (!uploadFileList || uploadFileList.length == 0)) alert(t('E_SelectFiles')); else{ if(!RoxyFilemanConf.UPLOAD){ alert(t('E_ActionDisabled')); //$('#dlgAddFile').dialog('close'); } else{ if(window.FormData && window.XMLHttpRequest && window.FileList && uploadFileList && uploadFileList.length > 0){ for(i = 0; i < uploadFileList.length; i++){ fileUpload(uploadFileList[i], i); } } else{ document.forms['addfile'].action = RoxyFilemanConf.UPLOAD; document.forms['addfile'].submit(); } } } }}; dialogButtons[t('Cancel')] = function(){$('#dlgAddFile').dialog('close');}; $('#dlgAddFile').dialog({title:t('T_AddFile'),modal:true,buttons:dialogButtons,width:400}); } function fileUploaded(res){ if(res.res == 'ok' && res.msg){ $('#dlgAddFile').dialog('close'); var d = Directory.Parse($('#hdDir').val()); d.ListFiles(true); alert(res.msg); } else if(res.res == 'ok'){ $('#dlgAddFile').dialog('close'); var d = Directory.Parse($('#hdDir').val()); d.ListFiles(true); } else alert(res.msg); } function renameDir(){ var f = getSelectedDir(); if(!f) return; if($('[data-path="'+f.fullPath+'"]').parents('li').length < 1){ alert(t('E_CannotRenameRoot')); return; } clickFirstOnEnter('pnlDirName'); $('#txtDirName').val(f.name); var dialogButtons = {}; dialogButtons[t('RenameDir')] = function(){ var newName = $.trim($('#txtDirName').val()); if(!newName) alert(t('E_MissingDirName')); if(f.Rename(newName)) $('#pnlDirName').dialog('close'); }; dialogButtons[t('Cancel')] = function(){$('#pnlDirName').dialog('close');}; $('#pnlDirName').dialog({title:t('T_RenameDir'),modal:true,buttons:dialogButtons}); RoxyUtils.SelectText('txtDirName', 0, new String(f.name).length); } function renameFile(){ var f = getSelectedFile(); if(!f) return; clickFirstOnEnter('pnlRenameFile'); $('#txtFileName').val(f.name); var dialogButtons = {}; dialogButtons[t('RenameFile')] = function(){ var newName = $.trim($('#txtFileName').val()); if(!newName) alert('Missing file name'); else if(f.Rename(newName)){ $('li[data-path="'+f.fullPath+'"] .name').text(newName); $('li[data-path="'+f.fullPath+'"]').attr('data-path', RoxyUtils.MakePath(f.path, newName)); $('#pnlRenameFile').dialog('close'); } }; dialogButtons[t('Cancel')] = function(){$('#pnlRenameFile').dialog('close');}; $('#pnlRenameFile').dialog({title:t('T_RenameFile'),modal:true,buttons:dialogButtons}); if(f.name.lastIndexOf('.') > 0) RoxyUtils.SelectText('txtFileName', 0, f.name.lastIndexOf('.')); } function getSelectedFile(){ var ret = null; if($('#pnlFileList .selected').length > 0) ret = new File($('#pnlFileList .selected').attr('data-path')); return ret; } function getSelectedDir(){ var ret = null; if($('#pnlDirList .selected')) ret = Directory.Parse($('#pnlDirList .selected').closest('li').attr('data-path')); return ret; } function deleteDir(path){ var d = null; if(path) d = Directory.Parse(path); else d = getSelectedDir(); if(d && confirm(t('Q_DeleteFolder'))){ d.Delete(); } } function deleteFile(){ var f = getSelectedFile(); if(f && confirm(t('Q_DeleteFile'))){ f.Delete(); } } function previewFile(){ var f = getSelectedFile(); if(f){ window.open(f.fullPath); } } function downloadFile(){ var f = getSelectedFile(); if(f && RoxyFilemanConf.DOWNLOAD){ var url = RoxyUtils.AddParam(RoxyFilemanConf.DOWNLOAD, 'f', f.fullPath); window.frames['frmUploadFile'].location.href = url; } else if(!RoxyFilemanConf.DOWNLOAD) alert(t('E_ActionDisabled')); } function downloadDir(){ var d = getSelectedDir(); if(d && RoxyFilemanConf.DOWNLOADDIR){ var url = RoxyUtils.AddParam(RoxyFilemanConf.DOWNLOADDIR, 'd', d.fullPath); window.frames['frmUploadFile'].location.href = url; } else if(!RoxyFilemanConf.DOWNLOAD) alert(t('E_ActionDisabled')); } function closeMenus(el){ if(!el || el == 'dir') $('#menuDir').fadeOut(); if(!el || el == 'file') $('#menuFile').fadeOut(); } function selectFirst(){ var item = $('#pnlDirList li:first').children('div').first(); if(item.length > 0) selectDir(item); else window.setTimeout('selectFirst()', 300); } function tooltipContent(){ if($('#menuFile').is(':visible')) return ''; var html = ''; var f = File.Parse($(this).attr('data-path')); if($('#hdViewType').val() == 'thumb' && f.IsImage()){ html = f.fullPath+'<br><span class="filesize">'+t('Size')+': '+RoxyUtils.FormatFileSize(f.size) + ' '+t('Dimensions')+': '+f.width+'x'+f.height+'</span>'; } else if(f.IsImage()){ if(RoxyFilemanConf.GENERATETHUMB){ imgUrl = RoxyUtils.AddParam(RoxyFilemanConf.GENERATETHUMB, 'f', f.fullPath); imgUrl = RoxyUtils.AddParam(imgUrl, 'width', RoxyFilemanConf.PREVIEW_THUMB_WIDTH); imgUrl = RoxyUtils.AddParam(imgUrl, 'height', RoxyFilemanConf.PREVIEW_THUMB_HEIGHT); } else imgUrl = f.fullPath; html = '<img src="'+imgUrl+'" class="imgPreview"><br>'+f.name+' <br><span class="filesize">'+t('Size')+': '+RoxyUtils.FormatFileSize(f.size) + ' '+t('Dimensions')+': '+f.width+'x'+f.height+'</span>'; } else html = f.fullPath+' <span class="filesize">'+t('Size')+': '+RoxyUtils.FormatFileSize(f.size) + '</span>'; return html; } function filterFiles(){ var str = $('#txtSearch').val(); $('#pnlSearchNoFiles').hide(); if($('#pnlFileList li').length == 0) return; if(!str){ $('#pnlFileList li').show(); return; } var i = 0; $('#pnlFileList li').each(function(){ var name = $(this).children('.name').text(); if(name.toLowerCase().indexOf(str.toLowerCase()) > -1){ i++; $(this).show(); } else{ $(this).removeClass('selected'); $(this).hide(); } }); if(i == 0) $('#pnlSearchNoFiles').show(); } function sortFiles(){ var d = getSelectedDir(); if(!d) return; d.ListFiles(); filterFiles(); switchView($('#hdViewType').val()); } function switchView(t){ if(t == $('#hdViewType').val()) return; if(!t) t = $('#hdViewType').val(); $('.btnView').removeClass('selected'); if(t == 'thumb'){ $('#pnlFileList .icon').attr('src', 'images/blank.gif'); $('#pnlFileList').addClass('thumbView'); if($('#dynStyle').length == 0){ $('head').append('<style id="dynStyle" />'); var rules = 'ul#pnlFileList.thumbView li{width:'+RoxyFilemanConf.THUMBS_VIEW_WIDTH+'px;}'; rules += 'ul#pnlFileList.thumbView li{height:'+(parseInt(RoxyFilemanConf.THUMBS_VIEW_HEIGHT) + 20)+'px;}'; rules += 'ul#pnlFileList.thumbView .icon{width:'+RoxyFilemanConf.THUMBS_VIEW_WIDTH+'px;}'; rules += 'ul#pnlFileList.thumbView .icon{height:'+RoxyFilemanConf.THUMBS_VIEW_HEIGHT+'px;}'; $('#dynStyle').html(rules); } $('#pnlFileList li').each(function(){ //$('ul#pnlFileList.thumbView li').css('width', RoxyFilemanConf.THUMBS_VIEW_WIDTH + 'px'); //$('ul#pnlFileList.thumbView li').css('height', (parseInt(RoxyFilemanConf.THUMBS_VIEW_HEIGHT) + 20) + 'px'); //$('ul#pnlFileList.thumbView .icon').css('width', RoxyFilemanConf.THUMBS_VIEW_WIDTH + 'px'); //$('ul#pnlFileList.thumbView .icon').css('height', RoxyFilemanConf.THUMBS_VIEW_HEIGHT + 'px'); var imgUrl = $(this).attr('data-icon-big'); if(RoxyFilemanConf.GENERATETHUMB && RoxyUtils.IsImage($(this).attr('data-path'))){ imgUrl = RoxyUtils.AddParam(RoxyFilemanConf.GENERATETHUMB, 'f', imgUrl); imgUrl = RoxyUtils.AddParam(imgUrl, 'width', RoxyFilemanConf.THUMBS_VIEW_WIDTH); imgUrl = RoxyUtils.AddParam(imgUrl, 'height', RoxyFilemanConf.THUMBS_VIEW_HEIGHT); } $(this).children('.icon').css('background-image', 'url('+imgUrl+')'); $(this).tooltip('option', 'show', {delay:50}); }); $('#btnThumbView').addClass('selected'); } else{ $('#pnlFileList').removeClass('thumbView'); $('#pnlFileList li').each(function(){ $(this).children('.icon').css('background-image','').attr('src', $(this).attr('data-icon')); $(this).tooltip('option', 'show', {delay:500}); }); $('#btnListView').addClass('selected'); } $('#hdViewType').val(t); RoxyUtils.SetCookie('roxyview', t, 10); } var clipBoard = null; function Clipboard(a, obj){ this.action = a; this.obj = obj; } function cutDir(){ var d = getSelectedDir(); if(d){ setClipboard('cut', d); d.GetElement().addClass('pale'); } } function copyDir(){ var d = getSelectedDir(); if(d){ setClipboard('copy', d); } } function cutFile(){ var f = getSelectedFile(); if(f){ setClipboard('cut', f); f.GetElement().addClass('pale'); } } function copyFile(){ var f = getSelectedFile(); if(f){ setClipboard('copy', f); } } function pasteToFiles(e, el){ if($(el).hasClass('pale')){ e.stopPropagation(); return false; } var d = getSelectedDir(); if(!d) d = Directory.Parse($('#pnlDirList li:first').children('div').first()); if(d && clipBoard && clipBoard.obj){ if(clipBoard.action == 'copy') clipBoard.obj.Copy(d.fullPath); else{ clipBoard.obj.Move(d.fullPath); clearClipboard(); } } return true; } function pasteToDirs(e, el){ if($(el).hasClass('pale')){ e.stopPropagation(); return false; } var d = getSelectedDir(); if(!d) d = Directory.Parse($('#pnlDirList li:first').children('div').first()); if(clipBoard && d){ if(clipBoard.action == 'copy') clipBoard.obj.Copy(d.fullPath); else{ clipBoard.obj.Move(d.fullPath); clearClipboard(); d.ListFiles(true); } } else alert('error'); return true; } function clearClipboard(){ $('#pnlDirList li').removeClass('pale'); $('#pnlFileList li').removeClass('pale'); clipBoard = null; $('.paste').addClass('pale'); } function setClipboard(a, obj){ clearClipboard(); if(obj){ clipBoard = new Clipboard(a, obj); $('.paste').removeClass('pale'); } } function ResizeLists(){ var tmp = $(window).innerHeight() - $('#fileActions .actions').outerHeight() - $('.bottomLine').outerHeight(); $('.scrollPane').css('height', tmp); } function removeDisabledActions(){ if(RoxyFilemanConf.CREATEDIR == ''){ $('#mnuCreateDir').next().remove(); $('#mnuCreateDir').remove(); $('#btnAddDir').remove(); } if(RoxyFilemanConf.DELETEDIR == ''){ $('#mnuDeleteDir').prev().remove(); $('#mnuDeleteDir').remove(); $('#btnDeleteDir').remove(); } if(RoxyFilemanConf.MOVEDIR == ''){ $('#mnuDirCut').next().remove(); $('#mnuDirCut').remove(); } if(RoxyFilemanConf.COPYDIR == ''){ $('#mnuDirCopy').next().remove(); $('#mnuDirCopy').remove(); } if(RoxyFilemanConf.COPYDIR == '' && RoxyFilemanConf.MOVEDIR == ''){ $('#mnuDirPaste').next().remove(); $('#mnuDirPaste').remove(); } if(RoxyFilemanConf.RENAMEDIR == ''){ $('#mnuRenameDir').next().remove(); $('#mnuRenameDir').remove(); $('#btnRenameDir').remove(); } if(RoxyFilemanConf.UPLOAD == ''){ $('#btnAddFile').remove(); } if(RoxyFilemanConf.DOWNLOAD == ''){ $('#mnuDownload').next().remove(); $('#mnuDownload').remove(); } if(RoxyFilemanConf.DOWNLOADDIR == ''){ $('#mnuDownloadDir').next().remove(); $('#mnuDownloadDir').remove(); } if(RoxyFilemanConf.DELETEFILE == ''){ $('#mnuDeleteFile').prev().remove(); $('#mnuDeleteFile').remove(); $('#btnDeleteFile').remove(); } if(RoxyFilemanConf.MOVEFILE == ''){ $('#mnuFileCut').next().remove(); $('#mnuFileCut').remove(); } if(RoxyFilemanConf.COPYFILE == ''){ $('#mnuFileCopy').next().remove(); $('#mnuFileCopy').remove(); } if(RoxyFilemanConf.COPYFILE == '' && RoxyFilemanConf.MOVEFILE == ''){ $('#mnuFilePaste').next().remove(); $('#mnuFilePaste').remove(); } if(RoxyFilemanConf.RENAMEFILE == ''){ $('#mnuRenameFile').next().remove(); $('#mnuRenameFile').remove(); $('#btnRenameFile').remove(); } } function getPreselectedFile(){ var filePath = RoxyUtils.GetUrlParam('selected'); if(!filePath){ switch(getFilemanIntegration()){ case 'ckeditor': try{ var dialog = window.opener.CKEDITOR.dialog.getCurrent(); filePath = dialog.getValueOf('info', (dialog.getName() == 'link'?'url':'txtUrl')); } catch(ex){} break; case 'tinymce3': try{ var win = tinyMCEPopup.getWindowArg("window"); filePath = win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value; if(filePath.indexOf('..') == 0) filePath = filePath.substr(2); } catch(ex){} break; case 'tinymce4': try{ var win = (window.opener?window.opener:window.parent); filePath = win.document.getElementById(RoxyUtils.GetUrlParam('input')).value; if(filePath.indexOf('..') == 0) filePath = filePath.substr(2); } catch(ex){} break; default: filePath = GetSelectedValue(); break; } } if(RoxyFilemanConf.RETURN_URL_PREFIX){ var prefix = RoxyFilemanConf.RETURN_URL_PREFIX; if(filePath.indexOf(prefix) == 0){ if(prefix.substr(-1) == '/') prefix = prefix.substr(0, prefix.length - 1); filePath = filePath.substr(prefix.length); } } return filePath; } function initSelection(filePath){ var hasSelection = false, fileSelected = true; if(!filePath) filePath = getPreselectedFile(); if(!filePath && RoxyUtils.ToBool(RoxyFilemanConf.OPEN_LAST_DIR)){ filePath = getLastDir(); fileSelected = false; } if(filePath){ var p = (fileSelected? RoxyUtils.GetPath(filePath): filePath); var d = tmp = Directory.Parse(p); do{ if(tmp){ tmp.Expand(true); hasSelection = true; } tmp = Directory.Parse(tmp.path); }while(tmp); if(d){ d.Select(filePath); hasSelection = true; } } if(!hasSelection) selectFirst(); } $(function(){ RoxyUtils.LoadConfig(); var d = new Directory(); d.LoadAll(); $('#wraper').show(); window.setTimeout('initSelection()', 100); RoxyUtils.Translate(); $('body').click(function(){ closeMenus(); }); var viewType = RoxyUtils.GetCookie('roxyview'); if(!viewType) viewType = RoxyFilemanConf.DEFAULTVIEW; if(viewType) switchView(viewType); ResizeLists(); $(".actions input").tooltip({track: true}); $( window ).resize(ResizeLists); document.oncontextmenu = function() {return false;}; removeDisabledActions(); $('#copyYear').html(new Date().getFullYear()); if(RoxyFilemanConf.UPLOAD && RoxyFilemanConf.UPLOAD != ''){ var dropZone = document.getElementById('fileActions'); dropZone.ondragover = function () { return false; }; dropZone.ondragend = function () { return false; }; dropZone.ondrop = function (e) { e.preventDefault(); e.stopPropagation(); dropFiles(e); }; dropZone = document.getElementById('dlgAddFile'); dropZone.ondragover = function () { return false; }; dropZone.ondragend = function () { return false; }; dropZone.ondrop = function (e) { e.preventDefault(); e.stopPropagation(); dropFiles(e, true); }; } if(getFilemanIntegration() == 'tinymce3'){ try { $('body').append('<script src="js/tiny_mce_popup.js"><\/script>'); } catch(ex){} } }); function getFilemanIntegration(){ var integration = RoxyUtils.GetUrlParam('integration'); if(!integration) integration = RoxyFilemanConf.INTEGRATION; return integration.toLowerCase(); } function setFile(){ var f = getSelectedFile(); if(!f){ alert(t('E_NoFileSelected')); return; } var insertPath = f.fullPath; if(RoxyFilemanConf.RETURN_URL_PREFIX){ var prefix = RoxyFilemanConf.RETURN_URL_PREFIX; if(prefix.substr(-1) == '/') prefix = prefix.substr(0, prefix.length - 1); insertPath = prefix + (insertPath.substr(0, 1) != '/'? '/': '') + insertPath; } switch(getFilemanIntegration()){ case 'ckeditor': window.opener.CKEDITOR.tools.callFunction(RoxyUtils.GetUrlParam('CKEditorFuncNum'), insertPath); self.close(); break; case 'tinymce3': var win = tinyMCEPopup.getWindowArg("window"); win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = insertPath; if (typeof(win.ImageDialog) != "undefined") { if (win.ImageDialog.getImageData) win.ImageDialog.getImageData(); if (win.ImageDialog.showPreviewImage) win.ImageDialog.showPreviewImage(insertPath); } tinyMCEPopup.close(); break; case 'tinymce4': var win = (window.opener?window.opener:window.parent); win.document.getElementById(RoxyUtils.GetUrlParam('input')).value = insertPath; if (typeof(win.ImageDialog) != "undefined") { if (win.ImageDialog.getImageData) win.ImageDialog.getImageData(); if (win.ImageDialog.showPreviewImage) win.ImageDialog.showPreviewImage(insertPath); } win.tinyMCE.activeEditor.windowManager.close(); break; default: FileSelected(f); break; } }