From 8c58ad6b22e9dcc2aecc8278b9f5df2b4d043bb5 Mon Sep 17 00:00:00 2001
From: coax
- Description:
+ Description:
Script:
' . $obLanguage->String("Active") . ':
'; if ($domainactive == 1) echo $obLanguage->String("Yes"); else @@ -184,83 +184,34 @@Allocated size (MB)
"); - echo ""; -?> - -String("Max message size (KB)"); $domainmaxmessagesize = PreprocessOutput($domainmaxmessagesize); - - if ($admin_rights) - echo ""; - else - echo $domainmaxsize; -?> - -String("Max size of accounts (MB)"); $MaxAccountSize = PreprocessOutput($MaxAccountSize); - - if ($admin_rights) - echo ""; - else - echo $MaxAccountSize; -?> - -"; - else - echo ""; - - $str_warning = $obLanguage->String("Max number of accounts"); $MaxNumberOfAccounts = PreprocessOutput($MaxNumberOfAccounts); - - if ($admin_rights) - echo ""; - else - echo $MaxNumberOfAccounts; -?> - -"; - else - echo ""; - - $str_warning = $obLanguage->String("Max number of aliases"); $MaxNumberOfAliases = PreprocessOutput($MaxNumberOfAliases); - - if ($admin_rights) - echo ""; - else - echo $MaxNumberOfAliases; -?> - -"; - else - echo ""; - - $str_warning = $obLanguage->String("Max number of distribution lists"); $MaxNumberOfDistributionLists = PreprocessOutput($MaxNumberOfDistributionLists); - if ($admin_rights) - echo ""; - else - echo $MaxNumberOfDistributionLists; + if ($admin_rights) { + PrintPropertyEditRow("domainmaxsize", "Maximum size (MB)", $domainmaxsize, 8, "number", "small"); + PrintPropertyEditRow("domainmaxmessagesize", "Max message size (KB)", $domainmaxmessagesize, 8, "number", "small"); + PrintPropertyEditRow("MaxAccountSize", "Max size of accounts (MB)", $MaxAccountSize, 8, "number", "small"); + PrintPropertyEditRow("MaxNumberOfAccounts", "Max number of accounts", $MaxNumberOfAccounts, 8, "number", "small"); + echo ' ' . PHP_EOL; + PrintPropertyEditRow("MaxNumberOfAliases", "Max number of aliases", $MaxNumberOfAliases, 8, "number", "small"); + echo ' ' . PHP_EOL; + PrintPropertyEditRow("MaxNumberOfDistributionLists", "Max number of distribution lists", $MaxNumberOfDistributionLists, 8, "number", "small"); + echo ' ' . PHP_EOL; + } else { + PrintPropertyRow("Maximum size (MB)", Round($domainmaxsize,3)); + PrintPropertyRow("Max message size (KB)", Round($domainmaxmessagesize,3)); + PrintPropertyRow("Max size of accounts (MB)", Round($MaxAccountSize,3)); + PrintPropertyRow("Max number of accounts", Round($MaxNumberOfAccounts,3)); + PrintPropertyRow("Max number of aliases", Round($MaxNumberOfAliases,3)); + PrintPropertyRow("Max number of distribution lists", Round($MaxNumberOfDistributionLists,3)); + } ?>" />
+ +">
\ No newline at end of file diff --git a/WebAdmin/hm_logviewer.php b/WebAdmin/hm_logviewer.php index 091db27..2364266 100644 --- a/WebAdmin/hm_logviewer.php +++ b/WebAdmin/hm_logviewer.php @@ -204,7 +204,7 @@ function IPLookup() { // Cache control if (cache.data[ip]) { var flag = options.flagPath + cache.data[ip]['country_code'].toLowerCase() + '.png'; - elem.prepend(''); + elem.prepend(''); elem.addClass('processed'); } else { $.get("http://freegeoip.net/json/" + ip) @@ -212,7 +212,7 @@ function IPLookup() { console.log(data); cache.data[ip] = data; var flag = options.flagPath + cache.data[ip]['country_code'].toLowerCase() + '.png'; - elem.prepend(''); + elem.prepend(''); elem.addClass('processed'); }, "json"); } @@ -314,7 +314,7 @@ function dump(arr, level) {Select your log file.
- +mYc?Kr_IsGe7zvW*%XUnbb L&G+VrGgt!vQpOa` diff --git a/WebAdmin/images/dtree_folder.gif b/WebAdmin/images/dtree_folder.gif deleted file mode 100644 index eb129763dcea0dc1916b7e934fdce2fd8770c380..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmZ?wbhEHb6k-r!xXQrr`}gnn@893v9&~1=$&)8f4jw$XxRCo$zt;Bc+vnx5?P^z= zlf`m!n&I9q)y<94Gt(JwZ!g^1B)cGwzMSgXq@QJAg2YNM*9XqzJMr>9F(~2^IHB}=2ujK##G5PiD*Z=>|`G33g|C9Rv?>o0` z+x8y>W-^ck6o0ZXGBD^d=zw&C{KUXE(P4UlhmKVLi6xgzC4402GB{W!L~2f9POOq~ zU`a4ovhaqB%+vz~Nx8dkFFrrvqSej!Kd!MF9@+A*p|PG#+gVIkwX>^RSE$vAT~}-J zl&QL${d#h`nsevP*X5qctE;hW`3hadnOwRm>o;uF<*#vKOczy ZVbwl)>NG2h3j?FtrOQ`>yuBP5tO0@?i&Ovr diff --git a/WebAdmin/images/dtree_folderopen.gif b/WebAdmin/images/dtree_folderopen.gif deleted file mode 100644 index c5c31102d525076f68a946b1c942687b3ce0da4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmZ?wbhEHb6k-r!xXQrr{{8!<#k{|N|2{L* q6oUN3z&7>3 ztO5@mss0m7f-EEygfto)EEhyd@^~j!tvR(XKI+JllL;CPicM^J(Q8*-F>q|Y`M%=j z62+dM{~PKQW!3d-jdOF2Weio>+e{5RD$0%I4VAejFig^&H-8?Vk|_5Crb$NHt5$3C zNei(}Fr8zpvu*n}0e-m}r{# vKC_i diff --git a/WebAdmin/images/dtree_joinbottom.gif b/WebAdmin/images/dtree_joinbottom.gif deleted file mode 100644 index 48b81c80a9e25f6f29e2614aaa33bdf4a4d2881b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66 zcmZ?wbhEHb6k-r!XkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFiG~vH=KUEdfpt3ORshA Tx&LIzy5lkJS?4l0Mh0sDgH;v` diff --git a/WebAdmin/images/dtree_line.gif b/WebAdmin/images/dtree_line.gif deleted file mode 100644 index 1a259eea00c330eee85fb18aa64e2e232d5410b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66 zcmZ?wbhEHb6k-r!XkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFiG~vH=KUEdfpt3ORshA Txqp6J8?ND(@^elGBZD;ng_;%{ diff --git a/WebAdmin/images/dtree_minus.gif b/WebAdmin/images/dtree_minus.gif deleted file mode 100644 index 3d212a97ae0d8f83aa39836c5a85d442f8602553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86 zcmZ?wbhEHb6k-r!n8?h~)YR0_(7?dJ@c;jR#h)yU3=GT+IzTQ^R)~RtNqvre afzu-gC3m_gnAtsyGG)YXIxA8@>Pl diff --git a/WebAdmin/images/dtree_musicfolder.gif b/WebAdmin/images/dtree_musicfolder.gif deleted file mode 100644 index f620789feb3c4b1222909d255f51aeaa81faefb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmZ?wbhEHb6k-r!c;?CQ|HtI_d&1|;T=V|@`}l;_ON)8`KdAow`}didCU@_DGciej z^5n_Eg9rbA>8q=`<>xo+ u1K?DiJ W3#)C#D)aIvB91 zfNOew_W$>t|Ni|e&CM||NI81&?f=`QuV26Z|9{T0S(4kfZTk-bGZ}^gQ2fcl$iU#q zpaXI&C{7sIuQhl!HMg)hm VUg|Ta9<%L zB*!hNW#eGnvfRbP!^OqjoL^Um#e}(8(%psk*bWzm73wnj%>wQWm-x821i3D`7>P8w z-n-|h>B!0H=xU{*=yrFzi#XF`M LGYlFIxARNO@hDtWaBUIiPTOMfV7_}lvsu=hh(Z;&NfL@qDJM29Jw4q( Jn2m+O8UP#&8=e3F diff --git a/WebAdmin/images/dtree_nolines_plus.gif b/WebAdmin/images/dtree_nolines_plus.gif deleted file mode 100644 index f258ce211a0a19c2ecbcb11170b9a8b35ae2436c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 870 zcmZ?wbhEHb6k-r!_|DAG)YR0_(7-SXMnhmkhJfNv7DfgJW(FOQ??HKjfy0@BokPZB z!-9j&9Ku>LGYlFIxARNO@hAj7*xx83m?l#Y_`t1M |Ba{La?4kwX3c6}c&WZ`PygnpJ?rkDyZry# zum9<}^Zxw(U)#BD%KlHsjvf2=@89j`-!lsq `N~Rn2+cXw3F)`cNXo|{M zwn^yh*lA;L&u+56RaJ{?r=8t#bK_Gj;^%BG95Yu?zS_*U>z2K_g$4ipCbgRvpFHC> zdg-Vu`PTd?H;48ok#7ReIGiR-xW0J7!Dc}Y2`z_&_QUOboFWD+3JrbT68dFMM=k~^ HFjxZso}Jb2 diff --git a/WebAdmin/images/dtree_plus.gif b/WebAdmin/images/dtree_plus.gif deleted file mode 100644 index b2c997233b3f7b0fd56c4637c2c20aaf0d47bae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89 zcmZ?wbhEHb6k-r!n8?J?(9poZ!0`Y7e;}#&lZBCifr&u}$Og&^0ohtp^czmUT|IBk qf~en0XVhiRX3S&EJ6Nf hb5kY1Re>f2&SBJ{1ibDv2XRV|Dor_^WyXB*=Ku>91RN!zTl3yBbIVx z(geQ%ggTf9umTL|phE>VfGW0dOs3%S#nN%*vE*Enb)jBp9@2x>3JQh1R%p`NKy3y_ zU3YW4U}Q`#nViy?7fYC*mTrH-X7dccKo2mX(s=~L^<(g+r59TS6iqRkj2so5zx+t0 zo0(kzz6vnCo~H$RBRBH)J1GX_SNvfE*Z~wa*h)-iiw*S>Xcn2f6(IYmN~W^Xa^K5L zAex2;PwPjN7>)J4^$VxEb>L;|NOI2mP7BNcjAM&;D`d1LQE7F1uO6=7d%+o2q9~a& z^=HF5f%;G1kxWBiba`M*MXx~Y7e UYLsomU#>SdCrPUj>1OFJ?by71aqM(w;SNCnf+=v){(2QoAPYLn^Co4umpI zZBr+TQf2|-$OSB}T&RT}4J2kXT)9=qY~~&gO+?Wfm<{S%x+=cSPXj28urVYrD5gv> z1x&7r!xs%3p=C(_v_;&ng?=lfkaLrYG$*dMwTX12GNmWsd~wr2PO#XTOK|5d)& z!4vms05e%S6&9cUdCfvAM{4}`Ll&Au0|4ZI{x#q|zXU~)a%9_I{Pz zF8K#`U8CUK$V+kftzmD{56XRA*JOAEn0*=T9qYDGam8&jKK%R;2frNVs?fakAt(1x zVoBrOZf<9tZI{^DPQFJAYw$bp-YzSMPP;$X(ujj4M^>&|RhjNU%J*O1o>2EXGlIU? f&E;Ccsie~d >oCoZ diff --git a/WebAdmin/images/dtree_trash.gif b/WebAdmin/images/dtree_trash.gif deleted file mode 100644 index cfa0f000e1ed3b61c8737fcfbef4b78035a6abe7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1051 zcmeH`!B0|g0LLGK3dPJgm@T#>b?KJNwY61t2y23!a_iPbmlJ1M5VKlN19e8^5=^!z zbD)u~Nn)UBz(^5iXd;hRCWauSKscU&!V@09@^9$c_wYG>4xjDIC@(v6wu%B#plCOQ zlj1%HL7xpg`;4hq!Iu!Ay`f Hi8EnwqRZheRTo3t^+{2HkSV8B3ac*wiwj`U#enmI4T(`vn#vK;=k2di7RfPB!bd zJK#>yEZWxDDf!FE7-xpV y$l$}cV*&0M5)OxjQmJ|k6$*vDy}eU@5RE6J(P)Qp+ZeFi9t}!OUd7^O(;WX^ z+tZm1;6~zHF4t@}>pdVC3@Q`~e*%oJB(?5U`#K^Y8IgTkSWbYYT`>3^JQN6~{i|c1 zT@Hui@px7N7}o0@4u@hP=0$@VCwTuo#%8nWYPtge=>Pt?01YMJAgCKUv1i)*1VoHM zg(NCdC7W!ynX~=LT1$V~nzDI+!inF1=tx}_nc5}mr=DV)ug;EKpMRZBPRn{eeTULj zT$`c1GEET^B}LcnR&AAaiH{Ye*N`rB57O`u#Dp_b1s(h%A~RpaD3zSN{F_j2tj!_g zDpL!j?zKmG<;}MS$4?;^-Us|{&uLL9Bj?<{OfuP3Q`%K@Iu9puGT|qsM`h&mnJkio zah!lJc2>jfh55v~gO_sCXyqAH#KmqWJ;xJR)WRHv@kL7O1(~3lev(ei&BE0!@)+$U l*+Y54N|AtcU>`GZuw~%!;jig5uN)!pv)3}!7s*7Z JS zl7_}=bfZ{PKUjpAmLiB0t-2@{)Gl2VL04Uio0Nj0QiE>nq6Ni>bYYc%wk`^aHFo2s zKd6fcR+OL^^SRfVm$ZHsV)4P@&7C{v%!j!`DTV*}^uCeT4~u1WOiGD=l@bI^(_quZ ztj^@r**z$cb1ec^!nxt;ZMswv--vl*B8Q&+A-q|xDhcsB$?TMTF&{AcB8R@V5SXiR za76+;qe0x6TtvJ9aM*x4O5v!%w8_VJ9K*59VXnsNB{H1rgn5yAMj|01Spa(tY_pH= zIEG_OwSG+jNe7+E3wjI$JT453&!KfAVA!f)JNbA4femg1eFk(Al(k`01$ZcA>4e_B zKDb>5l9_qL*26^d=@ROFUYy?Th32AIg4C%4i?u4iz1YaH-2+^HG>1biVbj-ra|+$J zUP2j8v`yW{Olue-5rLKn %7zQNSqaH(aspSL%);+BO!DyqQJjcJX$U~^`T!i0 zX*3<}qB5zcauM$)9-uw)sVcxdjlIgDy}1z$Ub{Kr)di(K3nN#t<6s=>^D-1IoS-FY z+_D+5>=<$BV5gwYeIaw0oL#Lfl~$ck-a>ggx*!gp!s>ct?x8&MmIQ>%Ul^XQuSofG zX;%K41x4z!-)2SSehTvL5G0kSSu_Z%6@r9Wa95(YKUOIfD}S!6f=~se%9lPqKeN@q zktP=t6#KF86`0Q#(&GGR7T0=O9DjKV><^50G!OdgjFU{}tnUlo)18^@MX`pL8zK0A fIe#E5{SaUPQ pK2ciX-EB z9%hjXij3TUpaEG5{)>Q#tmDS(T2asIND=e$voKnAy6`r-uEcS_l8jC%R$mU>dKpHi z*9FGq891i{+iIM+KJo>-D}f?2V51U61v7k#u^huNEaNaP&(yQzY_M=fqJNk~TtpH8 zYr&Y$Vl2ln44W gTT=3y@_HgZ-A?MNb`NPK#Uh7idRA7i%%;0w+`*K^2b zGB|v{9BZDv*t*35e&z{I-kG3c9C)f+U0Vl1+Cc(z+yb%31_$7DI?#5g6^g1-Uphtu z0mySBkhBt1Ryfe!a|!YIGLp$80)ZFUC=WyANPunQ)2xh+_BNb4eFh5)3vg9bfD?=k z5m`+j5}HR~d>m>-L3}xZi`^G6`R+Xp6bV=fq-j|wii(`3VgHd6h{l!(bRJ#DyU^a= zfjv!4$kW}mP)^Ha@llqEEI<^v{PI!Xhhl3kM ~D9)biMk Crl#Vd(7Y@N zqN~pBMq^_m+#V0YkqCmbv$}Z9H#ynYygfJyOngsk51tMUS6gj1Bv)6lva%9YBH?CL zRYE4w^e_|()u@VM>?RhAElp3$t-nn?JY>>OYxa-Hh3}toGd~0v06V-HX3NOuasU7T M07*qoM6N<$f?v;8p8x;= diff --git a/WebAdmin/images/folder.png b/WebAdmin/images/folder.png deleted file mode 100644 index f1ed9abe0338be5a0401f4aee1b3bb168b4d815f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmV-;0*C#HP) 4gUbq(tw1lgoXx`HVs0gK|-QT;Nk*gBnKlTn_z-{ zmhYU)-7d3t&KJ-ik94}dotgJ$-pr9P27{QufTqgxGmAP3uNoaE7bGM|sxpx{$6x!S zseeO+ZJ)Bq=VzY*TTvP$C03r?ILjc0=nnu+A|W7D<`Wa0NdS!2oV vxShDKmPGuu1Z{X#D3g|-0BZ&qN9*G%zO46N zD4sVu^%@Qrc`Ds1baRPAMG7LbeA>HftOGIA&>{S+y14WB!(!4xyYUUh=}X*79hA*; zs@NUjK4So91b$-;-y6->tMfCSvO&Q{3%OG#fnJLTF^s=9aIa;Dv9bIfwI98O6QfM# z&RzC+V0j(IuuEljHs;@Ei!vnIlXu^Ym7iYmY~+PRvHvr>_inmd1OCpx1sDLU%fF)P S!b7P50000 diff --git a/WebAdmin/images/heart.png b/WebAdmin/images/heart.png deleted file mode 100644 index 53e1013a5859b38253d747ab537246ac1ce7c35a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 742 zcmV Un{>${D5>sUB09)YqM|0c<^BN+SI`Y> z*Il=DXLfgH`n_>oRO| !k#jxt3_Q0&@v zlVs*y*A*0V&cGD$STcRWaqOE${ej-#jV`FQwO)hL>Z(Y5{IHOUMGjKDFW9mWxOfR_ zUEM}KlR@n5P;VjiJ1T73>2JQ=fzs4x QA0(kS_phbQtE>Q5xH0ijv*i zbPS{wU>xOm7>Z$le9FR6Q4UWaaJz>#fc&ec5LD-!LO@kL4e`QDX3|hJUDg;jj--T& z!n;90_kkP!4RNK;s4g{>6D~usR4i*k)#11 uH-C`mS#E>I(K5JCD4dHJ~@S4-i|q{hk3sNj=!db$U+kBU&4p^ zNPFAz@Sp76SmGBL-5__dZHle8%NjAnl7_Uj89az4-Xzw|7vJX>B`BatP>`Tv *Esu4phX{rq>O_n>xBi+$d_WAT& z9A?RZ@cBF=pK??qhS*J=awpJGU6S-yuZ+!22mN}Q=du@S{52>PEPRW`Ft(EE>z t)%N2L{agZ>FH Y0MN}G*KUV_XaE2J07*qoM6N<$g5pGASO5S3 diff --git a/WebAdmin/images/hm_logotype.jpg b/WebAdmin/images/hm_logotype.jpg deleted file mode 100644 index 15bce0a3f725ffa92187c0cceb6705ca6397cf59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13596 zcmeHtc|4Te+xR`kPNI;l3?a!ft1*`BTatB9@o1RAFbrc?k|jk^mQ?B~N=c#!iK0Z& z@{}cOWr Tg(Yfw(uI*gsI_I8q-KUG)%^rY6H(6L) zKnN}bWCi{p_8^~@c@*6Tf^2OeH3)+EAwI+k2nkvU@CPAeARbN|g1iv2Kid8X)kPjI zz=MGRgycYFA+VgbIB2KuqeI+_vIXGz1QMLx13~LVm!8H{rWXxm@5c;dhWassQKn8f zlq)@m%8U$!uxPZ7F8mLR!Vq-vI9)UWsDO}ph=p<4YzWHZTGEe*&qFS?AuP-Y3NHe= zXd~~>^FXZmdmadtpXUL5vS=?tlk10Wp6?6lU~j=5S$ML4_9cvieK`gRbLQk}Y723( zKR_a!9z@*(OS1c*BuJQ_pI?AqSU^BnOh`~jOk%mP@Nx;Ml`ADyu9OlJ=9I<9Lg!y0 zVwsT8GLdDXA|j&VA|fK PORg!SL?S;d$5?W39lrx<^4UT(<5+u)*C#slbIaAFW&W35P zY9kNPK3`3`(;oivi^aO^g1r?-8asw3&Q&%&9r^0w6Oo*AzUpr0t4X4zt8e7KqlMS* zb-kVvgSfbWwcH$=_;`5;91|2UE4YCLA&M(`u<;q -l6z$ zWnS0-J{3Yk8!+PRDylhIJB&8;!-W5A!MeXqVE018NY0pIkRdcNE{eCY GN4j%n~ zzT4J6 4Ue_RLEt6C2l{rrLBIB%OWM zJZ83a(2IQP`+}N|dzx3}kG6EbmYK7xJXesKgelR8t1Ow8jSI1zTRmwUI~F>HK6*VV z<7!7}RpnpZV;@@T` z=vz4bCzwa4}$G`|QIZ`d)d$dwi2(OB(ql$I8HY6uZ( zttsn2$c6@{^m=Cdzj#((>}kga^jeta#$vnlgP`t#S0`kizqq@zK9>z8Tz-*sHsGvU ztA|O$AM5!nEZ)q$WJ4KSwMwQ&B>8lC&o8I2q21fm18nyuM6}3ddQbl~wT^!NfO=?t zt<|$#)ETGd3vaH-W+-nI(Zjso>E>=;uwsZhF5ly_#XQj>FkstShtkupRcMH(=nm`U z)7$Iz^G)$jTb0}^xiK?i{BpLVIq~VP{m~{5ZzNA2DSv=`_I4+ApU$6uEjyH&D4p35 zxvz?9dTp6SdQknzr@i=F@p*EHyqT;Xx5~YxA8(_iHm+~-)2$}-1?WnbzTwXBFucJ# z@Nsv2?tWg|4%bARIThZIb&sqgFL;!f7~+`iQ>tHGdb@bLg<>BC=<`E$+vm=$D@&^^ z+ s`64v~!U^@lF{-d@$Co4oSciM`!_O+IUIcSlT4r}fXA?sTEk11U+( z`{f(g({L*HON6V;pGdWT&&&BR?^;=#Re>f__CQd?li*x|4f_$R4=$%Pt)o}Wrwrec zT>h&5@jR`+YwMocU|wThejF YvKDNTzuAL2C`nLS0R_89h7j-+Vl@0CY zuMTXS=!cQJ8ZtNSJ~iiiyFSKpOq8mv*U}15YP(bPHnwei)R-cF;_)l_f}-J=FA)Ph z-HLXvgCZVJ2i(du8?7?LO{DV`O u` 0kTEFPy#r2Lgatn4KV}4-Q0F z1{~^e5#$_@aEmi0@+;f~R%rS7015*@a1?`rSj6NX&;5ack8K3B4ZtNH_{2v*8h>Lr zbNmMS5STE;{>OrR1C#%e#QvYqIG*8$bwlu6!MwSQ7V4rG*8nWU2_P2yBLjDlHUKQl z2kt^}aDs>jPa((;3WPi%2E>GXL0wu*j%E($&j1cP77IsuDa2Vq!sh&2Su_*I2Zb{j z-~n$UUN2^N5H-}!%ikOH7Udkh!!V%7*~HEu5@Rrfd_kX6Hq(5 mSd=gt6(Atz=wR9+v)}?VjDacEfxam4_}`vCGMvS5 zHg|IdLoGTNcK)vz+fZNHFBo15Bg~oN`wLFQn+D`)QDN4hR?fDYy_ie}tdM^R{R^{z zACnbh%%J-&d20E> bw^snqfUcRPG29x!ZbHx_) zn^^uJ01;>lGYIyzKo~RFE<7xh_VdOOWPpwIZ&+b3W*FE||ArR=OYHZr?3{N{6&?r@ z1{GoWiPK(q-^4g=#Nw|L`~kACp%EM@m>=Sm004Gk9;l#=7yzFmJ0J*z_);K1{~gl* z4(VS_{toGXhxETg`u|HI{lfX70L}ymB7+Lf5C~ch8ADVMn0bK+8wJ^ea19R9m{2IE z1;S5g<$u9}f=nSN2nQ=%7-1m} CFt(ilPK- zVKmWNkiKD5FvUB77KZYoff&d@@ndbhB8pBmP;@2OqHTjsX?}F87#7VbW{b0TOn^6u zs%W?or5~jm6&M^y3!|W-0vSP}x={v-9Ob&84WqRbQ5=@A00TwN1r^H8)*fZbWYJJ~ zO^k*&8mEoIYinYO+C(f`9c9Z5LRrwfP#6*lT*?tqSgbA{4X)-;i$xI($)ft`I+|H5 z4hVV%ii >M=Wl=fq8+CEqL>D5V*gn$Oj%;31nZiz zXdvP>1JytgzADu~6E(0TXADUfOVGt>Z$M*p(P&^UV6|mZ=|0gvvjT3c^U|&AFRWm9 zP$^-Q{}waH1P~K~xO8bB{rz41(^ak_it4TF!(;_gz*>Ua4PTm;e=yBg5%t5jx||pi z*a;?s`x$RV4-I3oqB&atcDb%~P-qw>$eU(uW}p}zPN(V;wee G7HN>V3aLB(MK4(K7GK?S@-xK99dP;q!1Ru4lU;mxraZL~J9pJZZ8 zFhy${qX{Oauzv_x9YqwpfpqQZQ8b2|86CU_p&Vb}bO=9_w*EvS06%bqIIH6Xeu=>H zXaMJNkiSk6r>&!nSI47C+Gq|0=7SYjfLIP@0pb9jfLY+dtHV-64g^yL(*PI%0S2!_ zKyx6NCTN360tnnf!~v(l5by&?f}sxJ1P~qz2V4k4coZCPEewGyfE-!iSUd&~s4xW9 z0=R%7a@smDBmp}C F(jZ9hOjJ22bLx2z&s=!n1@8-@Q^T^ zHmr@r(MBS{Ba%2eNw6hYG)7w;ET=ly0_xi8M0Fi?k~(k=2BVI_s$+2K7`!@IUciJQ zs)M}%eu}YRhky+N_6`ATBd`m=h5`FPk3huYEzHe{1gx134r^h7!I5x8Q*9!Kh{2 tf;pFE=+g4>vCl53c|(s6za_y!=AKf`USVg2JK;Sqh7fe@$6f=p*>}_?8JT zlM)q``ky2&U=i_11o)r+zY`ZQAaUUgFq7}+yakAx2g${YfEE)MxVVr%Q-8hXGes8l`yVsig(I9Q|=ww zKrmaEb@r jR6Cx zG}+1hW5;y{UQ$mRWk~z>zx3`adO$zl7Hjfuz>1EW6Tb6p$P~S2`+;k3^()6;^>-=S zpwqU;dXX*c+zRS_OdcZScN;b129@8`m^qrCZzw<9b}`-a6|2~HQ%;;@-sb)JqB6Mf z;TZealW4uNV?EN!k1lO7EuUdvJ9F(%xRj@CEpoiLeRQl!J7d+c6EiIzUY&j#mvTHc z* )=ZhEIsAtyO*pObFJK5&_waUw#%4{f+`94)*jQJs6t-ZzcS#6v U#Z^^sG$D5$j~TUYA1euGvc`Z3z$ED3LZh14ET>wCUuisJ_g2XIM(xBb3BgAM=F` z)qBqKvmy5=6ZHz;Q~Rbaga7Z3E7jjX+xS&!K4RuC=YA$gj2MoiY&8AqRXpzMRpKfU z9(gXZ$-|xew8 EZ`FTmILU#*t)DupFtgcjXUEB04GWvC ze#1o uMKhc@|+uceAn$0Jjt zdiNaS;&oE&<>7e|d~<7I^7G}&`(;kA2wf-cr*oV}b22Nbtr$4$ grF4_8k5p6k zvQvL*76*5AW#UqnH*DyRSkrTWB>LJ!L3fRF+c5NrIzH6VY{9ZdXw`jIPJDVM*Q&45 zh_bIqVU5)Kh%CD1(NKdwn}_+;FWr>344GwlMOJ&OhOHmDA^+yxTDkp7#fixlPk6Z9 zS-ZFmOsDt|8*KG4%@zJKQ*Y}O?9=d_!w$#v88X_k6FS*Vu8*oxq63&EeI>~F)otmI zo~&d;Vr(e>;Yr6ggRl3>di5NBSrH>gHoPy}&u)cRemA`G#bAYv=A!Fr0%-zB%v|%~ z!%FhQSH#!Nrn{FpZ+`VznsV6ky#+} 3%O1y80K4u+6zw?C3;+~}k2QhLB!d~)&&SNySx`hX$B zEo!g7Y$*$W6~!3!SY?|t(2$hp6P|jiIN6}4U1E!-{&Py;uBvO2UFfqmZ_c&fvpUdu zLZ }K9Svfpw=di zC1ajKa)?;dH&pa&Ti@Gh`pu`82kX;)g?u_gp4_zT5fmA7S5-Uw{i@y0?L7slQOfNd z22Gb*8te;4pRBYUH&>1+%)RvbYWiCZO&3X3$w;FMHeEZczZKbj8&*-r#h=-iwJlw? zXyAxkEE)OC+HNo6&GOxrY6BXx6sIj+B_D!T@TR-TkhPGTZkVO&m2Q;gA4k|9ec0+R zI_+}hp`yC!b%(}~@g4L!kAp$&ncEc-63gBm*Hr9L f>)nfu_--toS9RdaRP>i;4s~-2I(~aM@UEI(yGje#f+vao|zp^Z{ z-beeL!?$+WM9O%Kj1@N?Nu!D@KmOFR{|Z(p%u}VC-o^FGvCHYu6*m#JT}CZeYBv`= z2|G@UmJxFeva3|1r)Ar3y%6nbS(n)EXQG>Gsg^2nUc2&Ha) z}TT7*e9mpeFc&H;z_be0qu~^iIQgwWYhDYjLPi#M);R1b03`r*+Kj zOzU33!#juavR7q=`(A$ (n;@yIpSOPj^3>WUhT 8#3p%8V-y*^UN19u1(53x+-rg|4#QHL$F5a-hgId zNW*5b<5r8yue7YKb$1^$CCU5PRLO%Q;grpITuJKL$`b*_C2AjfJ1$h8!pYz=#aZ1Q zdv +mxd zg0Q%2TC|AUMV0>hM3?Do>>V{rW&pLb^DhCcz;nCxR)t?`iM>tsl64kO4R)@o4e*it zlA@_(y4FUmXvD>*#4gBCMD0M<{odNQ)4ef==R(ORvDZ|F6qnsk8h@X9wzQ%jeeRNr zq~cv0@py&xtWqo5He6uYWRqjduDv>~fq@FwEo-Ze7b<^OXZ*3}!pm{39(hS|&7&<- zV`n`~5?*LnjAu~8GkxsL`TZpi*Gdj!ocsQGQc(AK`fXK{i`z{tv+D{05_~(ry!Bsr z9QJe7c50TjznRrlb6o<}EOSwR6G&-}%}I>rk5;y-yOM#AD80PF;aEt~D=V&jldj^I zlUqme&FTfHnvQ0diecN>^5B4$7KV3>tA?MYx?r;vGB>qLachzsqm=%n=vkCpscqT% zBR8Q^SKEBdl`9q3g=s~U8B{wXic9CQdClI62uH cvaraR<+2rp`1b9pmCAcbBPu1o3GFyNn>Ag2*I;GySeu6?e^2y! zwR`h|*DbtT>Y-W>g8~i3XOIDzAnV-K=!4EW;c~G3(wvaiX7UOb!*rt~#-$moa#Ch` z^dZ|K3x{X>R?lK1lImTms%yGdh@Ly*hzU`d*!I!=WW+L7ihkCG{xlxRvxR}>F1OB@ zM@{sVcE>1KA5ge}H=T@^TDfUe{I;jpoCa^A#nX S|dYF zKl3Y=4PpCsXSQinUg(+{S4|(cd_OHaFLA}FwSX$Ak#cIE7TxZ1@)W!Mr # z{QOgXcX1h+gi1F*D>zgX_~>9pZee4c)cNko3$y2t)h*ru_mh*z<(-F57-c6|8kS>~ z4_gPNBu}pAeXy?K`^uJbwV3ny`gVT%ql)jJJ5=SmCa`Vzq~G*G4NO%v)|6G!i1(=^ z6xx0^LswZGzKHSKd}w|)u=kje*QQyuQMFOQ?pwv< wu)a$eJE{bACN=H*=*nBSIa27pi=kzuJ;HF zjq=$#oU6wYFSuZ*z2i(}KKH5b>Bv9n+1gjT8%p%7-!xS#B%=QKs%BOA7{Qa4kO~gb z1G&uR(K~Ac8uq#QJq|u!msh-|VB#EKLi@Va52R&;q XTEDjtCk0ltJuV3;Y!LY5 zlvaYD5_CG+c=nvgOYyc9LqiJwx0`qH#qE dpsPK2w QC4g*REQo4K_+wkEs< zZ5=K@b*BGvpS(KH;a6kca|0(X_e|qti;uJ#d_FYGa+>pb+x2$p;hvYL=w1DLU6&Vf z)qcEHI`iq`$9k?(`7PWRwc1m!O$`+r`h_>SirgG0>s|hE=wWz+#D0G^^wE1_{%zcL zpN&C5TTZ`Kcl4Yp-EuR|w^XcU#jE36*-*sk{;vSWo<579N^eP-RG!`#?dGeQ(i@x6 zb>2 sB@sF+8P`buFyKmoS;(W*Idnd=6ADqzn Oys3TwyV;Z7^Zx+HN~V?o diff --git a/WebAdmin/images/information.png b/WebAdmin/images/information.png deleted file mode 100644 index 85c1876b5faba5f7af90b67c6fdad4b3d6306acd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmV u(v^Re+QC2dv>+ zS85PT*?2b-#mvedY;HLS_$7`VEJS_vUX=JG9u7`nHNK^aZ~?&ubn4vQehQ!F6L>bh zgt^rux?8HS^tc{2srbE?MBl`+!kNc>Pr1%BcU-K**snOggySgm>quuD2$7x6XG!ca zrTWjfX$mm^i4*FjP^WMl=X&{p0KP6Hh-koP=*sTBp2x{MAK^E3Smg6B K-{Dx3nX)I(&_xHP}RoAokKf{z-79-zqTri*W7#F n_5wN^~FL{ z!wD1>S=gpe*i;=rb8T?v%C-;8s$_$TBobSA^L85R&o3XLixk!g4`&wNca4t8o=XkK zQA|Zf=Ms1|9aEQxnxoin&=>+6lsr221I*_ aR|Kt0000 WOA{5f=gd!nXf^UHjChbA92$Z5iP^W3D2YpaU5mRx6 zN-ApZkK69OeZSu{e6R~2mwWGb&Uena-%n_3YkQZJWGab9qfk{9f+#{`Fkn3x7_`*a zR|EKo|6Br ;49u(h<{azg{oWM^YxV8Bj*$HKu>29~IL>gpgloy`+1El-vv zCnw+1JHySpHD7J?J-WDv+4gpvDldl`1DR>!_Mvn(T^kHS63MgOZr@T>Wh)ek-f}qZ zNWQKY2rn%mcVh$7`T1OO4e;l>!+{*D6<@tx)KpbL=<0%IdU^_sL{U`a=H|Lf3knb+ zK-SO@2VNK* 1tnC4@o{D0mHBJpD){Qdw43rl0ct;=tLwJbs@e1 s{GmE55mz>Nb@@MbtEYdSF;BvY2Znt}Y6weSzp2V08 zMq`)tk`*&^^Ux(G#-zy#M7 phS6y&5ey$j# 3j1-M$D2Co8oiTp{F0eR#h zb^;R{ot+T&_Q1ZGO(v|YtUzP4*>2MxM1s+XH@&?W=<6$GTc)9;C1&9uZAOw-TMLEy zR8j^(h*@PU>>znO9(?%pv31?&8(|g# zha|@SexRZPJDZ!F{2Y}Du|5BBFzf`? k*&|^sQ*9o1r2h&q0INtyg_((Hs{jB107*qoM6N<$f@1W6#sB~S diff --git a/WebAdmin/images/rosette.png b/WebAdmin/images/rosette.png deleted file mode 100644 index 6dedc271f3faceb070bde8e125d000a4c2dda6ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P) QSfNT6Qr&8s&L9uz!#@E_2dLXld`$%Dn4;Ln3WEVP#hNlHwl*lg2o zKHuA9L(|3&2HwuRc{AU9vz9RimSy4mc?}#G;FB<;OKU(DBaU@mfQcpmb}#4ivzh7X z(AU`C$M0%&HwMhEg?j%HV6x5R;AXLiiChkyRx9*7sT2-tHGJ6I1Vv&L=?)YmptB9! zFWI*FI5%hhY;2e>lauB>!!lv{6cb0>DBq623*e0vi(!6c1(i|>L8AdL9uG}eKE=cl z_kzGW@HU;zqSI``_I)IhNhDmiXT77tmv|`>o`5@ccGX#;$9HA2iyo)>1Vl&v8gGzOh~e-Ojtg}#1VJY zGv;0aKiGO|f$y)oJN*~xFzz28<16=p%+@Vnp6=R^0C!;B<6|852a{my>GAPUpm}rz zpY5L#Ptg7Xx48>1hpxcQcz%6#6*FwPz{Jy&6YRBGHCkP`;CYy#s5s&d&0q^yypm44 z9y@U;p!PGo_a5-{8}Lv#sbOj_$Pt%03xiGMW|iB^%jTd^FcofHJ)bu_j-vr&XqVo( zt}kCDlQ9i)#AVL+!3?%7%V@bxG+9~|cy<@KqwmMSgKNN}vvIp;@o0!kBmPus;8!23 gldB^*pZ^Ik00a}{`D_ykmH+?%07*qoM6N<$g0d4RZU6uP diff --git a/WebAdmin/images/routing_intersection_right.png b/WebAdmin/images/routing_intersection_right.png deleted file mode 100644 index 1e8ea42ed20be7e248d5aded03d8d8cec3546b48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmV aPAHZ=O z1}deLuBhBTo1d90W3-~RMi3Oyo@@cP8?-_!7DI3L8shZ!JP&3g?WDib<=ZOfKFxnF zlhOef0-9O|d?lSV1k9WODJ5LjrMDXqSZ=PDmcv^M3yWJ_86!m!f^)PspGKyyABjX9 zj!_VX%E+}%XoiAUq(%vR9|Ps36;0+y4Mk6YfO{Co-Ly&>;}L;UA*3U~iNGudp2ltO z6qrVn%EOkiv~xohj&3@SKrb7AcHI(~p$I_=1h>))1s}wT>rFK@EKX+wQiM2@8$tc% zI01@Q5o3{2kOQ(Hh#-165q0huLt}Or0TUQ{` pqNr zd hQly3j!{z6AKno-Rh>?!UqlMXk0V^TP6=+z978VEiQ)VZ9NL_@4|LT| zp= Q@rUWT)d7Pwv#bR*^oMdP3__%mr62AV93kSzBJ~o2p h!&tKJVUEGNoE~ zGMT)4?mhRM_udGtHNHa#f%Tni)}$PbK%O3f{nh16CRk5l2N!GGd)aur-|6j%feJM@ zSBM{ >alFD&XlklX6;2_fvdn|#?om~e%qK2Sc)+m|g%j-L{(k%U3$Hd40 z<4p*Bc)pKVXE!WS9c`pgALR*eOhAR6kK@xzSe9V_x~gnxaRzk+)DoCVD9=NBHpv7* zYm_Ivu>vzs8mULQE4Dzpud5cE`EkaZ>_Hh)Dx~M8D#ur~K(Caaj5oHRNopC#=NCL( zFoVS^Qq!Y={)YnBQy3oV DwE!@`=@cR^` zX^uuZP;g(-8g9c%@&@hEE)-QBy4gL@# x1N-G2|@~jUP6)*tCf&lA_U2D1tAcB>PfQ{7uP67L9~)6 z?1$(--7rk&&dlx1HGin_%zQI sXP`i3t%-COksZi;R8?=l{Qx$h!1PF z6T!xIKh`l3K-W1Ii99m(-iRxtFYDO9D+8L&*W<&o6hMQjX>iz6k)D!<&8cZfPj!g3 zrt1R1tF?S$@;NtGK-;RS;nC0tEEWlL6PDf;zI-_5U!mB06fMn7<|&W_Fja-8Fb6Ub zWnw1E!10C{TBo9DDlI^J>m7u`H(llmC|`wA=p7tIf-J#CXr5R= 7TDmYf1C*ESgZpyNsNs9#`W0SM z=0!{7_G%H0-Z53j!`QF@3Bb%8aQ>tZ_d2@pncI 9-&75*Ybd%6)va%R@ L$%T8J7$53|lAH-C!3GPbz`x>s4Z*4l|B_dxk*3Z`-*&8TvxI50Y5XI= Y04TgA?akBM=Kufz07*qoM6N<$f|=$~)Bpeg diff --git a/WebAdmin/images/setting_tools.png b/WebAdmin/images/setting_tools.png deleted file mode 100644 index 81857cd8d05218020365367fa5ef5b2d5732e45f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1017 zcmV W}`hKTLnv#$eiNXap^y z5?ab`nwF)tbz#>6U3O;K2kd)hcDzGK{NqVZ=FXjazVF=gWvIUXL5QLV1%e uZoiah9T}1B@b+WqE^wAYQ6`x!m&h zTW_MPyW4$jWaQ%#qft&vO|_SmmLThiCm~28BH;)ej``w8%S(=p0?A|&k|cd!yn9z| zb(IM}T)vEx9qs$cr@!Ana@4!CumChgW8%+Agu`Kk!Xbd7NYf-3MVy_T4UXe#&89tY z%rBrYzW}Xm9W5G-_GmO3)#`LQ+`s=9v}zSx|G3cH)M&&e7-Id3Ac{4X!v`_<;32l? z^?2-dE3S?ZS8MTDY@<^~Mh0k_Mk0|wPv04vBnqI&J54T7v$whmv-W#R7`Sz72BTx6 zX!)cGMMXtTF;XBFOMoSzDz?oglM=ctDWMTXN=4->RqLThZf2$)0lyDt2M69sPh+)d zY|756S1Vw gRoS2>bfSN zJN@&8L&Nj(jesnFaos8ZI`Wfzs |8>l3W-{u}(N@dtOS_J_t=`2ga@C(mw zt2?nT55xET@Wql?;(hQq?_8VfZ7^GGsgslIdi0NTXxneVYxy}AQ4)vgES&}lx29_j z4jp=tbmm}RiDS_lz@l?*jO(p$+}?ftE(ux7`8fEa626-7;MBWC8ycF}Q!EltI5+J_ zFd^d+&tb`BAM^DdKGyeXvolGh!2S7wkG!tgv1KoZKupHqA3n%Llfs(n5G8+M#Lt@_ z2P4mUR(S+Gu5rG{@?lroaU!O1Q&os9``+^}pRSo=c2^e%6Y< ' . PHP_EOL; } -function PrintSaveButton($caption = "Save") { - echo ' ' . PHP_EOL; +function PrintSaveButton($caption = "Save", $cancel = "Cancel") { + global $obLanguage; + $caption = $obLanguage->String($caption); + $cancel = $obLanguage->String($cancel); + echo ' ' . PHP_EOL; } function PrintHidden($name, $value) { $name = PreprocessOutput($name); $value = PreprocessOutput($value); - echo '' . PHP_EOL; + echo '' . PHP_EOL; } function GetConfirmDelete() { diff --git a/WebAdmin/include/tabber/tabber.css b/WebAdmin/include/tabber/tabber.css deleted file mode 100644 index 4beb066..0000000 --- a/WebAdmin/include/tabber/tabber.css +++ /dev/null @@ -1,111 +0,0 @@ -/* $Id: example.css,v 1.5 2006/03/27 02:44:36 pat Exp $ */ - -/*-------------------------------------------------- - REQUIRED to hide the non-active tab content. - But do not hide them in the print stylesheet! - --------------------------------------------------*/ -.tabberlive .tabbertabhide { - display:none; -} - -/*-------------------------------------------------- - .tabber = before the tabber interface is set up - .tabberlive = after the tabber interface is set up - --------------------------------------------------*/ -.tabber { -} -.tabberlive { - margin-top:1em; -} - -/*-------------------------------------------------- - ul.tabbernav = the tab navigation list - li.tabberactive = the active tab - --------------------------------------------------*/ -ul.tabbernav -{ - margin:0; - padding: 3px 0; - border-bottom: 1px solid #777; - font: bold 10px Verdana, sans-serif; - -} - -ul.tabbernav li -{ - list-style: none; - margin: 0; - display: inline; -} - -ul.tabbernav li a -{ - padding: 3px 0.5em; - margin-left: 3px; - border: 1px solid #778; - border-bottom: none; - background: #DDE; - text-decoration: none; -} - -ul.tabbernav li a:link { color: #444; } -ul.tabbernav li a:visited { color: #666; } - -ul.tabbernav li a:hover -{ - color: #000; - background: #AAA; - border-color: #222; -} - -ul.tabbernav li.tabberactive a -{ - background-color: #fff; - border-bottom: 1px solid #fff; -} - -ul.tabbernav li.tabberactive a:hover -{ - color: #000; - background: #ddd; - border-bottom: 1px solid #ddd; -} - -/*-------------------------------------------------- - .tabbertab = the tab content - Add style only after the tabber interface is set up (.tabberlive) - --------------------------------------------------*/ -.tabberlive .tabbertab { - padding:5px; - border:1px solid #aaa; - border-top:0; - - /* If you don't want the tab size changing whenever a tab is changed - you can set a fixed height */ - - /* height:200px; */ - - /* If you set a fix height set overflow to auto and you will get a - scrollbar when necessary */ - - /* overflow:auto; */ -} - -/* If desired, hide the heading since a heading is provided by the tab */ -.tabberlive .tabbertab h2 { - display:none; -} - -/*.tabberlive .tabbertab h3 { - display:none; -}*/ - -/* Example of using an ID to set different styles for the tabs on the page */ -.tabberlive#tab1 { -} -.tabberlive#tab2 { -} -.tabberlive#tab2 .tabbertab { - height:200px; - overflow:auto; -} diff --git a/WebAdmin/include/tabber/tabber.js b/WebAdmin/include/tabber/tabber.js deleted file mode 100644 index aa509ca..0000000 --- a/WebAdmin/include/tabber/tabber.js +++ /dev/null @@ -1,523 +0,0 @@ -/*================================================== - $Id: tabber.js,v 1.9 2006/04/27 20:51:51 pat Exp $ - tabber.js by Patrick Fitzgerald pat@barelyfitz.com - - Documentation can be found at the following URL: - http://www.barelyfitz.com/projects/tabber/ - - License (http://www.opensource.org/licenses/mit-license.php) - - Copyright (c) 2006 Patrick Fitzgerald - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation files - (the "Software"), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, - publish, distribute, sublicense, and/or sell copies of the Software, - and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - ==================================================*/ - -function tabberObj(argsObj) -{ - var arg; /* name of an argument to override */ - - /* Element for the main tabber div. If you supply this in argsObj, - then the init() method will be called. - */ - this.div = null; - - /* Class of the main tabber div */ - this.classMain = "tabber"; - - /* Rename classMain to classMainLive after tabifying - (so a different style can be applied) - */ - this.classMainLive = "tabberlive"; - - /* Class of each DIV that contains a tab */ - this.classTab = "tabbertab"; - - /* Class to indicate which tab should be active on startup */ - this.classTabDefault = "tabbertabdefault"; - - /* Class for the navigation UL */ - this.classNav = "tabbernav"; - - /* When a tab is to be hidden, instead of setting display='none', we - set the class of the div to classTabHide. In your screen - stylesheet you should set classTabHide to display:none. In your - print stylesheet you should set display:block to ensure that all - the information is printed. - */ - this.classTabHide = "tabbertabhide"; - - /* Class to set the navigation LI when the tab is active, so you can - use a different style on the active tab. - */ - this.classNavActive = "tabberactive"; - - /* Elements that might contain the title for the tab, only used if a - title is not specified in the TITLE attribute of DIV classTab. - */ - this.titleElements = ['h2','h3','h4','h5','h6']; - - /* Should we strip out the HTML from the innerHTML of the title elements? - This should usually be true. - */ - this.titleElementsStripHTML = true; - - /* If the user specified the tab names using a TITLE attribute on - the DIV, then the browser will display a tooltip whenever the - mouse is over the DIV. To prevent this tooltip, we can remove the - TITLE attribute after getting the tab name. - */ - this.removeTitle = true; - - /* If you want to add an id to each link set this to true */ - this.addLinkId = false; - - /* If addIds==true, then you can set a format for the ids. -A+Z@c&Rop1HXW{42l!jXJr?mY+(D00000NkvXXu0mjfaunFH diff --git a/WebAdmin/images/source_code.png b/WebAdmin/images/source_code.png deleted file mode 100644 index 45c1a22c1a32b8b6b1cf0795a4e596b3b5959ece..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P) #p1pqa$$Q1I-L#+2r*rNijY7qmxH_8 zn-Zq>mDUk>{uewqn_yYi6sj=BkR3%4%+AdK@hB8MqELh5IHr2af%yG`)k%QxNw9#% zM8?U&>go#eCtVB%F0@)NOf*|S7hyChfSQoaW?*e?9h6d|J`gwv0ysav0N)ST0y}_T z0y@$lm4vH$oduSc7DpmP@O__G*LC6b?HyA5*a0>~QUj^Qc;)jOD5%C;kFArNYPCv- zITj#}h1IAsg_IUNJw6zL)QJv<-|*4xg6DaR*E;2ZkhX31PV44Y0atq@K;R(op;9@< zLNZl97MOIPpwYND&BPypJ?|U({ZFor6Ug|KfaU>mY{w*!xVyW@PU7hSANPKASjIj{ zzRketL_ly=vdnJq -qsz`D>87UaxnVO!++C3-JHw;B37A2rvLTlhd=G(+^Dm0000 P) dph@yNww?12j`y0cg}y#xuT|L6u(6m5`tDcZZ;QT&7K5Ru|NpX#4a~0 zksu;K;0kHvCQXO !GN)cv!n*z_q|tF**I^VOi4asY ztO`41e-KM?PV89mCik8@KlI?#Rdh4?m!}>aebouF*cwsYJw#z53NZYP4aO>CF2_#Z z`~+HL-RHhQ^I2B<>aL}q{Jq5R<|op0aTX~?+kP(H_R@zlB`FyB!B5%_6a`gdsu=VF zYGVtszXy=i*^05*RTOk}AROjFXavdVJFElya-8VupF&v*V3*lujfJiODZL)pEkJ6U z2Oo}{#hzz92$h$BWGg5Pm_t;VB*rRClJ@5_D6;`8)t5j#z{KlyD7@oA*XTM{+Pe|j zRRDOWc_W0$b$^Gbx;seMDqI-n)+O%h)65d)mp9N*z7vy&iy%*Ygpee2jl4SOd>az$ zi G-y@piOahKYW(;ua z#T0T=<8ffO!z4XXnq}UG;UAq`#_j%DRF!3zGm|ux?Q@GEe>Ss1K!iPPlR%{6?5( zEBI}a0iL!iJ07Ju4)hKAAdAg^f<=*eKsGiUbEWVpZ`nbA{UH&_OS55bx((ZmqLO5K z6h)%d+Iz#Xe9~J9e Y;o@Bjb+ diff --git a/WebAdmin/images/speedometer.png b/WebAdmin/images/speedometer.png deleted file mode 100644 index ecd620b7473e552f7110287ce640792075da9f7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 852 zcmV-a1FQUrP) K+s=?8cK>ECD``|1X)zl$KRkLi>x2|BP#pwJEIz!q5EN=5S3|CVW4xH zh`7u-?`&+>?XGif%~l AWD)liS#zE_wcIEtq{MIaaq9!W__#(>p|g}GT=)#sqs zH-chz8H|twO ^6%2Nc$#c6y#KfIzBUXL4#v5B~(&&Fl &c)cs2c*=_iKwMr1%d+U|XhW=;!H|%F!9*i=xM#s~8gLx1L}zEa zf}?oKTNC)<^MNCYlc&x=%d-&FG8)oyP_m^O>lhh4%Yf%O96ffNd~*suBEW`1AxR1Z zcp)JHSy@}bk@7F_sbIqLAHxt&q)0BTk|mDUfZ#!Sih$d__(G@C?KT(;m~lD@F@!h9 zVxqiC>J$dGN>I(AZ1NuQgc=4z8kRgBP#%8Q(s=FqO{dvx#)? Es{HgXyS4T@E zr;2JWfyAcMXU|;_1fi7l08cb&C(@pfL{YTdZn#lTFq0(2|GF`17)d145=X7kk}O8H e9o^191sDKg!B=*!h#t@Y0000 5zRc*| z45Z&?emr^0j-8hchX+0Gr<3(lPlaS->quaKI}8l}Cj(chJE6`CptWZn49}0BdQeXr zFb`* e(=AZSyIkFKnLfZ)zWrQL~I6c_4F=&In(?vy@om!b<7iqM7K1s76l2uToKXg1=b zk34Fe7@L{vIg?I0iINKkl6%hgJKsI`jzC}~&kapTWhA0~z0g|I4u^mc0`~d_T&F&H z{&jB2ujd*O5RVI~o(x^NhRDG~B-KqYAyEDP4Y|h)(5`ctAWvHWEQTWS)hVbSUr>2T zc_}@q=fZUnyEqP~{|Iu6bAZ!;c!1 Sj@i;BdiRNw zsI5GQ5$S@msMxS5%s^P)KIge^-_c`mbz?>bpR=A>^SYqjdizq8lT@F2Lv>;oz{4tR zLYf3ns+suj;;uqL|135e87$DHEwUJbmL0nLS4uY`%H@Cq`XNh28kQBf`3?XcTqOVy z)YT?pm>lpxbq5N+NJ%rW%iDB<20*4tzoye4KB4Al7<>b!1xb@{58gMZNv*Dt{+I{r zd`AZ!#0RdQ-QRux% V(}28d|mb8*7>Ocw5}QcQ>1#r^i(ANA5vJ2{L+m z1Xe7HmVr>!pNfsucWJEdifOmd@-Z=FHa>XcR8Mrqdn9cDNj6etd-_iH^CK4j^ELVq kih&N7koUzt;I9A!0K2&3)IsUtVgLXD07*qoM6N<$g5TvS5dZ)H diff --git a/WebAdmin/images/text_align_justity.png b/WebAdmin/images/text_align_justity.png deleted file mode 100644 index cd091db3dacf2ea0d9d2d1463e6866d0b9a4917c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P) cHL=OsKNo5WU`0$`{p;Zv&{GXAW0G@ zO;hX=nx;Y5^^lX;^E~VmgTcVzMdi2m4;YmSbmdGTrOc9oF_tAoqW)jZ=Que&0%>{S zR;?bO)477 !7vP}uiOg)sj6!^ z1+ZBBAXa8;2Au0?x4k8SZCNnYNi7K>Ac#Pn;dF{#?`AW>Xf#v;w)`mbla&USB&lji zY$j;6F5%ScS#{e~1T{OGfl$5A1kE5upa}Z?+jRrRbUZ&jY;}FJukUpO!_aZwynuU1 z1T+J>1v_hvW>6*=4)0e6#a&bHFXP9p2xPuHq%F0e;jGbwTmMH;n!%?c2&ciHLcG{8 zir2|_r&T7crsb= JQ8ZDHqLIA`DYq@1iAhWRrz)L2A;Mn)1^_$GtJBl;nvehh N002ovPDHLkV1lsK(Qp6& diff --git a/WebAdmin/images/time_delete.png b/WebAdmin/images/time_delete.png deleted file mode 100644 index 50691fea513274d19385658b8ffe6a3a735065fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 901 zcmV;01A6?4P) RCwBCQ)x(4Q562(cIS;VWjW?j zYNTl!MG7s@0!d_>6%j;#3L2uoHY(~*K~!KwQN-AfqU?`tjFB0Yl@Mlzq!Lz2nU!XV zOHMU5%DlPvcHUUga^T$eIPaeCeCIpoDfq_{x8E#^2(eK}n2;1u09C=DuBsQhPOm8V z_rCJ$C3$E0qQNk)SeP>jGcw0v#4uy%D}j6oT6o&>4i6fdVKObR^Hl!5zX0rHs#CFX z(Ok?*{f=32O-OKj#c|(l?B2Q*-Gi~H?VE(!4mXPLRa1ue4H5;2E4U%Oi|1qYgdWUJ zZUv91us9W`>VghMayT@BCq0=cYe~d~iYoLKt%~MqNjq*9&CJS}v1GD_y!2MAT3-Uw zbYbGe6hwqV04jB%gF{0`Yybf(4t;|$2xcu#=&!weTjfG{(?=&FH>HD0I&om{a+F-J z!}I1Y0*Zldm{2rE9h$J tTnVKAr7$PopwkAVnB@wvNH$%xX<&dI{z18Z@x(2u%j?J%59uwlc& zTpnD!T7w_~4KUZx7)EU?lio{RQp)F&hZ<%0d!v+Av&>tvMmE&nqWEj_Hd%LYv%Hk- zl%-?c@=k_JZdu{Aw*)##84mRKv(H}{JT4AF>T_ao_f{dz$QGKR;m}cp?pI-50kv%s z^N59nM~|^AJJqKm^!dhz?p_qv>IBE2QyU5?E;vm<*d032 `nSNe(G1uE@Wv(l7l}$4DxRcHUaOwMo@{ zCo5C%qSK9S3rxhh94NnDhWynV;4~D-YiA&?_`tb >L@?-$jfi#@055X-$aJ_ko(H`0h&0a2nnwD;K3|OVgA3xS`^2{Xf`F(K3 zuOtB(?FhK4qo27$g%5Ysr-yszMHDS6ZlA?VH#N5HQt-c}k$Zma$WIgGLGsu?Vm)^I bKLi*6o%Us!u=wum00000NkvXXu0mjfc<-Z- diff --git a/WebAdmin/images/understanding.png b/WebAdmin/images/understanding.png deleted file mode 100644 index a6df1aa19c34a29d5483204bea108161ce55c961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 731 zcmV<10wn#3P)OtihN2hh0$JtrfK)W z;c&ms$*0fsAemg24vQm%s7O}iDjB;x9uJ;89`B=Vzb=G@Z0;vM&3}fXst5)5qhZf( zq|@tgIvsfb;Um5-uas-EEDP>!Tflj2y8KxXFijJ_eR~mo5yjZ}I8*|2I2`Eh?Llkn zVSHIy0@GvwjxU)65SBo-y&A8lr!g@(iRR{mXl(Q$7K>qcc!c> 9^4` zbVJ6Mdmwc!%GJ?v9MPAraJJ_h{C+>;@i;Qs9DV!X*|`HNtKX2xWT8@QN$Fw_=tEV| z)pZi5y1S(!b93*o)$K-0%OT9pzQy?q7g1xcB5CbX?oBE%BFjcYh4%KNRLL>9=c?A$ zzGI$dB%jaY`p^yBx_wj9Db1G3=W{S~(^O5C!!qS_dAaIpUAR0j0FzG7GRU ^*UJM1@ z>ra=e*~WgmCIBDoJ6ODOX)u;dp2fM5I6~4uOsiqhkLzpD6DA2!ln@Y4AQ*}uKqOc; z5?vcu+{Vux4b&1bayfyC=`lFA<41+ym!yV?2Mf=^3%^m7RY=Eza4d$dE8wP;MyUj) zqCk}uFUk-^=VjLhEB2Yx@=6|5*T4)NTX_SoGxbzg1`{u~(_^W%O%}a{?>~0&Y3&;d zLK64iX}@mIZ@>NL8{ByOW$(@fDRT9EKZYt4UvmzQhB$_LcQG~IhmRY4#(a_)_oz`{ zgW 2-#C7bkJ;?j%Mj#YU0gO@?Fo^bzQ~8R>Y1s>+ZpbFcGim|H3VHbdQ8 z>Ge7)WgWS)1;e17uTWAb3i3WQjiK@FGp~#m$vZ{}667nrVASkvP$;Tc%~f%7Kti+K z4_cnI=Hzo$0b{(g0nL4Q_`XJ;Ic_W8rf kybVpoxM9$LykQ6L^m&OS!QF|JZU4w_2fM9 #q#ZMW4{t`#3H@oXV~&mAD^ObHufGFb=8C|6^jqZ(B#XY2TR 28u&x=w)WcWDKx3*DU zbefcwM@A2jwLGdOg0pf2g>?Kx-(bt$;_`C*lE}@q=^5_kG4&muso%q?p>DQReMWJ9 z6A3j$N%#sUFLYuh7Eb(|CDrRXdnWIy+C*L;C{%TETm{_ f6}5{yWhtB3$wK zPnTcj%FyfF{AgQ^Xrw8xk*2iaUpkW0<0La_Qo1cdRZ*>kfGiPRd{E>|&IZPsxp4Ua z>hPHk&u=9HZxxm8JG4K);i<3f{1U7{0j8vgjuQ%rnzTOB&aZ#A5|1@vUOU~f^uwpe zgirF0Ve%ltHdnrP?0u!EY_}vye!~|;&M7Y&c5?3I?2)}+h&yAR^Z%xC)v6X&>Q!jf knP?{#SHfOB&i@E70Q(eglU)(D^Z)<=07*qoM6N<$g0&O7BLDyZ diff --git a/WebAdmin/impressum.php b/WebAdmin/impressum.php index 07a45de..2d4e977 100644 --- a/WebAdmin/impressum.php +++ b/WebAdmin/impressum.php @@ -2,20 +2,20 @@ \ No newline at end of file diff --git a/WebAdmin/include/ajax.js b/WebAdmin/include/ajax.js deleted file mode 100644 index bae4b81..0000000 --- a/WebAdmin/include/ajax.js +++ /dev/null @@ -1,9 +0,0 @@ -function getHTTPObject(){ - if (window.ActiveXObject) - return new ActiveXObject("Microsoft.XMLHTTP"); - else if (window.XMLHttpRequest) - return new XMLHttpRequest(); - else - alert("This action requires WebBrowser Ajax-support."); -} - diff --git a/WebAdmin/include/dtree.js b/WebAdmin/include/dtree.js deleted file mode 100644 index a077a69..0000000 --- a/WebAdmin/include/dtree.js +++ /dev/null @@ -1,363 +0,0 @@ -/*--------------------------------------------------| -| dTree 2.05 | www.destroydrop.com/javascript/tree/ | -|---------------------------------------------------| -| Copyright (c) 2002-2003 Geir Landr | -| | -| This script can be used freely as long as all | -| copyright messages are intact. | -| | -| Updated: 17.04.2003 | -|--------------------------------------------------*/ - -// Node object -function Node(id, pid, name, url, title, target, icon, iconOpen, open) { - this.id = id; - this.pid = pid; - this.name = name; - this.url = url; - this.title = title; - this.target = target; - this.icon = icon; - this.iconOpen = iconOpen; - this._io = open || false; - this._is = false; - this._ls = false; - this._hc = false; - this._ai = 0; - this._p; -}; - -// Tree object -function dTree(objName,imgPath) { - this.config = { - target : null, - folderLinks : true, - useSelection : true, - useCookies : true, - useLines : true, - useIcons : true, - useStatusText : false, - closeSameLevel : false, - inOrder : false - } - this.icon = { - - - root : imgPath + 'star.png', - folder : imgPath + 'dtree_folder.gif', - folderOpen : imgPath + 'dtree_folderopen.gif', - node : imgPath + 'dtree_page.gif', - empty : imgPath + 'dtree_empty.gif', - line : imgPath + 'dtree_line.gif', - join : imgPath + 'dtree_join.gif', - joinBottom : imgPath + 'dtree_joinbottom.gif', - plus : imgPath + 'dtree_plus.gif', - plusBottom : imgPath + 'dtree_plusbottom.gif', - minus : imgPath + 'dtree_minus.gif', - minusBottom : imgPath + 'dtree_minusbottom.gif', - nlPlus : imgPath + 'dtree_nolines_plus.gif', - nlMinus : imgPath + 'dtree_nolines_minus.gif' - }; - - this.obj = objName; - this.aNodes = []; - this.aIndent = []; - this.root = new Node(-1); - this.selectedNode = null; - this.selectedFound = false; - this.completed = false; -}; - -// Adds a new node to the node array -dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open) { - this.aNodes[this.aNodes.length] = new Node(id, pid, name, url, title, target, icon, iconOpen, open); -}; - -// Open/close all nodes -dTree.prototype.openAll = function() { - this.oAll(true); -}; -dTree.prototype.closeAll = function() { - this.oAll(false); -}; - -// Outputs the tree to the page -dTree.prototype.toString = function() { - var str = 'WebAdmin redesign & coding by Matija Matečić
Additional coding by Andreas Tunberg
-Version 0.9.4 [beta], source on GitHub +
Version 0.9.5 [beta], source on GitHub
hMailServer author Martin Knafve
License information here
Third party components
This section lists third party components and libraries used in hMailServer PHPWebAdmin.
- jQuery
- Modernizr
- Defunkt Facebox
- tablesort
- timeago
- Chartist
- CodyHouse Responsive Sidebar Navigation
- Open Iconic
- hMailServer log viewer
+ jQuery
+ Modernizr
+ Defunkt Facebox
+ tablesort
+ timeago
+ Chartist
+ CodyHouse Responsive Sidebar Navigation
+ Open Iconic
+ hMailServer log viewer
\n'; - if (document.getElementById) { - if (this.config.useCookies) this.selectedNode = this.getSelected(); - str += this.addNode(this.root); - } else str += 'Browser not supported.'; - str += ''; - if (!this.selectedFound) this.selectedNode = null; - this.completed = true; - return str; -}; - -// Creates the tree structure -dTree.prototype.addNode = function(pNode) { - var str = ''; - var n=0; - if (this.config.inOrder) n = pNode._ai; - for (n; n'; - } - if (node.url) { - str += ''; - } - else if ((!this.config.folderLinks || !node.url) && node._hc && node.pid != this.root.id) - str += ''; - str += node.name; - if (node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += ''; - str += ''; - if (node._hc) { - str += ' '; - str += this.addNode(node); - str += ''; - } - - - this.aIndent.pop(); - return str; -}; - -// Adds the empty and line icons -dTree.prototype.indent = function(node, nodeId) { - var str = ''; - if (this.root.id != node.pid) - { - for (var n=0; n'; - - (node._ls) ? this.aIndent.push(0) : this.aIndent.push(1); - - if (node._hc) - { - str += ''; - } - else - str += ''; - } - - return str; -}; - -// Checks if a node has any children and if it is the last sibling -dTree.prototype.setCS = function(node) { - var lastId; - for (var n=0; n cform.elements[i].getAttribute('checkmaxlen')) { - errors++; - if(controlmessages[i] != "") - message +="* "+controlmessages[i]+"\n"; - else - message +="* Length of "+cform.elements[i].name+" cannot be more than "+cform.elements[i].checkmaxlen+" characters.\n"; - } - } - // END OF LENGTH CONTROL - - // 3. MIN/MAX VALUE CONTROL FOR NUMBERS - if((cform.elements[i].getAttribute('checkminvalue')) && (cform.elements[i].value)) { - if(cform.elements[i].value < cform.elements[i].getAttribute('checkminvalue')) { - errors++; - if(controlmessages[i] != "") - message +="* "+controlmessages[i]+"\n"; - else - message +="* Value of "+cform.elements[i].name+" cannot be less than "+cform.elements[i].checkminvalue+".\n"; - } - } - if((cform.elements[i].getAttribute('checkmaxvalue')) && (cform.elements[i].value)) { - if(cform.elements[i].value > cform.elements[i].getAttribute('checkmaxvalue')) { - errors++; - if(controlmessages[i] != "") - message +="* "+controlmessages[i]+"\n"; - else - message +="* Value of "+cform.elements[i].name+" cannot be less than "+cform.elements[i].checkmaxvalue+".\n"; - } - } - // END OF MIN/MAX VALUE CONTROL - } // END OF THE FOR LOOP - - if(errors == 0) { - return true; - } else { - alert(message); - return false; - } -} diff --git a/WebAdmin/include/functions.php b/WebAdmin/include/functions.php index 8757499..8fb6f72 100644 --- a/WebAdmin/include/functions.php +++ b/WebAdmin/include/functions.php @@ -127,7 +127,7 @@ function PrintPropertyRow($caption, $value) { global $obLanguage; $caption = $obLanguage->String($caption); - echo ' ' . $caption . '
' . $value . PHP_EOL; + echo '' . $caption . '
' . $value . '' . PHP_EOL; } function PrintPropertyEditRow($name, $caption, $value, $length = 20, $checktype = null, $class = null) { @@ -137,7 +137,7 @@ function PrintPropertyEditRow($name, $caption, $value, $length = 20, $checktype $req = ''; if (isset($checktype)) $req = 'req '; - echo '' . $caption . '
' . PHP_EOL; + echo '' . $caption . '
' . PHP_EOL; } function PrintPropertyAreaRow($name, $caption, $value, $rows = 5, $cols = 20, $class = "") { @@ -153,7 +153,7 @@ function PrintPasswordEntry($name, $caption, $length = 20, $class = "") { global $obLanguage; $caption = $obLanguage->String($caption); - echo '' . $caption . '
' . PHP_EOL; + echo '' . $caption . '
' . PHP_EOL; } function PrintCheckboxRow($name, $caption, $checked) { @@ -161,7 +161,7 @@ function PrintCheckboxRow($name, $caption, $checked) { $caption = $obLanguage->String($caption); $checked_text = hmailCheckedIf1($checked); - echo '' . PHP_EOL; + echo '' . PHP_EOL; } function PrintLargeTableHeader($caption) { @@ -173,15 +173,18 @@ function PrintLargeTableHeader($caption) {will be replaced with the id of the main tabber div. - will be replaced with the tab number - (tab numbers starting at zero) - will be replaced with the tab number - (tab numbers starting at one) - will be replaced by the tab title - (with all non-alphanumeric characters removed) - */ - this.linkIdFormat = ' nav '; - - /* You can override the defaults listed above by passing in an object: - var mytab = new tabber({property:value,property:value}); - */ - for (arg in argsObj) { this[arg] = argsObj[arg]; } - - /* Create regular expressions for the class names; Note: if you - change the class names after a new object is created you must - also change these regular expressions. - */ - this.REclassMain = new RegExp('\\b' + this.classMain + '\\b', 'gi'); - this.REclassMainLive = new RegExp('\\b' + this.classMainLive + '\\b', 'gi'); - this.REclassTab = new RegExp('\\b' + this.classTab + '\\b', 'gi'); - this.REclassTabDefault = new RegExp('\\b' + this.classTabDefault + '\\b', 'gi'); - this.REclassTabHide = new RegExp('\\b' + this.classTabHide + '\\b', 'gi'); - - /* Array of objects holding info about each tab */ - this.tabs = new Array(); - - /* If the main tabber div was specified, call init() now */ - if (this.div) { - - this.init(this.div); - - /* We don't need the main div anymore, and to prevent a memory leak - in IE, we must remove the circular reference between the div - and the tabber object. */ - this.div = null; - } -} - - -/*-------------------------------------------------- - Methods for tabberObj - --------------------------------------------------*/ - - -tabberObj.prototype.init = function(e) -{ - /* Set up the tabber interface. - - e = element (the main containing div) - - Example: - init(document.getElementById('mytabberdiv')) - */ - - var - childNodes, /* child nodes of the tabber div */ - i, i2, /* loop indices */ - t, /* object to store info about a single tab */ - defaultTab=0, /* which tab to select by default */ - DOM_ul, /* tabbernav list */ - DOM_li, /* tabbernav list item */ - DOM_a, /* tabbernav link */ - aId, /* A unique id for DOM_a */ - headingElement; /* searching for text to use in the tab */ - - /* Verify that the browser supports DOM scripting */ - if (!document.getElementsByTagName) { return false; } - - /* If the main DIV has an ID then save it. */ - if (e.id) { - this.id = e.id; - } - - /* Clear the tabs array (but it should normally be empty) */ - this.tabs.length = 0; - - /* Loop through an array of all the child nodes within our tabber element. */ - childNodes = e.childNodes; - for(i=0; i < childNodes.length; i++) { - - /* Find the nodes where class="tabbertab" */ - if(childNodes[i].className && - childNodes[i].className.match(this.REclassTab)) { - - /* Create a new object to save info about this tab */ - t = new Object(); - - /* Save a pointer to the div for this tab */ - t.div = childNodes[i]; - - /* Add the new object to the array of tabs */ - this.tabs[this.tabs.length] = t; - - /* If the class name contains classTabDefault, - then select this tab by default. - */ - if (childNodes[i].className.match(this.REclassTabDefault)) { - defaultTab = this.tabs.length-1; - } - } - } - - /* Create a new UL list to hold the tab headings */ - DOM_ul = document.createElement("ul"); - DOM_ul.className = this.classNav; - - /* Loop through each tab we found */ - for (i=0; i < this.tabs.length; i++) { - - t = this.tabs[i]; - - /* Get the label to use for this tab: - From the title attribute on the DIV, - Or from one of the this.titleElements[] elements, - Or use an automatically generated number. - */ - t.headingText = t.div.title; - - /* Remove the title attribute to prevent a tooltip from appearing */ - if (this.removeTitle) { t.div.title = ''; } - - if (!t.headingText) { - - /* Title was not defined in the title of the DIV, - So try to get the title from an element within the DIV. - Go through the list of elements in this.titleElements - (typically heading elements ['h2','h3','h4']) - */ - for (i2=0; i2 /gi," "); - t.headingText = t.headingText.replace(/<[^>]+>/g,""); - } - break; - } - } - } - - if (!t.headingText) { - /* Title was not found (or is blank) so automatically generate a - number for the tab. - */ - t.headingText = i + 1; - } - - /* Create a list element for the tab */ - DOM_li = document.createElement("li"); - - /* Save a reference to this list item so we can later change it to - the "active" class */ - t.li = DOM_li; - - /* Create a link to activate the tab */ - DOM_a = document.createElement("a"); - DOM_a.appendChild(document.createTextNode(t.headingText)); - DOM_a.href = "javascript:void(null);"; - DOM_a.title = t.headingText; - DOM_a.onclick = this.navClick; - - /* Add some properties to the link so we can identify which tab - was clicked. Later the navClick method will need this. - */ - DOM_a.tabber = this; - DOM_a.tabberIndex = i; - - /* Do we need to add an id to DOM_a? */ - if (this.addLinkId && this.linkIdFormat) { - - /* Determine the id name */ - aId = this.linkIdFormat; - aId = aId.replace(/ /gi, this.id); - aId = aId.replace(/ /gi, i); - aId = aId.replace(/ /gi, i+1); - aId = aId.replace(/ /gi, t.headingText.replace(/[^a-zA-Z0-9\-]/gi, '')); - - DOM_a.id = aId; - } - - /* Add the link to the list element */ - DOM_li.appendChild(DOM_a); - - /* Add the list element to the list */ - DOM_ul.appendChild(DOM_li); - } - - /* Add the UL list to the beginning of the tabber div */ - e.insertBefore(DOM_ul, e.firstChild); - - /* Make the tabber div "live" so different CSS can be applied */ - e.className = e.className.replace(this.REclassMain, this.classMainLive); - - /* Activate the default tab, and do not call the onclick handler */ - this.tabShow(defaultTab); - - /* If the user specified an onLoad function, call it now. */ - if (typeof this.onLoad == 'function') { - this.onLoad({tabber:this}); - } - - return this; -}; - - -tabberObj.prototype.navClick = function(event) -{ - /* This method should only be called by the onClick event of an - element, in which case we will determine which tab was clicked by - examining a property that we previously attached to the - element. - - Since this was triggered from an onClick event, the variable - "this" refers to the element that triggered the onClick - event (and not to the tabberObj). - - When tabberObj was initialized, we added some extra properties - to the element, for the purpose of retrieving them now. Get - the tabberObj object, plus the tab number that was clicked. - */ - - var - rVal, /* Return value from the user onclick function */ - a, /* element that triggered the onclick event */ - self, /* the tabber object */ - tabberIndex, /* index of the tab that triggered the event */ - onClickArgs; /* args to send the onclick function */ - - a = this; - if (!a.tabber) { return false; } - - self = a.tabber; - tabberIndex = a.tabberIndex; - - /* Remove focus from the link because it looks ugly. - I don't know if this is a good idea... - */ - a.blur(); - - /* If the user specified an onClick function, call it now. - If the function returns false then do not continue. - */ - if (typeof self.onClick == 'function') { - - onClickArgs = {'tabber':self, 'index':tabberIndex, 'event':event}; - - /* IE uses a different way to access the event object */ - if (!event) { onClickArgs.event = window.event; } - - rVal = self.onClick(onClickArgs); - if (rVal === false) { return false; } - } - - self.tabShow(tabberIndex); - - return false; -}; - - -tabberObj.prototype.tabHideAll = function() -{ - var i; /* counter */ - - /* Hide all tabs and make all navigation links inactive */ - for (i = 0; i < this.tabs.length; i++) { - this.tabHide(i); - } -}; - - -tabberObj.prototype.tabHide = function(tabberIndex) -{ - var div; - - if (!this.tabs[tabberIndex]) { return false; } - - /* Hide a single tab and make its navigation link inactive */ - div = this.tabs[tabberIndex].div; - - /* Hide the tab contents by adding classTabHide to the div */ - if (!div.className.match(this.REclassTabHide)) { - div.className += ' ' + this.classTabHide; - } - this.navClearActive(tabberIndex); - - return this; -}; - - -tabberObj.prototype.tabShow = function(tabberIndex) -{ - /* Show the tabberIndex tab and hide all the other tabs */ - - var div; - - if (!this.tabs[tabberIndex]) { return false; } - - /* Hide all the tabs first */ - this.tabHideAll(); - - /* Get the div that holds this tab */ - div = this.tabs[tabberIndex].div; - - /* Remove classTabHide from the div */ - div.className = div.className.replace(this.REclassTabHide, ''); - - /* Mark this tab navigation link as "active" */ - this.navSetActive(tabberIndex); - - /* If the user specified an onTabDisplay function, call it now. */ - if (typeof this.onTabDisplay == 'function') { - this.onTabDisplay({'tabber':this, 'index':tabberIndex}); - } - - return this; -}; - -tabberObj.prototype.navSetActive = function(tabberIndex) -{ - /* Note: this method does *not* enforce the rule - that only one nav item can be active at a time. - */ - - /* Set classNavActive for the navigation list item */ - this.tabs[tabberIndex].li.className = this.classNavActive; - - return this; -}; - - -tabberObj.prototype.navClearActive = function(tabberIndex) -{ - /* Note: this method does *not* enforce the rule - that one nav should always be active. - */ - - /* Remove classNavActive from the navigation list item */ - this.tabs[tabberIndex].li.className = ''; - - return this; -}; - - -/*==================================================*/ - - -function tabberAutomatic(tabberArgs) -{ - /* This function finds all DIV elements in the document where - class=tabber.classMain, then converts them to use the tabber - interface. - - tabberArgs = an object to send to "new tabber()" - */ - var - tempObj, /* Temporary tabber object */ - divs, /* Array of all divs on the page */ - i; /* Loop index */ - - if (!tabberArgs) { tabberArgs = {}; } - - /* Create a tabber object so we can get the value of classMain */ - tempObj = new tabberObj(tabberArgs); - - /* Find all DIV elements in the document that have class=tabber */ - - /* First get an array of all DIV elements and loop through them */ - divs = document.getElementsByTagName("div"); - for (i=0; i < divs.length; i++) { - - /* Is this DIV the correct class? */ - if (divs[i].className && - divs[i].className.match(tempObj.REclassMain)) { - - /* Now tabify the DIV */ - tabberArgs.div = divs[i]; - divs[i].tabber = new tabberObj(tabberArgs); - } - } - - return this; -} - - -/*==================================================*/ - - -function tabberAutomaticOnLoad(tabberArgs) -{ - /* This function adds tabberAutomatic to the window.onload event, - so it will run after the document has finished loading. - */ - var oldOnLoad; - - if (!tabberArgs) { tabberArgs = {}; } - - /* Taken from: http://simon.incutio.com/archive/2004/05/26/addLoadEvent */ - - oldOnLoad = window.onload; - if (typeof window.onload != 'function') { - window.onload = function() { - tabberAutomatic(tabberArgs); - }; - } else { - window.onload = function() { - oldOnLoad(); - tabberAutomatic(tabberArgs); - }; - } -} - - -/*==================================================*/ - - -/* Run tabberAutomaticOnload() unless the "manualStartup" option was specified */ - -if (typeof tabberOptions == 'undefined') { - - tabberAutomaticOnLoad(); - -} else { - - if (!tabberOptions['manualStartup']) { - tabberAutomaticOnLoad(tabberOptions); - } - -} diff --git a/WebAdmin/include_treemenu.php b/WebAdmin/include_treemenu.php index 604dd08..3a34130 100644 --- a/WebAdmin/include_treemenu.php +++ b/WebAdmin/include_treemenu.php @@ -18,6 +18,10 @@ $accountaddress = PreprocessOutput($accountaddress); $url = htmlentities("?page=account&action=edit&accountid=" . $obAccount->ID . "&domainid=" . $obDomain->ID); + + //webmail parser + if(isset($hmail_config['webmail'])) + $Webmail = str_replace("[domain]", $domainname, $hmail_config['webmail']); ?> @@ -25,7 +29,7 @@ - + IncomingRelays(); $TotalRelays = $Relays->Count(); + + $Ports = $obSettings->TCPIPPorts(); + $TotalPorts = $Ports->Count(); ?> @@ -118,7 +125,7 @@ - + @@ -149,7 +156,6 @@ ServerState(); $Action = hmailGetVar("action",""); if ($Action == "control") { @@ -160,6 +166,8 @@ $obBaseApp->Stop(); } +$ServerState = $obBaseApp->ServerState(); + switch($ServerState) { case 1: $state = $obLanguage->String("Stopped"); @@ -194,14 +202,14 @@ break; } ?> -
- WebAdmin 0.9.4 [beta] + WebAdmin 0.9.5 [beta]- +
- ID) $domainname = '' . $domainname . ''; - echo '
- - ' . $domainname . ' -
' . PHP_EOL; - if ($current_domainid != $obDomain->ID && hmailGetAdminLevel() == ADMIN_SERVER) { // If the user is logged on as a system administrator, only show accounts // for the currently selected domain. - echo '
' . PHP_EOL; + echo '- ' . $domainname . '
' . PHP_EOL; return; - } - - $Accounts = $obDomain->Accounts(); - $TotalAccounts = $Accounts->Count(); - $accounts_root = $dtitem++; + } else + $Accounts = $obDomain->Accounts(); + $TotalAccounts = $Accounts->Count(); + $accounts_root = $dtitem++; - $Aliases = $obDomain->Aliases(); - $TotalAliases = $Aliases->Count(); - $aliases_root = $dtitem++; + $Aliases = $obDomain->Aliases(); + $TotalAliases = $Aliases->Count(); + $aliases_root = $dtitem++; - $DistributionLists = $obDomain->DistributionLists(); - $TotalDistributionLists = $DistributionLists->Count(); + $DistributionLists = $obDomain->DistributionLists(); + $TotalDistributionLists = $DistributionLists->Count(); - echo '- ' . GetStringForJavaScript("Accounts") . '' . $TotalAccounts . '
+ echo '- + ' . $domainname . ' +
+
diff --git a/WebAdmin/index.php b/WebAdmin/index.php index 977b5c9..21a92ad 100644 --- a/WebAdmin/index.php +++ b/WebAdmin/index.php @@ -46,13 +46,14 @@ $username = isset($_SESSION['session_username'])?$_SESSION['session_username']:''; //moved from include_treemenu.php ?> - - + + - + - + +- ' . GetStringForJavaScript("Accounts") . '' . $TotalAccounts . '
- ' . GetStringForJavaScript("Aliases") . '' . $TotalAliases . '
- ' . GetStringForJavaScript("Distribution lists") . '' . $TotalDistributionLists . '
hMailServer: webadmin @@ -64,8 +65,9 @@ - + + @@ -84,13 +86,13 @@ --> - Menu +diff --git a/WebAdmin/modern/css/core.css b/WebAdmin/modern/css/core.css index 1ff4553..dfcaa3e 100644 --- a/WebAdmin/modern/css/core.css +++ b/WebAdmin/modern/css/core.css @@ -1,47 +1,41 @@ -*, *::after, *::before {box-sizing:border-box;} -html {font-size:62.5%;} -body {font-size:1.6rem; font-family:"Nunito Sans", sans-serif; color:#3e454c; background:#edf0f0;} -body::after {clear:both; content:""; display:table;} -a {color:#1784c7; text-decoration:none;} -input {font-family:"Nunito Sans", sans-serif; font-size:1.6rem;} -input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-results-button, input[type="search"]::-webkit-search-results-decoration {display:none;} -:focus, :active {outline:none;} +body {font-family:'Nunito Sans', sans-serif; font-size:13px; color:#3e454c; background:#edf0f0;} +a {color:#1784c7;} + /* global */ -.green {color:#96d758;} .buttons {margin:18px 0;} -.buttons.center {text-align:center;} -.delete {display:block; margin:10px; height:16px; width:16px; background:url(../../modern/css/icons.svg) no-repeat -128px 0; overflow:hidden; text-indent:-999px;} +.center {text-align:center;} +.delete {display:block; margin:10px; height:16px; width:16px; background:url('../../modern/css/icons.svg') no-repeat -128px 0; overflow:hidden; text-indent:-999px;} +.download {display:block; margin:10px; height:16px; width:16px; background:url('../../modern/css/icons.svg') no-repeat -224px 0; overflow:hidden; text-indent:-999px;} .hidden {display:none; padding-left:18px;} -.warning {clear:both; padding:18px 0 0 24px; position:relative; display:inline-block; color:#e3b95d; font-size:10pt; font-weight:300;} -.warning:before {content:''; display:block; position:absolute; left:0; top:18px; width:16px; height:16px; background:url(../../modern/css/icons.svg) no-repeat -144px 0;} -.cd-side-nav a.impressum {clear:both; display:block; font-size:7pt; font-weight:300; color:#646a6f; margin-top:20px;} -#facebox .content p {font-size:10pt; margin:1em 0;} +.warning {display:inline-block; clear:both; padding:18px 0 0 24px; position:relative; color:#e3b95d; font-weight:300;} +.warning:before {display:block; content:' '; position:absolute; left:0; top:16px; width:16px; height:16px; background:url('../../modern/css/icons.svg') no-repeat -144px 0;} +.cd-side-nav a.impressum {clear:both; display:block; font-size:9px; font-weight:300; color:#646a6f; margin-top:20px;} input.error, textarea.error {border:1px solid #f25555 !important;} b {font-weight:700;} .red {color:#f25555;} .yellow {color:#ffce54;} .green {color:#a0d468;} -.arrow {display:inline-block; padding:0; width:16px; height:16px; background-image:url(../../modern/css/cd-arrow.svg); overflow:hidden; text-indent:-999px; margin-right:5px;} +.arrow {display:inline-block; padding:0; width:16px; height:16px; background-image:url('../../modern/css/cd-arrow.svg'); overflow:hidden; text-indent:-999px; margin-right:5px;} .arrow.up {-webkit-transform:rotate(180deg); -moz-transform:rotate(180deg); -ms-transform:rotate(180deg); -o-transform:rotate(180deg); transform:rotate(180deg);} /* boxes */ .box, .box.medium, .box.large {width:100%;} .box {float:left; display:block; position:relative; overflow:hidden; background:#fff; margin:0 3% 3% 0; border-radius:3px;} -.box .grey {border-top:1px solid #f2f2f2; background:#f9fafa; padding:5%;} -.box .grey div {text-align:center; color:#acacac; font-size:12px; display:inline-block; width:32%;} -.box .grey p, .box .info {text-align:center; color:#acacac; font-size:13px; line-height:18px; margin:16px 0;} -.box .grey span, .box .info span {font-size:18px; color:#363636;} +.box .grey {border-top:1px solid #f2f2f2; background:#f9fafa; padding:18px;} +.box .grey div {display:inline-block; width:32%; text-align:center; color:#acacac; font-size:12px;} +.box .grey span {font-size:18px; color:#3e454c; line-height:120%;} /* headings */ -h2 {font-size:16px; font-weight:bold; text-transform:uppercase; margin:0; padding:18px 0 10px 18px; cursor:default;} +h2, h3 {text-transform:uppercase;} +h2 {font-size:16px; padding:18px 0 10px 18px; cursor:default;} h2 span {font-weight:300; color:#888;} -h3 {font-size:8pt; font-weight:bold; text-transform:uppercase; margin:0; padding:20px 0 0 0; color:#3e454c;} +h3 {font-size:11px; padding:20px 0 0 0; color:#3e454c;} h3 a {color:#3e454c; border-bottom:1px dotted #3e454c;} /* tables */ -table {width:100%; text-align:left; font-size:13px;} -table th {color:#acacac; cursor:default; line-height:40px; white-space:nowrap; text-overflow:ellipsis;} +table {width:100%; text-align:left;} +table th {color:#acacac; cursor:default; line-height:40px; white-space:nowrap; text-overflow:ellipsis; font-weight:300;} table td {position:relative; height:32px;} table td a {display:block;} table tbody tr:nth-child(even) {background:#f9fafa;} @@ -52,9 +46,6 @@ table.queue th:nth-child(1), table.queue th:nth-child(6), table.queue td:nth-chi table.queue th:nth-child(2), table.queue th:nth-child(5), table.queue td:nth-child(2), table.queue td:nth-child(5) {width:17%;} table.queue th:nth-child(3), table.queue th:nth-child(4), table.queue td:nth-child(3), table.queue td:nth-child(4) {width:25%; overflow:hidden; overflow-x:auto;} -/* grafs */ -.grafs-text, .grafs-tips, .grafs-tooltip, .grafs-summary, .grafs-legend, .grafs-grid-title {font-family:"Nunito Sans", sans-serif;} - /* chartist */ .ct-series-a .ct-point, .ct-series-a .ct-line, .ct-series-a .ct-bar, .ct-series-a .ct-slice-donut {stroke:#3dbef9;} .ct-series-a .ct-slice-pie, .ct-series-a .ct-area {fill:#3dbef9;} @@ -62,13 +53,10 @@ table.queue th:nth-child(3), table.queue th:nth-child(4), table.queue td:nth-chi .ct-series-b .ct-slice-pie, .ct-series-b .ct-area {fill:#3bd6ab;} .ct-series-c .ct-point, .ct-series-c .ct-line, .ct-series-c .ct-bar, .ct-series-c .ct-slice-donut {stroke:#96d758;} .ct-series-c .ct-slice-pie, .ct-series-c .ct-area {fill:#96d758;} -.ct-label {font-size:16px;} +.ct-label {font-size:18px;} .ct-line {stroke-width:1px;} - - -/* chartist tooltip */ .chartist-tooltip {position:absolute; float:left; min-width:30px; max-width:300px; padding:4px 12px; border-radius:4px; background:rgba(255,255,255,.97); color:#444; font-size:12px; text-align:left; line-height:18px; box-shadow:0 1px 2px rgba(0, 0, 0,.3); pointer-events:none; opacity:0;} -.chartist-tooltip:after {position:absolute; left:50%; bottom:-6px; content:""; height:0; margin:0 0 0 -6px; border-right:5px solid transparent; border-left:5px solid transparent; border-top:6px solid rgba(255,255,255,.95); line-height:0;} +.chartist-tooltip:after {position:absolute; left:50%; bottom:-6px; content:' '; height:0; margin:0 0 0 -6px; border-right:5px solid transparent; border-left:5px solid transparent; border-top:6px solid rgba(255,255,255,.95); line-height:0;} .chartist-tooltip.tooltip-show {opacity:1;} .ct-area, .ct-line {pointer-events:none;} @@ -85,7 +73,7 @@ table.queue th:nth-child(3), table.queue th:nth-child(4), table.queue td:nth-chi /* tablesorter */ .tablesort th {position:relative; overflow:hidden;} -.tablesort th:after {position:absolute; content:''; width:13px; height:13px; top:33%; margin-left:8px; background:red; background:url(../../modern/css/cd-arrow.svg); background-size:100%; opacity:.5;} +.tablesort th:after {position:absolute; content:' '; width:13px; height:13px; top:33%; margin-left:8px; background:red; background:url('../../modern/css/cd-arrow.svg'); background-size:100%; opacity:.5;} .tablesort th:hover {color:#3e454c; cursor:pointer;} .tablesort th:hover:after {opacity:1;} .tablesort th.ascending:after {-webkit-transform:rotate(180deg); -moz-transform:rotate(180deg); -ms-transform:rotate(180deg); -o-transform:rotate(180deg); transform:rotate(180deg);} @@ -94,32 +82,30 @@ table.queue th:nth-child(3), table.queue th:nth-child(4), table.queue td:nth-chi /* forms */ .cd-form {margin:0 18px 18px;} -.cd-form p {position:relative; margin:25px 0 8px; font-size:9pt;} +.cd-form p {position:relative; margin:25px 0 8px; font-size:12px;} .cd-form .cancel {float:right; line-height:36px; font-size:12px; margin-right:18px;} -.cd-form input, .cd-form textarea, .cd-form select {font-family:"Nunito Sans", sans-serif; font-size:10pt; color:#2b3e51;} +input, select, textarea {font-family:'Nunito Sans', sans-serif;} +.cd-form input, .cd-form textarea, .cd-form select {font-size:13px; color:#3e454c;} +.cd-form textarea {min-height:200px; resize:vertical; overflow:auto;} +.cd-form select {cursor:pointer;} .cd-form input[type="text"], .cd-form input[type="password"], .cd-form input[type="email"], .cd-form textarea, .cd-form select {width:100%; padding:8px; border:1px solid #cfd9db; background-color:#fff; border-radius:3px; box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.08);} -.cd-form input[type="text"].small, .cd-form input[type="email"].small, .cd-form textarea.small, .cd-form select.small {width:15%;} -.cd-form input[type="text"].medium, .cd-form input[type="password"].medium, .cd-form input[type="email"].medium, .cd-form textarea.medium, .cd-form select.medium {width:48%;} -select {cursor:pointer;} -.cd-form input[type="text"]:focus, .cd-form input[type="password"]:focus, .cd-form input[type="email"]:focus, .cd-form textarea:focus, .cd-form select:focus {outline:none; border-color:#1784c7; box-shadow:0 0 5px rgba(44, 151, 222, 0.2);} -.cd-form input[type=radio], .cd-form input[type=checkbox] {position:absolute; left:0; top:50%; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); margin:0; padding:0; opacity:0; z-index:2;} -.cd-form input[type="radio"] + label, .cd-form input[type="checkbox"] + label {cursor:pointer; padding-left:24px; font-size:9pt; padding-right:20px;} -.cd-form input[type="radio"] + label::before, .cd-form input[type="radio"] + label::after, .cd-form input[type="checkbox"] + label::before, .cd-form input[type="checkbox"] + label::after {content:''; display:block; position:absolute; left:0; top:50%; margin-top:-8px; width:16px; height:16px;} +.cd-form input.small, .cd-form textarea.small, .cd-form select.small {width:15%;} +.cd-form input.medium, .cd-form textarea.medium, .cd-form select.medium {width:48%;} +.cd-form input[type="text"]:focus, .cd-form input[type="password"]:focus, .cd-form input[type="email"]:focus, .cd-form textarea:focus, .cd-form select:focus {border-color:#1784c7; box-shadow:0 0 5px rgba(44, 151, 222, 0.2);} +.cd-form input[type=radio], .cd-form input[type=checkbox] {left:0; top:50%; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); margin:0; padding:0; opacity:0; z-index:2;} +.cd-form input[type="radio"] + label, .cd-form input[type="checkbox"] + label {cursor:pointer; font-size:13px; padding-left:8px;} +.cd-form input[type="radio"] + label::before, .cd-form input[type="radio"] + label::after, .cd-form input[type="checkbox"] + label::before, .cd-form input[type="checkbox"] + label::after {display:block; content:' '; position:absolute; left:0; top:50%; margin-top:-8px; width:16px; height:16px;} .cd-form input[type="radio"] + label::before, .cd-form input[type="checkbox"] + label::before {border:1px solid #cfd9db; background:#fff; box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.08);} .cd-form input[type="radio"] + label::before, .cd-form input[type="radio"] + label::after {border-radius: 50%;} .cd-form input[type="checkbox"] + label::before, .cd-form input[type="checkbox"] + label::after {border-radius:3px;} .cd-form input[type="radio"] + label::after, .cd-form input[type="checkbox"] + label::after {background-color:#2c97de; background-position:center center; background-repeat:no-repeat; box-shadow:0 0 5px rgba(44, 151, 222, 0.4); display:none;} -.cd-form input[type="radio"] + label::after {background-image:url("../../modern/css/cd-icon-radio.svg");} -.cd-form input[type="checkbox"] + label::after {background-image:url("../../modern/css/cd-icon-check.svg");} +.cd-form input[type="radio"] + label::after {background-image:url('../../modern/css/cd-icon-radio.svg');} +.cd-form input[type="checkbox"] + label::after {background-image:url('../../modern/css/cd-icon-check.svg');} .cd-form input[type="radio"]:focus + label::before, .cd-form input[type="checkbox"]:focus + label::before {box-shadow:0 0 5px rgba(44, 151, 222, 0.6);} .cd-form input[type="radio"]:checked + label::after, .cd-form input[type="checkbox"]:checked + label::after {display:block;} .cd-form input[type="radio"]:checked + label::before, .cd-form input[type="radio"]:checked + label::after, .cd-form input[type="checkbox"]:checked + label::before, .cd-form input[type="checkbox"]:checked + label::after {-webkit-animation:cd-bounce 0.3s; -moz-animation:cd-bounce 0.3s; animation:cd-bounce 0.3s;} -.cd-form textarea {min-height:200px; resize:vertical; overflow:auto;} -input[type="submit"], input[type="button"], .button {display:inline-block; padding:10px 40px; border:none; border-radius:3px; background-color:#1784c7; box-shadow:0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2); color:#fff; font-size:12px; font-weight:bold; cursor:pointer;} -input[type="submit"]:hover, input[type="button"]:hover, .button:hover {background-color:#1a93de;} -input.wait, input:hover.wait {background:url(../../modern/css/wait.gif) 50% no-repeat #1784c7; cursor:wait; overflow:hidden; color:#1784c7; text-shadow:none;} -/* animations */ +/* form animations */ @-webkit-keyframes cd-bounce { 0%, 100% {-webkit-transform:scale(1);} 50% {-webkit-transform:scale(0.8);} @@ -133,89 +119,39 @@ input.wait, input:hover.wait {background:url(../../modern/css/wait.gif) 50% no-r 50% {-webkit-transform:scale(0.8); -moz-transform:scale(0.8); -ms-transform:scale(0.8); -o-transform:scale(0.8); transform:scale(0.8);} } -/*main */ +/* buttons */ +input[type="submit"], input[type="button"], .button {display:inline-block; padding:10px 40px; border:none; border-radius:3px; background-color:#1784c7; box-shadow:0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2); color:#fff; font-size:12px; font-weight:700; cursor:pointer;} +input[type="submit"]:hover, input[type="button"]:hover, .button:hover {background-color:#1a93de;} +input.wait, input:hover.wait {background:url('../../modern/css/wait.gif') 50% no-repeat #1784c7; cursor:wait; overflow:hidden; color:#1784c7; text-shadow:none;} + +/* main content - mobile first */ .cd-main-content .content-wrapper {padding:45px 5% 3em; background:#edf0f0;} -.cd-main-content .content-wrapper h1 {text-align:center; padding:3em 0; font-size:2rem;} .cd-main-content::before {display:none; content:'mobile';} -@media only screen and (min-width:768px) { - .cd-main-content .content-wrapper {margin-left:110px; padding-top:85px;} - .cd-main-content .content-wrapper h1 {padding:4em 0; font-size:3.2rem; font-weight:300;} - .cd-main-content::before {content:'tablet';} -} -@media only screen and (min-width:1170px) { - .box {min-width:270px; width:22%;} - .box.medium {width:47%;} - .box.large {width:97%;} - .cd-main-content .content-wrapper {margin-left:200px;} - .cd-main-content::before {content:'desktop';} -} + /* header */ .cd-main-header {position:absolute; z-index:2; top:0; left:0; height:45px; width:100%; background:#3e454c; box-shadow:0 1px 3px rgba(0, 0, 0, 0.2); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;} -.cd-main-header::after {clear:both; content:""; display:table;} -@media only screen and (min-width:768px) { - .cd-main-header {position:fixed; height:55px;} -} -.cd-logo {display:block; float:left; width:200px; height:100%; background:url(../../modern/css/paperplane.svg) 20% 45% no-repeat #1784c7; background-size:27%; line-height:55px; text-indent:45px; font-size:11pt; color:#fff; text-indent:80px;} -.action-btn form {text-align:center;} -.action-btn form input {padding:10px 40px;} -@media only screen and (max-width:1170px) { - .cd-logo {width:110px; background-position:50% 45%; background-size:50%;} - .cd-logo span {display:none;} - .action-btn form {margin:20px 0;} - .action-btn form input {padding:10px;} -} -@media only screen and (max-width:768px) { - .cd-logo {background-size:40%; background-color:transparent;} - .action-btn form {margin:0;} -} +.cd-main-header::after {clear:both; content:' '; display:table;} +.cd-logo {display:block; float:left; width:200px; height:100%; background-image:url('../../modern/css/paperplane.svg'); background-position:20% 45%; background-repeat:no-repeat; background-color:transparent; background-size:27%;} +.cd-logo span {display:none;} + +/* mobile only navigation */ .cd-nav-trigger {float:right; position:relative; display:block; width:34px; height:44px; margin-right:5%; overflow:hidden; white-space:nowrap; color:transparent;} .cd-nav-trigger span, .cd-nav-trigger span::before, .cd-nav-trigger span::after {position:absolute; display:inline-block; height:3px; width:24px; background:#ffffff;} .cd-nav-trigger span {position:absolute; top:50%; right:5px; margin-top:-2px; -webkit-transition:background 0.2s; -moz-transition:background 0.2s; transition:background 0.2s;} -.cd-nav-trigger span::before, .cd-nav-trigger span::after {content:''; right:0; -webkit-transform:translateZ(0); -moz-transform:translateZ(0); -ms-transform:translateZ(0); -o-transform:translateZ(0); transform:translateZ(0); -webkit-backface-visibility:hidden; backface-visibility:hidden; -webkit-transform-origin:0% 50%; -moz-transform-origin:0% 50%; -ms-transform-origin:0% 50%; -o-transform-origin:0% 50%; transform-origin:0% 50%; -webkit-transition:-webkit-transform 0.2s; -moz-transition:-moz-transform 0.2s; transition:transform 0.2s;} +.cd-nav-trigger span::before, .cd-nav-trigger span::after {content:' '; right:0; -webkit-transform:translateZ(0); -moz-transform:translateZ(0); -ms-transform:translateZ(0); -o-transform:translateZ(0); transform:translateZ(0); -webkit-backface-visibility:hidden; backface-visibility:hidden; -webkit-transform-origin:0% 50%; -moz-transform-origin:0% 50%; -ms-transform-origin:0% 50%; -o-transform-origin:0% 50%; transform-origin:0% 50%; -webkit-transition:-webkit-transform 0.2s; -moz-transition:-moz-transform 0.2s; transition:transform 0.2s;} .cd-nav-trigger span::before {top:-6px;} .cd-nav-trigger span::after {top:6px;} .cd-nav-trigger.nav-is-visible span {background:rgba(255, 255, 255, 0);} .cd-nav-trigger.nav-is-visible span::before, .cd-nav-trigger.nav-is-visible span::after {background:white;} .cd-nav-trigger.nav-is-visible span::before {-webkit-transform:translateX(4px) translateY(-3px) rotate(45deg); -moz-transform:translateX(4px) translateY(-3px) rotate(45deg); -ms-transform:translateX(4px) translateY(-3px) rotate(45deg); -o-transform:translateX(4px) translateY(-3px) rotate(45deg); transform:translateX(4px) translateY(-3px) rotate(45deg);} .cd-nav-trigger.nav-is-visible span::after {-webkit-transform:translateX(4px) translateY(2px) rotate(-45deg); -moz-transform:translateX(4px) translateY(2px) rotate(-45deg); -ms-transform:translateX(4px) translateY(2px) rotate(-45deg); -o-transform:translateX(4px) translateY(2px) rotate(-45deg); transform:translateX(4px) translateY(2px) rotate(-45deg);} -@media only screen and (min-width:768px) { - .cd-nav-trigger {display:none;} -} -.cd-search {position:relative; margin:1.2em 5% 0.6em;} -.cd-search.is-hidden {opacity:0;} -.cd-search::before {content:''; position:absolute; left:8px; top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); height:16px; width:16px; background:url(../../modern/css/cd-search.svg) no-repeat 0 0;} -.cd-search input {padding-left:32px; width:100%; height:36px; border:none; border-radius:.25em; -webkit-appearance:none; -moz-appearance:none; -ms-appearance:none; -o-appearance:none; appearance:none;} -.cd-search input:focus {outline:none;} -@media only screen and (min-width:768px) { - .cd-search {float:left; display:inline-block; width:250px; height:100%; margin:0;} - .cd-search.is-hidden {opacity:1;} - .cd-search::before {background-position:0 -16px; left:1em;} - .cd-search form, .cd-search input {height:100%; width:100%;} - .cd-search input {border:none; padding-left:2.6em; border-radius:0; background-color:#3e454c; border-left:1px solid #51575d; color:#ffffff;} - .cd-search input::-webkit-input-placeholder {color:#777c81;} - .cd-search input::-moz-placeholder {color:#777c81;} - .cd-search input:-moz-placeholder {color:#777c81;} - .cd-search input:-ms-input-placeholder {color:#777c81;} -} -/* top nav */ + +/* top navigation */ .cd-nav {display:none;} -@media only screen and (min-width:768px) { - .cd-nav {display:block; float:right; height:100%;} -} .cd-top-nav > li > a::before {display:none;} .cd-top-nav > li a {padding:1em 5% !important;} .cd-top-nav img {position:absolute; left:1.8em; top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); height:20px; width:20px; border-radius:50%; display:none;} -@media only screen and (min-width:768px) { - .cd-top-nav {height:100%;} - .cd-top-nav a {display:block; font-size:1.4rem; color:#ffffff;} - .cd-top-nav > li {display:inline-block; margin-right:1em; height:100%;} - .cd-top-nav > li:last-of-type {margin-right:0;} - .cd-top-nav > li a {padding:1em .6em !important;} - .cd-top-nav img {display:block;} -} -@media only screen and (min-width:1170px) { - .cd-top-nav li:not(.has-children) a:hover {color:#1784c7;} -} + /* sidebar */ .cd-side-nav {line-height:1;} .cd-side-nav {position:absolute; z-index:1; left:0; top:0; width:100%; padding:45px 0 0; background-color:#2c3136; visibility:hidden; opacity:0; max-height:100vh; overflow:hidden; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; -webkit-transition:opacity 0.2s 0s, visibility 0s 0.2s; -moz-transition:opacity 0.2s 0s, visibility 0s 0.2s; transition:opacity 0.2s 0s, visibility 0s 0.2s;} @@ -223,11 +159,11 @@ input.wait, input:hover.wait {background:url(../../modern/css/wait.gif) 50% no-r .cd-side-nav > ul {padding:0.6em 0;} .cd-side-nav > ul:last-of-type {padding-bottom:0;} .cd-side-nav .cd-label, .cd-side-nav a {display:block; padding:1em 5%;} -.cd-side-nav .cd-label {text-transform:uppercase; font-weight:bold; color:#646a6f; font-size:1rem; letter-spacing:.1em;} -.cd-side-nav a {position:relative; color:#ffffff; font-size:1.4rem;} +.cd-side-nav .cd-label {text-transform:uppercase; font-weight:700; color:#646a6f; font-size:10px; letter-spacing:.1em;} +.cd-side-nav a {position:relative; color:#fff; font-size:15px;} .cd-side-nav ul.cd-top-nav > li:last-of-type > a {border-bottom:none;} .cd-side-nav > ul > li > a {padding-left:calc(5% + 24px); border-bottom:1px solid #373d44;} -.cd-side-nav > ul > li > a::before {position:absolute; content:''; left:5%; top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); height:16px; width:16px; background:url(../../modern/css/icons.svg) no-repeat 0 0;} +.cd-side-nav > ul > li > a::before {position:absolute; content:''; left:5%; top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); height:16px; width:16px; background:url('../../modern/css/icons.svg') no-repeat 0 0;} .cd-side-nav > ul > li.status > a::before {background-position:0 0;} .cd-side-nav > ul > li.domains > a::before {background-position:-16px 0;} .cd-side-nav > ul > li.rules > a::before {background-position:-32px 0;} @@ -239,41 +175,45 @@ input.wait, input:hover.wait {background:url(../../modern/css/wait.gif) 50% no-r .cd-side-nav > ul > li.help > a::before {background-position:-176px 0;} .cd-side-nav > ul > li.user > a::before {background-position:-192px 0;} .cd-side-nav > ul > li.webmail > a::before {background-position:-208px 0;} -.cd-side-nav .count {position:absolute; top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); right:calc(5% + 16px + 0.4em); padding:0.2em 0.4em; background-color:#ff7e66; border-radius:.25em; color:#ffffff; font-weight:bold; font-size:1.2rem; text-align:center;} -/* -.action-btn a {display:block; margin:0 5%; padding:1em 0; background-color:#1784c7; border-radius:.25em; border:none; box-shadow:0 1px 3px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2); text-align:center; color:#ffffff; font-weight:bold;} -.action-btn a::before {display:none;} -*/ +.cd-side-nav .count {position:absolute; top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); right:calc(5% + 16px + 0.4em); padding:0.2em 0.4em; background-color:#ff7e66; border-radius:.25em; color:#fff; font-weight:700; text-align:center;} + +/* active */ +.has-children ul {position:relative; width:100%; display:none; background-color:#1c1f22;} +.has-children > a::after {position:absolute; content:''; height:16px; width:16px; right:5%; top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); background:url('../../modern/css/cd-arrow.svg');} +.has-children.selected > ul {display:block;} +.has-children.selected > a::after {-webkit-transform:translateY(-50%) rotate(180deg); -moz-transform:translateY(-50%) rotate(180deg); -ms-transform:translateY(-50%) rotate(180deg); -o-transform:translateY(-50%) rotate(180deg); transform:translateY(-50%) rotate(180deg);} + +/* tablet */ @media only screen and (min-width:768px) { + .cd-main-content .content-wrapper {margin-left:110px; padding-top:85px;} + .cd-main-content::before {content:'tablet';} + + .cd-main-header {position:fixed; height:55px;} + + .cd-logo {width:110px; background-position:51% 45%; background-size:50%; background-color:#1784c7;} + + .cd-nav-trigger {display:none;} /* disable on tablet and up */ + + .cd-nav {display:block; float:right; height:100%;} + + .cd-top-nav {height:100%;} + .cd-top-nav a {display:block; color:#fff; font-size:14px;} + .cd-top-nav > li {display:inline-block; margin-right:1em; height:100%;} + .cd-top-nav > li:last-of-type {margin-right:0;} + .cd-top-nav > li a {padding:1em .6em !important;} + .cd-top-nav img {display:block;} + .cd-side-nav {position:relative; float:left; top:auto; width:110px; min-height:100vh; padding-top:55px; visibility:visible; opacity:1; overflow:visible; max-height:none;} .cd-side-nav.nav-is-visible {box-shadow:none;} .cd-side-nav.is-fixed {position:fixed;} .cd-side-nav > ul {padding:0;} .cd-side-nav .cd-label {display:none;} - .cd-side-nav a {font-size:1.2rem; text-align:center;} + .cd-side-nav a {font-size:12px; text-align:center;} .cd-side-nav > ul > li > a {padding:calc(2.2em + 24px) 0 2.4em;} .cd-side-nav > ul > li > a::before {left:50%; right:auto; -webkit-transform:translateX(-50%); -moz-transform:translateX(-50%); -ms-transform:translateX(-50%); -o-transform:translateX(-50%); transform:translateX(-50%); top:2.4em;} .cd-side-nav .active > a {box-shadow:inset 3px 0 0 #1784c7; background-color:#33383e;} - .cd-side-nav .action-btn a {margin:1em 10% 0;} .cd-side-nav .count {height:8px; width:8px; border-radius:50%; box-shadow:0 0 6px rgba(0, 0, 0, 0.2); padding:0; top:2em; -webkit-transform:translateX(-50%); -moz-transform:translateX(-50%); -ms-transform:translateX(-50%); -o-transform:translateX(-50%); transform:translateX(-50%); left:calc(50% + 5px); right:auto; color:transparent;} -} -@media only screen and (min-width:1170px) { - .cd-side-nav {width:200px;} - .cd-side-nav > ul {padding:0.6em 0;} - .cd-side-nav > ul > li:not(.action-btn):hover > a {background-color:#33383e;} - .cd-side-nav > ul > li > a {padding:1em 1em 1em 42px; text-align:left; border-bottom:none;} - .cd-side-nav > ul > li > a::before {top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); left:18px;} - .cd-side-nav .cd-label {display:block; padding:1em 18px;} - .cd-side-nav .action-btn {text-align:left;} - .cd-side-nav .action-btn a {margin:0 18px;} - .no-touch .cd-side-nav .action-btn a:hover {background-color:#1a93de;} - .cd-side-nav .count {color:#ffffff; height:auto; width:auto; border-radius:.25em; padding:.2em .4em; top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); right:18px; left:auto; box-shadow:none;} -} -.has-children ul {position:relative; width:100%; display:none; background-color:#1c1f22;} -.has-children > a::after {position:absolute; content:''; height:16px; width:16px; right:5%; top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); background:url(../../modern/css/cd-arrow.svg);} -.has-children.selected > ul {display:block;} -.has-children.selected > a::after {-webkit-transform:translateY(-50%) rotate(180deg); -moz-transform:translateY(-50%) rotate(180deg); -ms-transform:translateY(-50%) rotate(180deg); -o-transform:translateY(-50%) rotate(180deg); transform:translateY(-50%) rotate(180deg);} -@media only screen and (min-width:768px) { + .has-children {position:relative;} .has-children ul {position:absolute; top:0; left:100%; width:160px; padding:0; box-shadow:0 2px 10px rgba(0, 0, 0, 0.3);} .has-children ul a {text-align:left; border:none; padding:1em;} @@ -285,10 +225,37 @@ input.wait, input:hover.wait {background:url(../../modern/css/wait.gif) 50% no-r .cd-top-nav .has-children > a::after {display:block; right:1.8em;} .cd-top-nav .has-children ul {background-color:#1c1f22; width:200px; top:100%; right:0; left:auto; box-shadow:0 1px 10px rgba(0, 0, 0, 0.2);} .cd-top-nav .has-children ul a {padding-left:18px !important;} + + .action-btn {margin:20px 0;} + .action-btn input {padding:10px;} } + +/* desktop */ @media only screen and (min-width:1170px) { + .box {min-width:270px; width:22%;} + .box.medium {width:47%;} + .box.large {width:97%;} + .cd-main-content .content-wrapper {margin-left:200px;} + .cd-main-content::before {content:'desktop';} + + .cd-logo {width:200px; background-size:27%; background-position:20% 45%; font-size:15px; line-height:55px; text-indent:45px; color:#fff; text-indent:80px;} + .cd-logo span {display:block;} + + .cd-top-nav li:not(.has-children) a:hover {color:#1784c7;} + + .cd-side-nav {width:200px;} + .cd-side-nav > ul {padding:0.6em 0;} + + .cd-side-nav > ul > li > a {padding:1em 1em 1em 42px; text-align:left; border-bottom:none;} + .cd-side-nav > ul > li > a::before {top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); left:18px;} + .cd-side-nav .cd-label {display:block; padding:1em 18px;} + .cd-side-nav .count {color:#fff; height:auto; width:auto; border-radius:3px; padding:.2em .4em; top:50%; bottom:auto; -webkit-transform:translateY(-50%); -moz-transform:translateY(-50%); -ms-transform:translateY(-50%); -o-transform:translateY(-50%); transform:translateY(-50%); right:18px; left:auto; box-shadow:none;} + .has-children > ul {width:100%; z-index:1;} .has-children ul a {padding-left:42px; overflow:hidden; text-overflow:ellipsis;} .has-children.active > ul {position:relative; display:block; left:0; box-shadow:none;} .no-touch .cd-side-nav .has-children:hover > ul, .cd-side-nav .has-children.hover > ul {display:block; opacity:1; visibility:visible;} + + .action-btn {margin:0 auto;} + .action-btn input {padding:10px 40px;} } \ No newline at end of file diff --git a/WebAdmin/modern/css/icons.svg b/WebAdmin/modern/css/icons.svg index 3b450fc..b26c70b 100644 --- a/WebAdmin/modern/css/icons.svg +++ b/WebAdmin/modern/css/icons.svg @@ -1,7 +1,7 @@