From f19bbd728f95a44b3d097018ce19d0dcfd75a7d5 Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Sat, 7 Dec 2013 15:27:25 +0100 Subject: [PATCH] Added new version of the UI --- .../Server/webroot/images/ajax-loader-big.gif | Bin 0 -> 6820 bytes .../webroot/images/ajax-loader-small.gif | Bin 0 -> 3208 bytes Duplicati/Server/webroot/images/clock.png | Bin 0 -> 927 bytes Duplicati/Server/webroot/images/donate.png | Bin 0 -> 888 bytes Duplicati/Server/webroot/images/hourglass.png | Bin 0 -> 701 bytes Duplicati/Server/webroot/images/pause.png | Bin 0 -> 213 bytes Duplicati/Server/webroot/images/plus.png | Bin 0 -> 343 bytes Duplicati/Server/webroot/images/settings.png | Bin 0 -> 1321 bytes .../Server/webroot/images/small-close.png | Bin 0 -> 627 bytes Duplicati/Server/webroot/index.html | 168 +++++++++++ Duplicati/Server/webroot/scripts/app.js | 78 +++++ Duplicati/Server/webroot/scripts/config.js | 9 + .../Server/webroot/stylesheets/common.css | 78 ++++- .../Server/webroot/stylesheets/customized.css | 23 +- Duplicati/Server/webroot/stylesheets/main.css | 285 ++++++++++++++++++ 15 files changed, 625 insertions(+), 16 deletions(-) create mode 100644 Duplicati/Server/webroot/images/ajax-loader-big.gif create mode 100644 Duplicati/Server/webroot/images/ajax-loader-small.gif create mode 100644 Duplicati/Server/webroot/images/clock.png create mode 100644 Duplicati/Server/webroot/images/donate.png create mode 100644 Duplicati/Server/webroot/images/hourglass.png create mode 100644 Duplicati/Server/webroot/images/pause.png create mode 100644 Duplicati/Server/webroot/images/plus.png create mode 100644 Duplicati/Server/webroot/images/settings.png create mode 100644 Duplicati/Server/webroot/images/small-close.png create mode 100644 Duplicati/Server/webroot/index.html create mode 100644 Duplicati/Server/webroot/scripts/app.js create mode 100644 Duplicati/Server/webroot/scripts/config.js create mode 100644 Duplicati/Server/webroot/stylesheets/main.css diff --git a/Duplicati/Server/webroot/images/ajax-loader-big.gif b/Duplicati/Server/webroot/images/ajax-loader-big.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ca7ada960568fff04400cda966fbdcb106abfa2 GIT binary patch literal 6820 zcmZ?wbhEHbbYgH~_{_lY|Nnmm1_mD=pQ@^=J9q9ZSg_#7j~_BJGKUTwV!#Fz|8x7f zh6Fo12DlpO889<4Ffb_olX5OfO)N=GQ7F$W$xuklO03AqPfXFv%uCB>Q2fcl$;H6H zpaU`uWGMs7e}NO8tM`V;oZ0Z#M%AKqJ#c&kX~p!OUA1BnQe zC2^?*0udYs72V4n7R;I&nHFLwP!Z(kCBVusRai^nL2H{eTkpp7xf!Y*yO+e)MSn6C z@$nRj5cVmqj;{@3VeTms;b1D2m^?KnUM#Lh-X}%TI2GESCm4vHr?vmS*PUZr7ArZmQ^`L3KP%H zvB>3;_1cngbkhAWCZ5Oz$v*RS1w{_*;8*fxRLkv}Z529`WqI)5l~c?^Ck9$1ov+iF zc`f0TjDY4LZAr1KOJ-b|q7-_qx4lmNd*@>0L{rx|)#+QL<=yYkscm219%u3W z=?%`>)>9uv?!J&ab?uwq|EkvRWYLSqWvVh&TIL&Ej&yjy;w$@tJ&4PRwIPI$?TNgN zAOoHR!vRV#iXztvBftqpFs(974U}Nkh5UK9V?m0+1|Gg8_i`p_g>^XfI~F*E%-XWF z<<%U8nm|9V1CtMgcy+x?n7wBA!_y*>3%98z9QeuEQ@k%n#N9JmTG+iHJFKpXIkmk+ zSgBirgJ}wbdz(J<44vfuD$~SSV5wycnk|kUifS1vLsGIh7MioM_GfQ#T(!MN zBK?3<@!=y`YNrxc%{$$&OO91}7u&_t3_Hcx*jTQtWtX~j+meNaV~xHPJM)|8G7nxp zl)o19=+p8qFMo;dIrVn-_H*}mOaDKq^|sisa9#yp^T!Jc2@Z@Mg3m8Tt1mpj&?WW% zLF$_gg|P?4IqceGPAbM8%$MbeN$F&iah_#S{OZoh&COmDM611=9JajJHDBT3hmiCs z8g2^%7JJQ=a$9CO%`ACY$V!vtf%PIbYIAQ2#{~Dy)DnB)w)KfpL5S(G)E0sCYq3f5 zPbHuF=De+6EMM<**p&qD1AP@jYOBsm3GP+Cy0&%3ruEV%LN~5Fyyn?Qhhw^*z=2eAj*)k*=GEeI!2y=$+d==HOwy^nwN7SU}*IBC=)n7MF*Xy5= zVmH-KamV&sq2=N4MZQf9H9cv`uKeiaW94rBN$mxD^_Lcz-lsQ05s7ZAo3Cxyvm=TNv0lmRRmxqU0DnUuu7Uni~6wou0c- z_GI)QTX<2Zd8520>j}17*Z0laDxR|7x=X?u8J6=KUg#d~m7gVb_d`g`nzO|z*M3CI z`S9AoLFPc+e?Bc9#=Jy6mWoL(jV~^+Hj13yV0$@XNun#mtpC$=4_{f`u)ANvMM%M* zfZuh>Jf1Bro|~7Qoo%r&;FhLg`pT&ejcyM;S57_K7&(IdD~D^~Mi7Gtwt>bjbryjpBC^O#wiJw<1nEZ3-Zobz+pYnOf3_bE1< zxODia#`heqd#4}jMa=J(E_3~TOxZNwp?KyN9XI_4{A@mIZOf;BnsC9*PB?N+RZNy~ zYxmJK;~QJFFYXtZBdUDW=j}Bq_suVFM1I#lI7eT^CGApF#_7}XJl{;B&$&L_W%#mg zuCmuAo8&=*kuvcGBD<4U~i<%jr^ObMi@QJ7W`0ZuZV(W*zLc#^-|s1Mq?x4-aE%8_I9)wVaTU3l8}oG$B($)KXE-Rfd zNtr5CuxmBlJ|$!)3>%?etPZ{r=!j-?t1AtQdzI0p6`D0*Xyr-(DnS-jj#Xm&5g-$(0y9S zTNtBXUY@OMv0iU|P08+S+8y%qYa}avs#{*4&uw`7q*u){)wOWSq-vbekmg-|Z0BX3+Bj|3b`bTOSulccQb5ZU-1BPYn3YEoj23jH>WeifS5h59Jp!AU@C}XuN^UY2gSjtEsO{2h@$Mr=lw< zU)T6ZC@$YOp=0}kxT%kBWMH4m6b!O>-c?s99IP5Hp|FDdUYh9%A&Ul$q z`>HES>vDBkCm-`?&!2Q`?$0aJLSCw!k*xW5 zvvr=&o5%-otlz(~JP_}4{eDf3sY(D(1q4kk3e(aQn;F;XxXzfmA+*_Hi-pFrFE)}! zp?Mq*6SP_b&!{_ca7|;Ha^vP*jTJ9h%sl1P{nWmG(&A9vZS3GC$ay92?T@4n-_{A~ zH5@p`_FPuqCc!J(Co-3bDZZG6BTJ}En1!_>g?SpQzgX!s?Z^pX$u(w*T}9fZK@&83 zEdAEyHCvQ2r{%It*wWuw@3LxpgUqIRmRk=VTDGrv)zOnRo9DCcQ9O6DdROUeagLy= z*F*f4%S^eq>p`Pw*SeH@S6&>RwfuR>-TNP8IN1HagueeVM<9aPLm>QM3X`&@;EneR zY+kQeJPMxVCOWt4i@d$9ew@KIpYOkQ#+1e$zjYIyyjuur>7Jg>p}niw)A4a*@9$kN z=a}_AV_`IJWSjb8^NNd$JswudNCc&ex?A1cC{lG`nrc_z|D9(lj9-W-yZNcDWu3C3 zvD=-~!1vZ6<){LsYqLx~eVes!RnbL<)DuB2*C%~FaIN*b(uymcO}$n-HPeLd3pBT9 zum(J5SjErwf@zO*WyFnhIt_15|Ndg=!0hPB{;yoDWcH**{5#I&NNs$@&Ack?fw5J) z@<#it-}_#6l_#G$ARAqD+fjJ&Cb76X-=@dBz3TJ()}1{yXBUTU&AO7bv-8QaY=Qj` zEx7joc~-RGIAdjdO6_*_1uHBbd)rOiU%|zi((WQt^FzmVzB zhxhWrFZf%!TSP#`OQ6CvgNPI0;^lDI%%`B@Wz}a-Nl=T$VS?7I$1QH2CujL9xrOZ5 zn`HaMK~s^VCWy~Tc?tt}D#K-&KQnhEa*M`2&^^c?vF}D-F-MATv}B-P9#dEy8%L&) zr+$WPLnlLNU|OhU@T=@u z?v|RfPf=|{V)x9WqH!k_CeLR(ShquwW0^#Q^5QdknoKu?XZPIO#{AGs{qOqcbuxhD{6E zOJ4pzRk*{|@PSIdM)0bblSNA>PB)02X3_9*kzgNZ>bV6cgAX*?S~YXYdRkKc=r{{{xf_{A3mj~mFOu(>s=eV# zbS3liHeI&IYZ=0XzX%;I3%?y^SsmT+W=f&>QPTsj5#u!{zEc&W0~wy~a89wkDSqlT@V050L;owGlMA2uw>;Y-L=h zqnbBWl0PfEKHpZ<*<#7|1uYF0y-6E569d*L%yQ~uTq-TLKHm(+*~s&>krcDWh-=dQNxS*)6^uy?|0*RSw8+U z>ktt*klnFE{Xav|2e%0d+pJ$nX?{7-oiMYKQ$0#!>Bhy!`xX8>GuhnmPibXj3Rys9+r+T3Yjdp;cx)02arctpw`$A0~Ksixn5+xGyclvj^uuV!12y66}4*FEX?#LLZ& zrZqMQyM)DrzUT~ZV&I;2WR5MqPPB+3sAy>v2n&pG0gt*wx6ax0>fVBkU{@Q-Wukc; z3KO(i0(oz4&ghVvQ84L?r_WYpQSP@P%Na7;)EM8LQp^3$6wI9V;F_OTCqdCMa*he+xBBFn#|0nQ$tUj({;GW+IX`1+I1PF zTN`J4?t2h&@rmB@=PwfPzyI{`-DmS_Zf-}v-7vn$e8sKj!twLno%L(~&5=5>_QBM8 z+gB@#Ivxrf?Updky2GJ5-(6Yezq*3V&x^??+L_pvgm^w%a(cQ!@;XNa-6d^pZCo4{ z2R=KT$k41_A$ei*bA~yr3zx=7E?(Y{YgD>|C4xosOofp(-wJlVj!-if{w+`16*R8P zC-Ud)<#1`ZT`F|98dt$?>)9x2Cucv?JT{K@);6dbc=f^iP81F|%C#r{X zrv98JJ4=W)B$A_|$xBD5(c(Uq1@PnU8>X~=1^JuL5 z@OOL58jz075f&SE$#?4a>wfvjNT zti^v~Y>e```DE9J%sf)CtfVp5uQJp37Po&%LuGNYdTnti z2!$Z!iPHjNqi0Rj4suChTdEtB6}Nhs`-T>VCX?LdQ?}^E^#sh_yu<#W_==^gb{{=% zGrM)(NvGJoRg-sJu!xJx5!-p~`W>6SNBSo}KFPv-*nHKq-D~fEm~{5zMN{_gOwC`+ zl;U0rvA*N9QAoIFXUBSp*W>zxFW5 zMw&mk=hG?idFx{30*7lhB|*Qm4hA)Z%+nU%_tvZ6`LR}3!;-zChxBG_Rr znKV;T)=lOcHZlq7`s_XakBYKyu`wodZPVoFuyFjb`02(%Tc5ulPJX&~ro5v~{KD4> zkA>xSMfj=xG-bZ(@3!uNP^F#nll_$&6QU~1I61DJ|IqQzVaYe|Bj1HY7#Z5i8(1$~ zY`K?veeRT*p}+7ZlqmwBVr5|@M-nulh*mAj9Z za^AGb*{J!d+Vhu}9QrTLTU~OsZO_IzD&3}vSD$g0EB!SJ^wEszmY8B%=_0EXpA*<* z%FNCbUhGg65W$)%&&ED|qJC6`4QsXbwCR;>6HS){RL$2}$iB2NdEPqRHJb`oZr#kp zp0{3cV<$WF(uBQ=OO+-|bWLYH>Z`$eQi5Z8_mp$d92ZxKvR-A{al?`2c85I6={=9c zpG=9Qo4m@mRiaF~cXnl>jY58@5X`;8! zH*I&dw*I%Jn1L4w0Xsm{hI696lOD}ihK08iGTM43TQG-K)%NI?Rk3lzn6r7L zh|FwsZd)+5N}FX_1{>@8d2E{(wL32jo!jBFE+>#_TgSph$Ch|ZJm6DlK69)3*>gVY z%l5}lxVC54eg=+ZOb_l}*>y_zHuKA8Ws4l;*=F8(CewDooaOR2iRphCY$dojc&4)i zGjmN**5Hh1v|{x+C}6Na>agx2IXjc!hPbKSGXIUPb(AO0cb$;wu?W%=vQRlRgQJ+K ziOHhaPNZRpI!~xUKG)TXP0KDW_L#g$FlusWdo6QS6z44C`7Irxs{&#?45s+aF|G)D zGX095pJ7bDR7h7w{O-Jk_vUqIEm*O)mjCIp&J&a091Y+U-6njz_@eiL1j`R=t3}>B z^9cU6<6dF(^syMrqFZk#MH;O?R8@H4kmN1-7Y$p4rmYLedOhvx8qa0l<~;r)!kFKt zk!2=b=5koF;?TK(6yH~8Rc+nR@+uVXto0T#tT+49WKp(VS+sEC2lv8;&k~E3+PN~) z7MuYN)~s1(W@cewVK;8vc=F`Qo;`cy z0|SHNKPl&;)Wnk16ovB4k_?5!ti+0({KOQ! z%)GRG2F0H&oLmeH3_2haK$bGFJQq0OnVGos)!FAs-mNNg-FQS72QfKL3E8B>zSJoA zk(Pm}zW&MFMFomglMkLTkYp0DRyk_m%s5An$x}=5kB75{qk~{RBTKWQv1N$qu9%A! znk#tQ7bF~fw`Eg`2zz;jyKN*3SGovGbGb)Sn`{}IqwORE&ajv{F&);NOsvdHmd=@P zy>!)Vj}={uRU&s*3V1s`JDPlR_KP7Q2({IGzN1Q z25f$R1@e33l2>P!N4lAc%ypY^Wl<2@;VB_W67IXaT6Z6Kv&LuD+?0n>AJkeSb1S4@ z^i4U;Bg&!>!y_W%Fhf$P;nhLWSqdC18(0h_{-^~tZ=59TA;e|EXc)NVc1;+Yq$*Pt zOPL5uy>ga8J6E4bPLF$fwLu+or%j^`XG`>===O|>6-yVouVmq>T)AlF^7ZYDw@r(l zXE1%2^d9#u6Qx%y3uvpFBXm6D)ouB^_N~)uw7sTo69be7nU1$rFl9*u4Kv;Do29;gVNp zpBuWHro^^tOkEgseAAQ=qn;^QJ}uRUFWV>xM_({~;48B40hhrANzGPCE(M<*VoN-k z+CJpAo^@SuJV9g&3u}SU(oin$MwYlV5mk<+xQ(nQp2#w>mGW2%GgVbF)f%)!NON*^ z1{*M^mdjSMWZSUMQRSTPzj$%yWX_4ps+O#(p0sw&s+yInmTX(RNOh;otlc7e-PULJ z7#^Bp(9zk@zU=g#$St#lXC1aUQqi@4QV(a<{F4ryLY>!b?yhEd#4zjl!F!KiFs$Dv z{l?+YqBlMeC{)W1?<(W|rRlCGfwbEhd> zT@cisI3>hM;N}uO;fMPQ?9{hSU6RW2Ri$I5QU|k0OuMqHp)+G%!;wCb=96{TuQGT^ z>WJOZaZH@bu}W%gXnC9oqo-=X-FqB-rQCsH#>Pz5290c)h9Rx)tm)-4m9?tO9jfX< zbLI;3ELh0R%GuZ2W4mw_&$8unSMw}hy4-l)Huq_&JEs)v+H0_kYo_pKub})^Q{fYB z2A)Tjkqo1MmdfcN&mELpvinj{Ane);vGk%3?-_>_{zie*` zJ-T(O@PUu63Y$;1aUfYOtDg2`@5=WQq$x) zN#&DyRm~cd+?Qyis6;EZPx|4tQSN|S#@Y#N%!xwMfh+;N2?eS$huZX=+yY{fLwO(Z z+J{^yVG7qTU}JYz^Dl8>O^lZ*W~r3TaZ&f3F;kd(&fG%Iu9D;#bC+^2Tr_hTchZ7I zMzc1$Fi)P~%gn=LB|CAe)XtsU{V5AORGHWg@UYb{GEptoIC$^i;=6ZLqsOcN$8r8}qX>q$a zRi=FXqB7YWOLd<~lZDx)O=q{3Z)>-lKA&y&oXHE=X0|S#vdWUVLA6(gm7ANnJJWLW zX12LPD-@hL*mrWXE44YvGV?gGuxBuQ6glb*L;a2Jx^T{nFEaD| zmc+Gi$RQ`~G_zD^H>*-kTecy4(q#B!^{*Y=|j z`{^ap#lk-x?bvJKlE~Q1y3k7`!NJF!1zSn@o*w>puad~DGVAEKsIBUp)H|iFYqn}c zi#HQ9v!!ga)uI)R2DM96IayaQvx0oi!sf)WaY>FuG7qy9GaDPb&!VKjMm8Rvz6z&JJ_$RVR-0}@639IUHDaqz4yIi zFK-B^+?IYX@+tPmK_~Nt2N;?bm~lv4SnYx}BfOv}5peJvYY+t&1Of&e#$v3iHc!d8 zxqDo3q!gXE$TuWZugF3WfOf8=IM#%>r!n zLpg3TM|!wTdT41c!JJUGcTPVW`AZVTOob(qn%#tFEf#q9~9d)`NWyRI*7>u zp*)aMkn^y_6t4qWKm3e}z0LZ$HqPcr>Gl+8I3cRZEy*R|bHigp_(FFcGft*c;@%Mw z%Y>TWEZ8_n&umf3h85CvOl(z?Gj1LdVJ|IZFVZ(th%jYq_Oy;~lPTe5^;dS~toENh zyTdY!oo&(LIrA(RuP~WAPl9FP$~hZnPqz-6=B&@f%-pckOhTGt_u(0JT6=}m53_bj z`R2>-5ZbkywIT1^@g(_(L(En}b+OuET4!@bpR!1L$3O7DSme#{akHO;9>c5I7gK&R i)SWB5u7y|&#=&jWN literal 0 HcmV?d00001 diff --git a/Duplicati/Server/webroot/images/clock.png b/Duplicati/Server/webroot/images/clock.png new file mode 100644 index 0000000000000000000000000000000000000000..31fe66f30b3399f218b5d5b13fc99ccf01f73f54 GIT binary patch literal 927 zcmeAS@N?(olHy`uVBq!ia0y~yU=Rmk4mJh`h6h?#7BDa{uqAoByD zB~}<8@sM}qn0|9vZ??o2(a%c9Kc8+owX4SX+6p$;&;={FT#S^0%?xBHTR6UrOJvJ^%e!(w%+lZwsB&V{>5y%!Y>zXi|2cak&v)Xlt^I$l{1Hys zr5ZP7_cjHc<>98!Ws8>9?cAn)yzKT**T{zXI*bg?=2hy2Z+-k+!gY;#HrKBECdzjA z-S@~Mo1m!WJ2hu5Q&eJgTyh#GC6n9g88w`yvMaH4V$deC)O=a zPLN9T*4wNbx$NrgD?h(5&#qTbzx1c(lh0um@wt5JFWK&{-OJu3@+h~&&hk*|9XZYy z=2ge)&?4U7&l;9ry)Sa?^)@p>VT)+PZdNuqhkItaNuip+w$na$ z8;+Tpta6N;Iw8}^bJ_xJhX|(cmy69dzLWJ*SaV3#)u?Lw^LdXIKRo|yF34bD!18a- z&20`pb}hRs_*Y-TnR)Z>hMUWNY~+sWk-5>&cel!+QNkeIHLQVtM#)1+!G3iwVoV#t$E#H8U9KNiH;hVQ6XH zSok&~uYB*XgVQ)JdoMBh*uld7{b<94voRWO%iR{py>d_Y)i0dAVTo10+EMl9<4eE8wc+tlq3i*|H~ z$`*aNJK;mk)6A+zE2eDRzA5R@YksXO)6A_x)t>*d)asmksQ*1bLjeEYr1-;rrP5!& zecJfA@~=!(yq(xrlRY!<_?&Comi21mY37^DKXI<+$u|i%I>B>{HRaT%i1HFgH_eHn zUBz?e7S73)>+6huZ|QY$VODwdy*{(dXol-zuOQO=@= z2Pc;0Y@4w$DK1U+LefSBh6xy#q3UAn#|f)WxG%P zvimPP`OC|0F{uaADaS9zn?|H*t}M%w+B*H6@OGn^*sVqdD-?Ltx;sT5ezU(WK zOy!F!`mb+A&JxjYwYPt8UiH$|o@-jFiGLZy@1I(F@_5RFf*DQ`xnUX4xBS?-g=6(q zuKBh#E^TfHFCXqsG`F>Gm8oR>&AwyZqRulha~5uToY}z>x&K{7j9iPL)AUVxv!@yS zczO4J{UW`XvkM+sa5}LpT-O;k&A{M~SotZDl+*jo7$!_Vki( z0|NtRfk$L90|U1(2s1Lwnj^u$z`$PO>FdgVmxq~4LPQ~5&xe75fhRL0qQp5rH#aq} zgaHKhtlKn`fq}`$)5S5w;`Gv~-bJ?@L|pT?t4wGSSfKE6y5T*qZ4-1=yibU2V(T~Z z4%KQtvv=B(AjaDg2KKcFI^Lag@Nj6%ZL0njH{I{QUCsg|Q`;_GAIT?|*y}<%YMe?@#ibUFF zmgTJ8bp734E$vNA+wUocOq$nvVpGqw%U-&&tc(q_0t*APg)b<7cICX2HT%S*qKeXx zU9*}OO14+(vin}`*Rti3IxoNfM`QT}erEZ{H(&hrRM4OCxUS;2W#{Q>&37;EkiS>*d1lQEOIP-Uv%wUAOnx z+YRd999F;JY(A;r=OJ__>-P(#+p6s^tjlcb`&OD)&To=CR?8@NSlX{UWy%}le16Bx zkKXa-)R&YWwq)j=&iL#e4?}>7w?XlfEc*z{dBc$?Kg|Je@A;EX*@MX@!r BDCPhF literal 0 HcmV?d00001 diff --git a/Duplicati/Server/webroot/images/pause.png b/Duplicati/Server/webroot/images/pause.png new file mode 100644 index 0000000000000000000000000000000000000000..07586f6e77bf5d7b65196422f018ba0fbf65bc25 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0y~yV2}Y}4mJh`h9chkQy3T+*pj^6T^Rm@;DWu&Co?cG za29w(7Bet#3xhBt!>lx0*@2{d0cz>pjbQc+_K!joAU0eEGg8i!Zt< z2ep6CZ+Q2Av7=Yggi8u8?!vr#Ydx6t`Tpk^a=9IRz|L@Nf`EdP)L$cz>7K5BF6*2U FngD?yL74ym literal 0 HcmV?d00001 diff --git a/Duplicati/Server/webroot/images/plus.png b/Duplicati/Server/webroot/images/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..d679851db9c5480930d748e6dd923bb362827d2f GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0y~yU=Rmk4mJh`h6h?#7BDa{uqAoByDi}R{ozUx$=GE|Ns9D4K5x^U}Ixrb8}mE@rsdv=f`)KZ}ZgL`4gdfGxBEP zslUHIPk#7#dcOtlzdv7vnNRPVTwNeG`_!gW|L6ML-EeAe#pkBP=Nof-77JQsS;+GI p|MZso@csJwji+k=e44l5Awws(;U&L^7yUr~^K|udS?83{1OS~@jKlx{ literal 0 HcmV?d00001 diff --git a/Duplicati/Server/webroot/images/settings.png b/Duplicati/Server/webroot/images/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..c49e34148420d9c23a8e4d80cb931671716820e7 GIT binary patch literal 1321 zcmeAS@N?(olHy`uVBq!ia0y~yV2}Y}4mJh`h9chkQy3T+*pj^6T^Rm@;DWu&Co?cG za29w(7Bet#3xhBt!>lu22ArgWq1*2W!g4j;Y7{U&l}Q;hi8 zs`MMDUUhA<6*y^R*?0K3@B9gI)5Q++{3^L|wrtjnk4NV0deeI4OOY{4;DUV*MLhD{LzqGy5_Pqu#y(^lGbako{ zFDzG2I2R+{cXjT9qfcE$p1yDLTkQWJ+a&76ma2eH6SSL41tO80W81WnvV>sb+{?C=X!UvTvC#G{O{4mSslFia^ezQ5J zZzj5)-)L5Dr|NQ)*_n7fP>y9;(l^sPcmi{-}#lGv_cio@o zm>a?tyLN7#^6I;c+pK#VKKl18d>K*PRHq_!@WG4P4?GR$-@DFJ^}iNrA#-ed`2Isj zlKl@=J1tbGV%v4|!VQIcb|3j7H|cINyRt{>XrIud4vw|5_M7J4TBo4%`QrXNIa4jV zmpd3Vys!V;cJk%%QzxSs-t8~iXMX4Ox%i)tiZXPk1U&n^kM&Fc7sE+Y>K}bv|Kp}nNamalBsjao3}3|@4R z))Au!KAqg1GJmw|)Eh2Vytx;^zpgwkxiKMOapmo@TbcD&6?f$1bqdaP<6g=p@4r&& z?u*S4_Y3ry3VY|+N0raX(tefFYq3UeOX=Tzs_j2_vU;lZX)Qcl*d!2Yl4Sb)P~OSg zUplkwSWTDyR{0Tq{CvXqb+2aFnSZ>oIn!uQ;S-adOvz0(eJelwnrMD)gzf zHhJcaeb0*a?D%f*^v#BcCl`s|J6gGB9c$sI2bvisQkn9+tcIHnnlntAa+ke5VU&{h zvi|w}Kh5X&|IXPveOvif&s`oSQp=WwpYzxpwz~Q7Dw|DAs~MNP3Krhb_s&c}u;ON# zF2{M>X&oHq@3t*mynAlsCf$%{>s)58mMOj$$C43PM_kX^KzDjjop!T z_x?ye{BZ27+wy;h&d!tG_~g}_-_5Rz5bP0l+XkKaSeL} literal 0 HcmV?d00001 diff --git a/Duplicati/Server/webroot/images/small-close.png b/Duplicati/Server/webroot/images/small-close.png new file mode 100644 index 0000000000000000000000000000000000000000..aa60299eb512bd49d86067c9f72054020e14a9b8 GIT binary patch literal 627 zcmeAS@N?(olHy`uVBq!ia0y~yU=Rjj4mJh`hN1woGYkw2Y)RhkE)4%caKYZ?lNlHo zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_PadH945N1*CksR7#MgmLn2C?^K)}k^GX;% zV9&ZuGZ`2dUwFDWhFF|lJJ~y1I8mf+e*T<0XG8WlMo(?p?xtO~s#iQ?$`z-LA}k-9 z7RA1}HFdvpfI!LmMK{!rXsx)a;oG%L_h_{1ogE*#K3-bjX?!{5SZsljbMwmg@2uOu zKm0K7bLYwFlExFIo}B)E{>tJu2WCN2FPFDspN_v_pQ!)D_f?4A{A3GRb%_8U&IJpe zMy{B*Ps*9efai5W-c8>N>n=<#>gI!4!Si*Q({w=Vwfsgr+~f7n%PQ*C|n>qPA- zy+RDPqYlg5sTPSWn^^a+BYNeGquQZ|s}Ak0xNFC7%RDE2!F!W#m6_)*`1QT9Zan?e zjl(g#`ij}!+)a^d6Dr%IZdnxn(CIxrThJ-w)zTu)TEE%#n;wSDx$|Dqdu`@XE$$O0 zzDfQ03$8ZRo=)8t-fvElav$ZYE+HqmbKKL+L!+7Y)kTa!D~A+ z#cdzjxjTP8Wjb}~m6qJt>K>+jg0E1dvE+Kw!m(A;Fa#r_al=^IyMESc@}6c4)$DjfA5N%pN}3`{@Ts= z;5$o&K^_0zCDD77CdxcI7jekMQ0&V^>FK7H`J3f_?)mqh{r1Mn?Y5iir#=e5arvU} d@nai)Fn4ZQxkBW$^*&JCd%F6$taD0e0s#BQ99{qb literal 0 HcmV?d00001 diff --git a/Duplicati/Server/webroot/index.html b/Duplicati/Server/webroot/index.html new file mode 100644 index 000000000..553d30dce --- /dev/null +++ b/Duplicati/Server/webroot/index.html @@ -0,0 +1,168 @@ + + + + + +Backup + + + + + + + + + + + + + + + + +
+
DUPLICATI
+ +
    +
  • +
  • +
  • +
+ + +
+ + + +
+
+
+
+ Loading backups ... +
+
+
+ +
+
+
+
+
My Music to Backify.com
+
    +
  • Source
  • +
  • 12.56 GB
  • +
+
    +
  • Backup
  • +
  • 14.31 GB
  • +
+ +
+
+
+
512 files remanining
+
+
+
+ +
+
+
My Photos to SkyDrive
+
    +
  • Source
  • +
  • 12.56 GB
  • +
+
    +
  • Backup
  • +
  • 14.31 GB
  • +
+ +
+
+
+
+
#1 in queue
+
+
+
+ +
+
+
My Videos to Amazon S3
+
    +
  • Source
  • +
  • 12.56 GB
  • +
+
    +
  • Backup
  • +
  • 14.31 GB
  • +
+ +
+
+
+
+
2013-11-02 5.00pm
+
+
+
+ +
+
+
Add new backup
+
+
+
+ + + diff --git a/Duplicati/Server/webroot/scripts/app.js b/Duplicati/Server/webroot/scripts/app.js new file mode 100644 index 000000000..d95b33370 --- /dev/null +++ b/Duplicati/Server/webroot/scripts/app.js @@ -0,0 +1,78 @@ +/* + * Primary app code + */ + +// Global app settings + +APP_DATA = null; +APP_EVENTS= {}; + +$(document).ready(function() { + + // Flag as loaded in case we have plugins + APP_DATA = {}; + + var PRIVATE_DATA = {}; + + $('#main-appname').text(APP_CONFIG.branded_name); + + if ((APP_CONFIG.branded_subtitle || '').length > 0) { + var subdiv = $('
'); + subdiv.text(APP_CONFIG.branded_subtitle); + $('#main-appname').append(subdiv); + $('#main-appname').addClass('has-subtitle'); + } + + $('#main-list-container').empty(); + $('#main-list-loader').show(); + + PRIVATE_DATA.refresh_server_settings = function(callback) { + $.ajax({ + url: APP_CONFIG.server_url, + data: { action: 'system-info' } + }) + .done(function(data) { + PRIVATE_DATA.server_config = data; + $('#main-list-loader').hide(); + if (callback != null) + callback(PRIVATE_DATA.server_config); + }) + .fail(function(data, status) { + }); + }; + + PRIVATE_DATA.refresh_server_settings(); + + APP_DATA.getServerConfig = function(callback) { + if (PRIVATE_DATA.server_config == null) { + PRIVATE_DATA.refresh_server_settings(callback); + } else { + callback(PRIVATE_DATA.server_config); + } + }; + + + $('#main-settings').click(function() { + var pos = $('#main-settings').position(); + var barheight = $('#main-topbar').outerHeight(); + var menuwidth = $('#main-control-menu').outerWidth(); + var buttonwidth = $('#main-settings').outerWidth(); + + $('#main-control-menu').css({ + position: 'absolute', + top: barheight + 'px', + right: ($(document).outerWidth() - (pos.left + buttonwidth)) + 'px' + }); + $('#main-control-menu').toggle(); + }); + + $('#main-donate').click(function() { + + }); + + $('#main-control').click(function() { + }); + + + +}); \ No newline at end of file diff --git a/Duplicati/Server/webroot/scripts/config.js b/Duplicati/Server/webroot/scripts/config.js new file mode 100644 index 000000000..323b313be --- /dev/null +++ b/Duplicati/Server/webroot/scripts/config.js @@ -0,0 +1,9 @@ +/* + * The basic client config + */ + +APP_CONFIG = { + server_url: '/control.cgi', + branded_name: 'Duplicati', + branded_subtitle: '' +}; \ No newline at end of file diff --git a/Duplicati/Server/webroot/stylesheets/common.css b/Duplicati/Server/webroot/stylesheets/common.css index 47aa86d62..39d58f8c3 100644 --- a/Duplicati/Server/webroot/stylesheets/common.css +++ b/Duplicati/Server/webroot/stylesheets/common.css @@ -1 +1,77 @@ -/* Placeholder for customization */ \ No newline at end of file +/* + * Common style config + */ + +body { + border: 0px none; + margin: 0px; + padding: 0px; + font-family: Arial; + min-width: 320px; +} + +.action-link, .action-links li { + text-decoration: underline; + color: #56acbb; + font-size: 0.9em; + cursor: pointer; +} + +.hint-text { + color: #9b9b9b; + font-size: 0.9em; +} + +.hint-text-caption { + font-weight: bold; + color: #9b9b9b; + font-size: 0.9em; +} + +.caption-text { + color: #68845f; + font-weight: bold; + font-size: 1.1em; +} + +.progressbar-background { + background-color: #b1bead; +} + +.menu { + background-color: #ffffff; + position: absolute; + display: none; + list-style: none; + border: 1px solid #9b9b9b; + margin: 0px; + padding: 0px; + border-radius: 3px; + z-index: 10000; + opacity: 0.9; +} + +.menu li { + padding: 5px 10px 5px 10px; + background-color: #ffffff; + cursor: pointer; +} + +.menu li.menu-sep { + border-top: 1px solid; + padding: 0px 10px 0px 10px; +} + +.large-loader-icon { + width: 66px; + height: 66px; + background-repeat: no-repeat; + background-image: url('../images/ajax-loader-big.gif'); +} + +.small-loader-icon { + width: 32px; + height: 32px; + background-repeat: no-repeat; + background-image: url('../images/ajax-loader-small.gif'); +} \ No newline at end of file diff --git a/Duplicati/Server/webroot/stylesheets/customized.css b/Duplicati/Server/webroot/stylesheets/customized.css index 85483e7e2..7ad59af06 100644 --- a/Duplicati/Server/webroot/stylesheets/customized.css +++ b/Duplicati/Server/webroot/stylesheets/customized.css @@ -1,15 +1,8 @@ -/* Placeholder for customization */ - - -.x-grid-tree-node-expanded .x-tree-icon-drive, -.x-tree-icon-drive { - width:16px; - background-image:url('/icons/drive.gif') -} - - -.x-grid-tree-node-expanded .x-tree-icon-locked, -.x-tree-icon-locked { - width:16px; - background-image:url('/icons/folder_locked_red.gif') -} \ No newline at end of file +/* Placeholder for customization */ + +/* Uncomment if using a subtitle on the app name */ +/* +#main-appname { + padding-top: 5px; +} +*/ \ No newline at end of file diff --git a/Duplicati/Server/webroot/stylesheets/main.css b/Duplicati/Server/webroot/stylesheets/main.css new file mode 100644 index 000000000..0c3f9d305 --- /dev/null +++ b/Duplicati/Server/webroot/stylesheets/main.css @@ -0,0 +1,285 @@ +/* + * CSS config for the main window + */ + +#main-topbar { + position: absolute; + left: 0px; + right: 0px; + height: 46px; + background-color: #3a5e30; + color: #9dab98; + vertical-align: middle; +} + +#main-bottombar { + position: absolute; + left: 0px; + right: 0px; + bottom: 0px; + background-color: #4c7641; + color: #d4dcd2; + vertical-align: middle; + height: 46px; +} + +#main-bottombar a { + vertical-align: middle; + color: #d4dcd2; + display: inline-block; + padding: 10px 10px 10px 20px; +} + + +#main-list { + position: absolute; + top: 46px; + bottom: 46px; + left: 0px; + right: 0px; + padding-left: 20px; + overflow: auto; + margin: 0 auto; +} + +#main-list-container { + max-width: 620px; + margin-left: auto; + margin-right: auto; + overflow: auto; +} + +#main-list-loader { + position: absolute; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; + padding-left: 20px; + overflow: auto; + margin: 0 auto; + background-color: rgba(0, 0, 0, 0.5); +} + +#main-list-loader-content { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: 250px; + height: 100px; +} + +#main-list-loader-icon { + margin: auto; +} + +#main-list-loader-text { + padding-top: 5px; + text-align: center; +} + +#main-appname { + padding: 10px 10px 10px 20px; + font-weight: bold; + font-size: 1.4em; + display: inline-block; + text-transform: uppercase; +} + +#main-appname.has-subtitle { + padding-top: 5px; +} + +#main-appname-subtitle { + font-size: 0.5em; + font-weight: normal; + font-style: italic; +} + +#main-newbackup { + background-color: #3a5e30; + color: white; + padding: 6px 12px 6px 12px; + cursor: pointer; + border-radius: 3px; + display: inline-block; + clear: both; + float: left; + margin-top: 40px; + margin-bottom: 40px; +} + +#main-control-menu { + margin-right: 10px; +} + +.main-shortcuts { + float: right; + padding-top: 8px; + padding-right: 8px; + margin: 0px; + padding-left: 0px; +} + +.main-shortcuts li { + padding-left: 8px; + padding-right: 4px; + cursor: pointer; + background-color: #3a5e30; +} + +.main-backup-entry { + padding: 40px 40px 10px 0px; + clear: both; + margin-left: auto; + margin-right: auto; +} + +.main-backup-entry .action-links { + display: block; + margin-top: 10px; + padding-left: 0px; +} + +.main-backup-entry .hint-text, .main-shortcuts { + display: table-row; +} + +.main-backup-entry .action-links li, .main-backup-entry .hint-text li, .main-shortcuts li { + display: table-cell; +} + +.main-backup-entry .action-links li { + display: table-cell; + border-right: 1px solid #56acbb; + padding-left: 5px; + padding-right: 5px; +} + +.main-backup-entry .action-links .last { + border-right: 0px none; + padding-right: 0px; +} + +.main-backup-entry .action-links .first { + padding-left: 0px; +} + +.main-backup-entry .hint-text-caption { + padding-right: 5px; +} + +.main-backup-entry .caption-text { + margin-bottom: 10px; + overflow: hidden; + text-overflow: ellipsis; + width: 300px; + white-space: nowrap; +} + +.main-icon-plus { + width: 23px; + height: 23px; + display: block; + background-repeat: no-repeat; + background-image: url('../images/plus.png'); +} + +.main-icon-clock { + width: 23px; + height: 23px; + background-repeat: no-repeat; + background-image: url('../images/clock.png'); +} + +.main-icon-donate { + width: 28px; + height: 28px; + background-repeat: no-repeat; + background-image: url('../images/donate.png'); +} + +.main-icon-hourglass { + width: 18px; + height: 24px; + background-repeat: no-repeat; + background-image: url('../images/hourglass.png'); +} + +.main-icon-pause { + width: 28px; + height: 28px; + background-repeat: no-repeat; + background-image: url('../images/pause.png'); +} + +.main-icon-settings { + width: 28px; + height: 28px; + background-repeat: no-repeat; + background-image: url('../images/settings.png'); +} + +.main-icon-small-close { + width: 19px; + height: 19px; + background-repeat: no-repeat; + background-image: url('../images/small-close'); +} + +#main-newbackup .main-icon-plus { + display: inline-block; +} + +.main-button-add-text { + display: inline-block; + vertical-align: top; + padding-left: 10px; + padding-top: 4px; +} + +.progress-area { + background-color: #c8d1c5; + color: #8f968e; + border-radius: 3px; + display: block; + padding: 6px 12px 6px 12px; + display: block; +} + +.in-progress { + color: #ecf0eb; + min-height: 23px; +} + +.main-progress-cell { + width: 100%; +} + +.progress-area .main-icon-hourglass, .progress-area .main-icon-clock { + display: inline-block; + margin-right: 8px; +} + +.main-progress-text { + display: inline-block; + vertical-align: top; + padding-top: 4px; + white-space: nowrap; +} + +.backup-details { + float: left; + width: 300px; +} + +.backup-progress { + float: left; + padding-top: 20px; + padding-bottom: 20px; + min-width: 250px; + white-space: nowrap; +}