From 8c58ad6b22e9dcc2aecc8278b9f5df2b4d043bb5 Mon Sep 17 00:00:00 2001 From: coax Date: Fri, 20 Jan 2017 22:03:41 +0100 Subject: [PATCH] v0.9.5 --- README.md | 12 + ...ackground_account_externalaccount_save.php | 133 +++-- WebAdmin/config-dist.php | 18 +- WebAdmin/error.php | 2 +- WebAdmin/hm_account.php | 44 +- WebAdmin/hm_alias.php | 4 +- WebAdmin/hm_domain.php | 99 +--- WebAdmin/hm_domain_aliasname.php | 4 +- WebAdmin/hm_login.php | 10 +- WebAdmin/hm_logviewer.php | 6 +- WebAdmin/hm_status.php | 24 +- WebAdmin/images/arrow_branch.png | Bin 655 -> 0 bytes WebAdmin/images/arrow_in.png | Bin 593 -> 0 bytes WebAdmin/images/arrow_out.png | Bin 632 -> 0 bytes WebAdmin/images/arrow_switch.png | Bin 804 -> 0 bytes WebAdmin/images/bug_delete.png | Bin 951 -> 0 bytes WebAdmin/images/compass.png | Bin 906 -> 0 bytes WebAdmin/images/connect.png | Bin 621 -> 0 bytes WebAdmin/images/construction.png | Bin 654 -> 0 bytes WebAdmin/images/directory_listing.png | Bin 580 -> 0 bytes WebAdmin/images/disk.png | Bin 730 -> 0 bytes WebAdmin/images/dtree_base.gif | Bin 1040 -> 0 bytes WebAdmin/images/dtree_cd.gif | Bin 239 -> 0 bytes WebAdmin/images/dtree_empty.gif | Bin 62 -> 0 bytes WebAdmin/images/dtree_folder.gif | Bin 372 -> 0 bytes WebAdmin/images/dtree_folderopen.gif | Bin 376 -> 0 bytes WebAdmin/images/dtree_join.gif | Bin 69 -> 0 bytes WebAdmin/images/dtree_joinbottom.gif | Bin 66 -> 0 bytes WebAdmin/images/dtree_line.gif | Bin 66 -> 0 bytes WebAdmin/images/dtree_minus.gif | Bin 86 -> 0 bytes WebAdmin/images/dtree_minusbottom.gif | Bin 85 -> 0 bytes WebAdmin/images/dtree_musicfolder.gif | Bin 633 -> 0 bytes WebAdmin/images/dtree_nolines_minus.gif | Bin 861 -> 0 bytes WebAdmin/images/dtree_nolines_plus.gif | Bin 870 -> 0 bytes WebAdmin/images/dtree_page.gif | Bin 582 -> 0 bytes WebAdmin/images/dtree_plus.gif | Bin 89 -> 0 bytes WebAdmin/images/dtree_plusbottom.gif | Bin 88 -> 0 bytes WebAdmin/images/dtree_question.gif | Bin 1044 -> 0 bytes WebAdmin/images/dtree_trash.gif | Bin 1051 -> 0 bytes WebAdmin/images/email_delete.png | Bin 697 -> 0 bytes WebAdmin/images/email_link.png | Bin 782 -> 0 bytes WebAdmin/images/folder.png | Bin 632 -> 0 bytes WebAdmin/images/heart.png | Bin 742 -> 0 bytes WebAdmin/images/hm_logotype.jpg | Bin 13596 -> 0 bytes WebAdmin/images/information.png | Bin 764 -> 0 bytes WebAdmin/images/multitool.png | Bin 858 -> 0 bytes WebAdmin/images/rosette.png | Bin 646 -> 0 bytes .../images/routing_intersection_right.png | Bin 762 -> 0 bytes WebAdmin/images/server.png | Bin 512 -> 0 bytes WebAdmin/images/server_connect.png | Bin 742 -> 0 bytes WebAdmin/images/setting_tools.png | Bin 1017 -> 0 bytes WebAdmin/images/source_code.png | Bin 564 -> 0 bytes WebAdmin/images/spam_filter.png | Bin 830 -> 0 bytes WebAdmin/images/speedometer.png | Bin 852 -> 0 bytes WebAdmin/images/star.png | Bin 611 -> 0 bytes WebAdmin/images/stop.png | Bin 650 -> 0 bytes WebAdmin/images/text_align_justity.png | Bin 471 -> 0 bytes WebAdmin/images/time_delete.png | Bin 901 -> 0 bytes WebAdmin/images/understanding.png | Bin 731 -> 0 bytes WebAdmin/images/user.png | Bin 593 -> 0 bytes WebAdmin/images/world.png | Bin 910 -> 0 bytes WebAdmin/impressum.php | 20 +- WebAdmin/include/ajax.js | 9 - WebAdmin/include/dtree.js | 363 ------------ WebAdmin/include/formcheck.js | 187 ------- WebAdmin/include/functions.php | 17 +- WebAdmin/include/tabber/tabber.css | 111 ---- WebAdmin/include/tabber/tabber.js | 523 ------------------ WebAdmin/include_treemenu.php | 48 +- WebAdmin/index.php | 18 +- WebAdmin/modern/css/core.css | 253 ++++----- WebAdmin/modern/css/icons.svg | 7 +- WebAdmin/modern/css/reset.css | 56 +- WebAdmin/modern/js/chartist-tooltip.js | 8 + WebAdmin/modern/js/chartist.js | 19 - WebAdmin/modern/js/core.js | 219 ++++---- WebAdmin/modern/js/facebox.js | 4 +- WebAdmin/style.css | 134 ----- 78 files changed, 483 insertions(+), 1869 deletions(-) delete mode 100644 WebAdmin/images/arrow_branch.png delete mode 100644 WebAdmin/images/arrow_in.png delete mode 100644 WebAdmin/images/arrow_out.png delete mode 100644 WebAdmin/images/arrow_switch.png delete mode 100644 WebAdmin/images/bug_delete.png delete mode 100644 WebAdmin/images/compass.png delete mode 100644 WebAdmin/images/connect.png delete mode 100644 WebAdmin/images/construction.png delete mode 100644 WebAdmin/images/directory_listing.png delete mode 100644 WebAdmin/images/disk.png delete mode 100644 WebAdmin/images/dtree_base.gif delete mode 100644 WebAdmin/images/dtree_cd.gif delete mode 100644 WebAdmin/images/dtree_empty.gif delete mode 100644 WebAdmin/images/dtree_folder.gif delete mode 100644 WebAdmin/images/dtree_folderopen.gif delete mode 100644 WebAdmin/images/dtree_join.gif delete mode 100644 WebAdmin/images/dtree_joinbottom.gif delete mode 100644 WebAdmin/images/dtree_line.gif delete mode 100644 WebAdmin/images/dtree_minus.gif delete mode 100644 WebAdmin/images/dtree_minusbottom.gif delete mode 100644 WebAdmin/images/dtree_musicfolder.gif delete mode 100644 WebAdmin/images/dtree_nolines_minus.gif delete mode 100644 WebAdmin/images/dtree_nolines_plus.gif delete mode 100644 WebAdmin/images/dtree_page.gif delete mode 100644 WebAdmin/images/dtree_plus.gif delete mode 100644 WebAdmin/images/dtree_plusbottom.gif delete mode 100644 WebAdmin/images/dtree_question.gif delete mode 100644 WebAdmin/images/dtree_trash.gif delete mode 100644 WebAdmin/images/email_delete.png delete mode 100644 WebAdmin/images/email_link.png delete mode 100644 WebAdmin/images/folder.png delete mode 100644 WebAdmin/images/heart.png delete mode 100644 WebAdmin/images/hm_logotype.jpg delete mode 100644 WebAdmin/images/information.png delete mode 100644 WebAdmin/images/multitool.png delete mode 100644 WebAdmin/images/rosette.png delete mode 100644 WebAdmin/images/routing_intersection_right.png delete mode 100644 WebAdmin/images/server.png delete mode 100644 WebAdmin/images/server_connect.png delete mode 100644 WebAdmin/images/setting_tools.png delete mode 100644 WebAdmin/images/source_code.png delete mode 100644 WebAdmin/images/spam_filter.png delete mode 100644 WebAdmin/images/speedometer.png delete mode 100644 WebAdmin/images/star.png delete mode 100644 WebAdmin/images/stop.png delete mode 100644 WebAdmin/images/text_align_justity.png delete mode 100644 WebAdmin/images/time_delete.png delete mode 100644 WebAdmin/images/understanding.png delete mode 100644 WebAdmin/images/user.png delete mode 100644 WebAdmin/images/world.png delete mode 100644 WebAdmin/include/ajax.js delete mode 100644 WebAdmin/include/dtree.js delete mode 100644 WebAdmin/include/formcheck.js delete mode 100644 WebAdmin/include/tabber/tabber.css delete mode 100644 WebAdmin/include/tabber/tabber.js create mode 100644 WebAdmin/modern/js/chartist-tooltip.js delete mode 100644 WebAdmin/modern/js/chartist.js delete mode 100644 WebAdmin/style.css diff --git a/README.md b/README.md index 52ad38b..8a760fc 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,18 @@ How to use Changelog ----- +Version 0.9.5 beta (20.01.2017) +- [fix] server start/stop button +- [fix] minor typos in pages +- [fix] invisible checkboxes +- [fix] some mobile submenus unresponsive to click +- [tweak] XHTML to HTML5 declaration +- [tweak] more things translated +- [new] removed all old JS and CSS +- [new] count TCP/IP ports in menu +- [new] define webmail link in config.php +- [new] external accounts inside account + Version 0.9.4 beta (18.01.2017) - [fix] error in hm_status.php - [fix] server start/stop button diff --git a/WebAdmin/background_account_externalaccount_save.php b/WebAdmin/background_account_externalaccount_save.php index b1c8434..0b762f0 100644 --- a/WebAdmin/background_account_externalaccount_save.php +++ b/WebAdmin/background_account_externalaccount_save.php @@ -1,73 +1,70 @@ Domains->ItemByDBID($domainid); - $obAccount = $obDomain->Accounts->ItemByDBID($accountid); - $obFetchAccounts = $obAccount->FetchAccounts(); +if (hmailGetAdminLevel() == 0 && ($accountid != hmailGetAccountID() || $domainid != hmailGetDomainID())) + hmailHackingAttemp(); - if ($action == "edit") - $obFA = $obFetchAccounts->ItemByDBID($faid); - elseif ($action == "add") - $obFA = $obFetchAccounts->Add(); - elseif ($action == "delete") - { - $obFetchAccounts->DeleteByDBID($faid); - header("Location: index.php?page=account_externalaccounts&domainid=$domainid&accountid=$accountid"); - exit(); - } - elseif ($action == "downloadnow") - { - $obFA = $obFetchAccounts->ItemByDBID($faid); - $obFA->DownloadNow(); - header("Location: index.php?page=account_externalaccounts&domainid=$domainid&accountid=$accountid"); - exit(); - } - - $DaysToKeepMessages = hmailGetVar("DaysToKeepMessages",0); - $DaysToKeepMessagesValue = hmailGetVar("DaysToKeepMessagesValue",0); - - $obFA->Enabled = hmailGetVar("Enabled",0); - $obFA->Name = hmailGetVar("Name",0);; - $obFA->MinutesBetweenFetch = hmailGetVar("MinutesBetweenFetch",0); - $obFA->Port = hmailGetVar("Port",0); - $obFA->ProcessMIMERecipients = hmailGetVar("ProcessMIMERecipients",0); - $obFA->ProcessMIMEDate = hmailGetVar("ProcessMIMEDate",0); - $obFA->ServerAddress = hmailGetVar("ServerAddress",0); - $obFA->ServerType = hmailGetVar("ServerType",0); - $obFA->Username = hmailGetVar("Username",0); - $obFA->UseAntiVirus = hmailGetVar("UseAntiVirus",0); - $obFA->UseAntiSpam = hmailGetVar("UseAntiSpam",0); - $obFA->EnableRouteRecipients = hmailGetVar("EnableRouteRecipients",0); - $obFA->ConnectionSecurity = hmailGetVar("ConnectionSecurity",0); - - if (strlen($DaysToKeepMessages) > 0 && $DaysToKeepMessages <= 0) - $obFA->DaysToKeepMessages = $DaysToKeepMessages; - else - $obFA->DaysToKeepMessages = $DaysToKeepMessagesValue; - - $Password = hmailGetVar("Password",0); - - if (strlen($Password) > 0) - $obFA->Password = $Password; - - $obFA->Save(); - - $faid = $obFA->ID; - - - - header("Location: index.php?page=account_externalaccount&action=edit&domainid=$domainid&accountid=$accountid&faid=$faid"); -?> +//not domain admin for this domain +if (hmailGetAdminLevel() == 1 && $domainid != hmailGetDomainID()) + hmailHackingAttemp(); +$obDomain = $obBaseApp->Domains->ItemByDBID($domainid); +$obAccount = $obDomain->Accounts->ItemByDBID($accountid); +$obFetchAccounts = $obAccount->FetchAccounts(); + +if ($action == "edit") + $obFA = $obFetchAccounts->ItemByDBID($faid); +elseif ($action == "add") + $obFA = $obFetchAccounts->Add(); +elseif ($action == "delete") { + $obFetchAccounts->DeleteByDBID($faid); + //header("Location: index.php?page=account_externalaccounts&domainid=$domainid&accountid=$accountid"); + header("Location: index.php?page=account&action=edit&domainid=$domainid&accountid=$accountid"); + exit(); +} elseif ($action == "downloadnow") { + $obFA = $obFetchAccounts->ItemByDBID($faid); + $obFA->DownloadNow(); + //header("Location: index.php?page=account_externalaccounts&domainid=$domainid&accountid=$accountid"); + header("Location: index.php?page=account&action=edit&domainid=$domainid&accountid=$accountid"); + exit(); +} + +$DaysToKeepMessages = hmailGetVar("DaysToKeepMessages",0); +$DaysToKeepMessagesValue = hmailGetVar("DaysToKeepMessagesValue",0); + +$obFA->Enabled = hmailGetVar("Enabled",0); +$obFA->Name = hmailGetVar("Name",0); +$obFA->MinutesBetweenFetch = hmailGetVar("MinutesBetweenFetch",0); +$obFA->Port = hmailGetVar("Port",0); +$obFA->ProcessMIMERecipients = hmailGetVar("ProcessMIMERecipients",0); +$obFA->ProcessMIMEDate = hmailGetVar("ProcessMIMEDate",0); +$obFA->ServerAddress = hmailGetVar("ServerAddress",0); +$obFA->ServerType = hmailGetVar("ServerType",0); +$obFA->Username = hmailGetVar("Username",0); +$obFA->UseAntiVirus = hmailGetVar("UseAntiVirus",0); +$obFA->UseAntiSpam = hmailGetVar("UseAntiSpam",0); +$obFA->EnableRouteRecipients = hmailGetVar("EnableRouteRecipients",0); +$obFA->ConnectionSecurity = hmailGetVar("ConnectionSecurity",0); + +if (strlen($DaysToKeepMessages) > 0 && $DaysToKeepMessages <= 0) + $obFA->DaysToKeepMessages = $DaysToKeepMessages; +else + $obFA->DaysToKeepMessages = $DaysToKeepMessagesValue; + +$Password = hmailGetVar("Password",0); + +if (strlen($Password) > 0) + $obFA->Password = $Password; + +$obFA->Save(); + +$faid = $obFA->ID; + +header("Location: index.php?page=account_externalaccount&action=edit&domainid=$domainid&accountid=$accountid&faid=$faid"); +?> \ No newline at end of file diff --git a/WebAdmin/config-dist.php b/WebAdmin/config-dist.php index 4605828..5cfc989 100644 --- a/WebAdmin/config-dist.php +++ b/WebAdmin/config-dist.php @@ -21,7 +21,7 @@ $hmail_config['rooturl'] = "http://www.mydomain.com/PHPWebAdmin/"; */ -$hmail_config['rooturl'] = "http://localhost/"; +$hmail_config['rooturl'] = "http://localhost/"; /* The user interface language for PHPWebAdmin. Note that this language @@ -32,7 +32,7 @@ $hmail_config['defaultlanguage'] = "english"; */ -$hmail_config['defaultlanguage'] = "english"; +$hmail_config['defaultlanguage'] = "english"; /* @@ -62,6 +62,18 @@ 2 - Only server administrators should be allowed access. */ -$hmail_config['rule_editing_level'] = 2; +$hmail_config['rule_editing_level'] = 2; +/* + Added in web interface redesign to show webmail links to logged in users. + [domain] is needed if you want the script to dynamically change domains. + + If not set (delete or comment the line), the webmail link will not be shown. + + Example: + + http://webmail.[domain] + http://[domain]/webmail +*/ +$hmail_config['webmail'] = "http://webmail.[domain]"; ?> \ No newline at end of file diff --git a/WebAdmin/error.php b/WebAdmin/error.php index 0b4086c..5427f1a 100644 --- a/WebAdmin/error.php +++ b/WebAdmin/error.php @@ -7,6 +7,6 @@ ?>
Operation failed
- Description:
+ Description:
Script:
\ No newline at end of file diff --git a/WebAdmin/hm_account.php b/WebAdmin/hm_account.php index 8df926f..5452410 100644 --- a/WebAdmin/hm_account.php +++ b/WebAdmin/hm_account.php @@ -130,10 +130,10 @@ if ($admin_rights) echo ''; else - echo $accountmaxsize; + echo '' . $accountmaxsize . '' . PHP_EOL; - PrintPropertyRow("Size (MB)", Round($accountsize,3)); - PrintPropertyRow("Last logon time", $accountlastlogontime); + PrintPropertyRow("Size (MB)", Round($accountsize,3)); + PrintPropertyRow("Last logon time", $accountlastlogontime); ?>

" class="req medium">@ + " class="req medium">@ Active:

'; + echo '

' . $obLanguage->String("Active") . ':

'; if ($domainactive == 1) echo $obLanguage->String("Yes"); else @@ -184,83 +184,34 @@

@@ -291,10 +242,10 @@ ?>

diff --git a/WebAdmin/hm_domain_aliasname.php b/WebAdmin/hm_domain_aliasname.php index 57b6c90..9daae4b 100644 --- a/WebAdmin/hm_domain_aliasname.php +++ b/WebAdmin/hm_domain_aliasname.php @@ -3,7 +3,7 @@ exit(); if (hmailGetAdminLevel() != ADMIN_SERVER) - hmailHackingAttemp(); // Only server can change these settings. + hmailHackingAttemp(); $domainid = hmailGetVar("domainid",0); $action = hmailGetVar("action",""); @@ -16,7 +16,7 @@ PrintHidden("action", $action); PrintHidden("domainid", $domainid); - PrintPropertyEditRow("aliasname", "Domain name", "", 10, "req"); + PrintPropertyEditRow("aliasname", "Domain name", "", 100, "req"); PrintSaveButton(); ?> diff --git a/WebAdmin/hm_login.php b/WebAdmin/hm_login.php index 8a1cd5c..6b16cc5 100644 --- a/WebAdmin/hm_login.php +++ b/WebAdmin/hm_login.php @@ -11,13 +11,13 @@ $error = hmailGetVar("error"); if ($error == "1") { - echo '
Incorrect username or password.
'; + echo '
' . $obLanguage->String("Incorrect username or password.") . '
'; } ?> -

- +

+

- -

" />

+ +

">

\ 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) {

hMailServer Log Parser

Select your log file.

-
+
diff --git a/WebAdmin/hm_status.php b/WebAdmin/hm_status.php index f71ae62..f0607a3 100644 --- a/WebAdmin/hm_status.php +++ b/WebAdmin/hm_status.php @@ -20,9 +20,9 @@

-

-

-

+

+

+

@@ -30,9 +30,9 @@

-

-

-

+

+

+

@@ -40,9 +40,9 @@

-

SMTP
-

POP3
-

IMAP
+

SMTP
+

POP3
+

IMAP
@@ -62,7 +62,7 @@ -
+
-


+
+

+
\ No newline at end of file diff --git a/WebAdmin/images/arrow_branch.png b/WebAdmin/images/arrow_branch.png deleted file mode 100644 index d1fe71753d9ee95a71fda3a22c80b2e689e54acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)b~3AjO`9_7DU?D54;WAF)Mi5e2~<6?$n8N>wb{L;V72sy!%F z1Gb7445)0d*VV7M*w;V`{3r|5pZ1fB5|krsF% zzK-c!7$`#DcSUF|c%7LgQ+Ov-DV9Y{^$SDPH|2;!V`L4ner>0=qD$YcqxVSN9Z;<` zk+| zfkZ6kH1fIpES}i;Z-ZPulIHy68D)hTlo1AEdv~szq=#J&8bWP?i(j-)xrAbnl_PEn0_XN93BbyxJ>DDy?|pgmw7PR zJ5vK2;TAMaqs2k40a1zmSmAaUtiLDcI3{L;#Ip_N`ZemW;$h49+G@q@>0vfYZmro{ p2;a(tZnNg=X)XT8Yv!*20|51~?XpgJ{&4^R002ovPDHLkV1nPpGCcqQ diff --git a/WebAdmin/images/arrow_in.png b/WebAdmin/images/arrow_in.png deleted file mode 100644 index 16838a7258290c5993dfa48949bd400ac4d5c21d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0JkR;Hqx~kM@5mCWtclrmqXx%80c2(2rAFy;I1Q#ONL~&!c;vja@l^`N6qKih` z(l*J=^PZW64(Vjo3lARmo^!w6dFuKq(CWZi0PZlF{6($ zVu&S&F#X{X@{84VTsU_N!H`rtg@MKxF~pKXuD-Sc@6MG1esta-m6h2~OICH9Odn&! z5K9iZYGzfIBl88aps*z_P+`Y0$i@>K{KJMG#w2m7hjXHPE}>ih#tVFnJ8E+nkp zQx_-j>DzM{ss8peK(4v^4BowI;IJ(%@wxD4pbi*IxzPyZ1U@_+Zc<)6BNNv?0-L|S zgcagBc&D$i^E<>4YqCeNTv57U+wVo1#R@zwNca85p!*x^()RSSRF-Ic0r_4$7ZX%& ffVdJd{{7U z1b;xM8w+Jag=mD4U?D;1LL?&fV`-~1T4LdMB4I~l7E-z?7B+ni3sxj0sfCR;L718M z?)80do|>6X6DK*j@165~=bn4dcg^k!=Ib#Ei3bdTzyi4-UG=+YiGyz>=?X6#vnxVW zLy_+uxsFDXz#5AmwH!ts4Z~V2R`AUNsFZGCb-n@T9XAPZ?Ea~t&@nro%;NQj3PO^e zOal`mDDJs}whD?_I~?up2Vxf6yx}aw4J|&nYsv{DtT^I^y0qu7=J1p)*6WB=b>bX~Lu3DlCW~>2)b_LU zD8{36QIOqJpFoFiVdmk9<~PYR-8!hAS&B8SJN=JoBE5Owd#$-Uo4{7jsN7|~oVg75 z*J;~A&UY#mhle2`4O1XS=j#v>sF{@4!+e~;3uCDtln>t2MfuxDui@VDt7r(=(uuwm zQ|=BiKYzoIk|VBFTW`LeL}?2!`SCQq#j|M}zT@0-<%HQkz%h~|ZrZ3{#q;$5o7U~a zg$Lu9%00000>DWwA zrkSAC*ev&UzRLtcFVcZO_kQPm|HC=we?DzjJ(Dt1U>GzSCgnB_&1M5ld^Rg6Q3+Vz ze~5`#JPyBOl-KTUU_6Sc&g!}?Zty??rgBDN+?BHxP*DFFvve~Y!Tcrg>d@JDjEeGe zDw!!2p_SHRUfowgBp#!q&yW9OKcV4(rplY2rkfsJ$D3OyRcHbSo&8nVrS93u`?%)2 zi9_A&3|=H01@EHsq^GRrdCzUDnH>fD$(ie*BXAxoqbk`UkOU*)kae~%-pHYMA!eo~ z!Ov(LOXd}jGIb%rZvi&1(&-FcA~*Yw<4HD6S;f(`nNC{X4%2)FPkB9Ec9C&t=~lixJ41^t zpTkMhvB&K_p5yf`a!jN+mI z{gNQ~6+VaCQNHco<#`*bG;{4r8TgRMxJP7+CS)wTjCuS(9`V>ThQeJIMMM(fB^v8vnqQ+1!vU&0000vN?5 diff --git a/WebAdmin/images/bug_delete.png b/WebAdmin/images/bug_delete.png deleted file mode 100644 index 06a9049e5d0fa2888289a39fbd6c7bbd605378ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 951 zcmV;o14#UdP)5NrI6sD~Obutyl+QByM537RfP;qVyiW3!7>QANq5Qf5FO7R1%g6PyKRqF?c1Z%Y< zwOy^%Qqo@SU2B@&+%&n#y?I|xf`$F^z;oYw-uFDud(J)Q3Jtq<1A+)96=G5N2(G*8 zp}@RmCgQcGX(E$J!%W-FCRcXuo!yS^#f=c{6u=pBCXx|f4qZI(IJG+HRfvaW$HjuGj$P^uSJxfLlpSnV>iz7kc6LS!nM#jjqo2liPRx3W08s z7FSg6SXj9-SQ71kZ~QsN2K&JseuyqVgo2si;!Nn84)w`BsKG}Vj04_p8ukk;8{wRV zWvA2G95d24NNinE&F`4Mq!OXC$6)t9MM@opr@RbSfg4Nr9mmTDL1a#yfSJu+D0I8e z2w-P(B~}rlO{*}tx$b+Ety+ujTeng9(>B~`sK>W|p2xEb=TK~wVC+E;WJQ7^G7Kft z=gOVax5*8A4sXjPVWeyzqlS=v_7)bAs;bw}XO{tH!}0Hn ztrO$1q}cmBgo{!wWD$m@X-JIpA`y#{SRbVd=;Rl?n}%}#9Pn`sOpAa=HTX+QXlB@N zvP4BFu(v$L7aT*~D4YKZ8Oug;d=wUCHA%rjZd$)y57cbTw>58fFM)@sB!}Y@8X~b} z0!#46{qEIV*4vQ9^m#*F$WruZqzeVga%3<61$OZSSe8MQNKjE|m8e@qE))^eNdFeq zKyY6hR`yNc(9K}FU!x5E39??584m}dDVkmzBB|%r*W_zy`-(in?au!TJ)w^4$E#_o z6@+%RB0@?2O>ht1y6UK5DRrER$d#d)=_^0n3-6gKDc8zQeB3@G%=(`{Mi_c8 ZzyPm>gN8_T=i&eW002ovPDHLkV1i*J!R!D4 diff --git a/WebAdmin/images/compass.png b/WebAdmin/images/compass.png deleted file mode 100644 index 6576ced9b44e48fb071f17957b4ee4c539ab1d95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 906 zcmV;519kj~P)q0 z8oQ=Vx|!-kyLC8i5oCf2Mv*cdh!1rr6Q|G!`m~2VOhLwc5fO(VZj7aSkSSwhxOE7V z%}Q}AY^7FBZP@xJX-Jy3>GJ2MH@W_9N3hca=iztG`JVIroj(%)k?N($F(h-pgym}3 zETjsSC5*e zSUnRNkQ8ai)B7dHa+=)Oag6*Fk}OlNTc|CM;@|ZyuI3=6>oKgF8P#7;UbYj+c7nB1 zc}VN|l(D64B!3^F&6^;yQ(5Zk>Uwsnznzf|#%P0Dw{lA{J@JUZk0`qpPt{q={VOB7a{yNyYL);28!EUlrYdn(C5Dwf#?AN1N#g zDV!ZG#B7}Xg~l!DCqH?7-y6}*U!|sVIc#I64A9M0qXDR7No0!D-|O* z4EU+5<2GD_9;|Pvh%M)!{LG^BPA$S0+65#oUPT2o9oSE2aL?I}SHsgNIk$s7O+#uc z3lpgZPAb&d=JwI+TMTceqtLS($;ReZOwEL0mbQ`3?m=QGEFe60-fu#;vo6sU&=4JH zv3f%>i&@VkFV{5Uv$BA6PUQmZDeIr zGyk7|d9HL+Xl)a4J!pexViK#W* zl3b+Yt{tNuFRJPtmh#Gq#KX{1Y1rLlJ%q-O+BPN-OR~A6LDhA9&j1d44ZcP~*gaoT zDoX}2emrzTpto!pV_pR+Ghv^*T*=9}QfWt*1uv7&ABgn09_7_jUSDsAhwnM2(isCaA(ksf(wzXqzkt$+_@0^palg#sNxsZO$3WYx^Pjo(xzG= zXeN_n-dyi{GuWikx^Up~9%t@7_q_A&BWA|`e9E7qSqB()2{2qiD5$KCfEL5%SV(wH z{$23Pj(b>GPT)x24~!mKlD`gS=F(VLNeZ_17nVtX$BDzs@L%PD>K$pkl;^^kgM4&k zg0Gw%WPT&qEVz)*2$tJ`4RYrADSj}0jT=*7_u@D%Z%dUimi+*~-i`b7BPjjq#Ax;- z#*VGPtEU7T#;U=F3|4|y>%!xA130<=5oqlu787mgZ&PwGH!>#FKto6SHo-{F9)?jU zC(aWi%2j+4OK?D<{oJMNMH2LC;q=f}u5ZZmiKl_dFSpU|R@huaRd>*Z-U;inahs%t z>EcS~$*;F0&$IXLOWyhPIMj{WL+tITi7E$XCK}p7ao{ujT8KagXapKz5QzLbdK-&S z6rEE;!PKhmPFK2Yw?kkE`ug{wUMoX|0muXg(5yv~Mptr&sM1!Ek-<#j3B{9Ww3@}h z4vS>Aq{cXw9HOX!|9&p!q9)!rM+%d>cB6Ut6`A?`Q%}g{a$DZQ z%#)`@G`%0?x^4@>v*$0~ep@YxRHvmdl(VGv^jP`L4^UM-Z=E34oJj0MrSj7fM#|Y@ oUZoP5y@|SP9RK=S@_q|20Qt`l0)cqd6aWAK07*qoM6N<$f|e{e!Tv?iP#9G z8eS7veCOpdVzC&W#p5&1!9jrCZ|v^73P2FHr5ITwNG>z;jDKQ$48QVuNRQ^{=7jO< zHg(Z-CS&edu2l5O@{+!;Ry4NwV3VDHt9|`QJB}={(IZM(SXy3X`VHuXvQz+W2v_xM z-(*6M9!Gq?#PZpK z*ALZ;f6%z;PU&M12w2!yU*mWS^ztESdjzo9e#Q3A2y8yTlYzz0^)Z=biy8c=H(y6V z=dS#KhPs=9X<{NFP@v~SrUtzTF%#CWAr2VCfT#&T`1JXUsjPpx21p;d{VC0O`?hi~ z88XR(q!r%=s9jzb`1hRj{0SSFD3xV0YqeUzY+FObqdLk<82>N7IrsRV00RJC5B)}e SRR_@k0000RCwBqQ%y)!K^Q%A@7(vE_o>eo zlKmUjqT1WW7A-1i7qkhB2%>1?wjw3+iP)l*e~T7|B(_j=6BfRL5W&ZoFDpqK1Oy*Tyl3hv#|jpA*=#wa#ImpKF3} zB_k{w1p2TvbNac(lHV`ebnNI8oA&vFdixEE#m z(B9EaRfRY{aB08u>TN=G5U%fm>Iu~fDZNdbmHOU z9h4?Uk@4Z?tu@3Rb{yeqNn?ff=Q+xEe7!WAFH^3DIaxi8Xw-#WK@;gS}j*B zU^e%)wwf7?GB&%avhwY^Mp)kjMnf;JAF@)orFUu$Jojj)0Y%%dS^#y!MFKJlKI*kZ zQHw1Qn411IZL`^N+*sj)55|5B>%no|#P>;SpY!_pVoqNB11FTLtXKV+ui5NYKEH(|9ra$Y*+!JF zyQN+*nM|Xjqshr-tb;iirhQs1e|YZ+izQJ_fd)5RQ%$fA-<8zcPIDxM`Pe}<@N&x~ z5+mk^`}}5)$J5(8$QO1yox`;{*Qv)tf>#FFlQxnZJFbNuV(0)4Rkg|-HqYzvWu;eG z`vyd!_7|N4DYdTBQZ1cc{YWS~byJfdhibz>p$(3d4D822rLx4!eyiKx69maeWp=Am z;Sbc;>-IJWPPdIK6ehjitj4WUsfx>OVkKWMsOtv+bS))rHHx;{? fny&E8D>{NTbE&~4u_ql#Er|S;e|Qd+f+YL_u9n3O diff --git a/WebAdmin/images/dtree_cd.gif b/WebAdmin/images/dtree_cd.gif deleted file mode 100644 index 7503819404024526e6181901806c55f0d80c5933..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239 zcmVrJ``g+7o}HwDfriP+%H`z#&d&S!*Z=kE z|K{fCzP{+0nauzH|NsC0A^8LW000jFEC2ui022Ta000D>@X2QgDb|R|oC=38x?@%aA z3XHC|001ZuX$Aq%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)cGw zMSgXq@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)~RtNqvreafzu-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?DiJW3#)C#D)aIvB91 zfNOew_W$>t|Ni|e&CM||NI81&?f=`QuV26Z|9{T0S(4kfZTk-bGZ}^gQ2fcl$iU#q zpaXI&C{7sIuQhl!HMg)hmVUg|Ta9<%L zB*!hNW#eGnvfRbP!^OqjoL^Um#e}(8(%psk*bWzm73wnj%>wQWm-x821i3D`7>P8w z-n-|h>B!0H=xU{*=yrFzi#XF`MLGYlFIxARNO@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&EJ6Nfhb5kY1Re>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~Y7eUYLsomU#>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~wr2�PO#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`fHi8EnwqRZheRTo3t^+{2HkSV8B3ac*wiwj`U#enmI4T(`vn#vK;=k2di7RfPB!bd zJK#>yEZWxDDf!FE7-xpVy$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*7ZJS 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{SaUPQpK2ciX-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$Vl2ln44WgTT=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)biMkCrl#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!2oVvxShDKmPGuu1Z{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 zcmVUn{>${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=fzs4xQA0(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)#11uH-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>zt)%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 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 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 zcmVu(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^E3Smg6BK-{Dx3nX)I(&_xHP}RoAokKf{z-79-zqTri*W7#Fn_5wN^~FL{ z!wD1>S=gpe*i;=rb8T?v%C-;8s$_$TBobSA^L85R&o3XLixk!g4`&wNca4t8o=XkK zQA|Zf=Ms1|9aEQxnxoin&=>+6lsr221I*_aR|Kt0000WOA{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@e1s{GmE55mz>Nb@@MbtEYdSF;BvY2Znt}Y6weSzp2V08 zMq`)tk`*&^^Ux(G#-zy#M7phS6y&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 zcmVaPAHZ=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 zdhQly3j!{z6AKno-Rh>?!UqlMXk0V^TP6=+z978VEiQ)VZ9NL_@4|LT| zp=Q@rUWT)d7Pwv#bR*^oMdP3__%mr62AV93kSzBJ~o2ph!&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={)YnBQy3oVDwE!@`=@cR^` zX^uuZP;g(-8g9c%@&@hEE)-QBy4gL@#x1N-G2|@~jUP6)*tCf&lA_U2D1tAcB>PfQ{7uP67L9~)6 z?1$(--7rk&&dlx1HGin_%zQIsXP`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@pncI9-&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 zcmVW}`hKTLnv#$eiNXap^y z5?ab`nwF)tbz#>6U3O;K2kd)hcDzGK{NqVZ=FXjazVF=gWvIUXL5QLV1%euZoiah9T}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|756S1VwgRoS2>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<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(+^Dm0000P)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$ ziG-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~J9eY;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%~lAWD)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@Y00005zRc*| 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!1Sj@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$JtTnVKAr7$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`{ zgW2-#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_W8rfkybVpoxM9$LykQ6L^m&OS!QF|JZU4w_2fM9#q#ZMW4{t`#3H@oXV~&mAD^ObHufGFb=8C|6^jqZ(B#XY2TR28u&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 @@

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

\ 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 = '
\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 += ''; - 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) { ' . 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. - 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']); ?>
  • -
  • +
  • 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; } ?> -
    • +
    • - +
    • 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 ?> - - + + - + - + + hMailServer: webadmin @@ -64,8 +65,9 @@ - + + @@ -84,13 +86,13 @@ --> - Menu +
    - WebAdmin 0.9.4 [beta] + WebAdmin 0.9.5 [beta]
    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 @@ + width="240px" height="16px" viewBox="0 0 240 16" style="enable-background:new 0 0 240 16;" xml:space="preserve"> diff --git a/WebAdmin/modern/css/reset.css b/WebAdmin/modern/css/reset.css index d64640a..5628b32 100644 --- a/WebAdmin/modern/css/reset.css +++ b/WebAdmin/modern/css/reset.css @@ -1,48 +1,8 @@ -/* http://meyerweb.com/eric/tools/css/reset/ - v2.0 | 20110126 - License: none (public domain) -*/ - -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - /*vertical-align: baseline;*/ -} -/* HTML5 display-role reset for older browsers */ -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section, main { - display: block; -} -body { - line-height: 100%; -} -ol, ul { - list-style: none; -} -blockquote, q { - quotes: none; -} -blockquote:before, blockquote:after, -q:before, q:after { - content: ''; - content: none; -} -table { - border-collapse: collapse; - border-spacing: 0; -} \ No newline at end of file +html {margin:0; padding:0; box-sizing:border-box;} +*, *:before, *:after {box-sizing:inherit;} +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, main {display:block;} /* HTML5 display-role reset for older browsers */ +body, h1, h2, h3, ul, li {margin:0; line-height:100%;} +ol, ul {list-style: none;} +table {border-collapse:collapse; border-spacing:0;} +a {text-decoration:none;} +:focus, :active {outline:none;} \ No newline at end of file diff --git a/WebAdmin/modern/js/chartist-tooltip.js b/WebAdmin/modern/js/chartist-tooltip.js new file mode 100644 index 0000000..45b30ee --- /dev/null +++ b/WebAdmin/modern/js/chartist-tooltip.js @@ -0,0 +1,8 @@ +/* chartist-plugin-tooltip 0.0.17 + * Copyright © 2016 Markus Padourek + * Free to use under the WTFPL license. + * http://www.wtfpl.net/ + */ + +!function(a,b){"function"==typeof define&&define.amd?define(["chartist"],function(c){return a.returnExportsGlobal=b(c)}):"object"==typeof exports?module.exports=b(require("chartist")):a["Chartist.plugins.tooltips"]=b(Chartist)}(this,function(a){return function(a,b,c){"use strict";function d(a){f(a,"tooltip-show")||(a.className=a.className+" tooltip-show")}function e(a){var b=new RegExp("tooltip-show\\s*","gi");a.className=a.className.replace(b,"").trim()}function f(a,b){return(" "+a.getAttribute("class")+" ").indexOf(" "+b+" ")>-1}function g(a,b){do a=a.nextSibling;while(a&&!f(a,b));return a}function h(a){return a.innerText||a.textContent}var i={currency:void 0,currencyFormatCallback:void 0,tooltipOffset:{x:0,y:-20},anchorToPoint:!1,appendToBody:!1,class:void 0,pointClass:"ct-point"};c.plugins=c.plugins||{},c.plugins.tooltip=function(j){return j=c.extend({},i,j),function(i){function k(a,b,c){n.addEventListener(a,function(a){b&&!f(a.target,b)||c(a)})}function l(b){p=p||o.offsetHeight,q=q||o.offsetWidth;var c,d,e=-q/2+j.tooltipOffset.x,f=-p+j.tooltipOffset.y;if(j.appendToBody)o.style.top=b.pageY+f+"px",o.style.left=b.pageX+e+"px";else{var g=n.getBoundingClientRect(),h=b.pageX-g.left-a.pageXOffset,i=b.pageY-g.top-a.pageYOffset;!0===j.anchorToPoint&&b.target.x2&&b.target.y2&&(c=parseInt(b.target.x2.baseVal.value),d=parseInt(b.target.y2.baseVal.value)),o.style.top=(d||i)+f+"px",o.style.left=(c||h)+e+"px"}}var m=j.pointClass;i instanceof c.Bar?m="ct-bar":i instanceof c.Pie&&(m=i.options.donut?"ct-slice-donut":"ct-slice-pie");var n=i.container,o=n.querySelector(".chartist-tooltip");o||(o=b.createElement("div"),o.className=j.class?"chartist-tooltip "+j.class:"chartist-tooltip",j.appendToBody?b.body.appendChild(o):n.appendChild(o));var p=o.offsetHeight,q=o.offsetWidth;e(o),k("mouseover",m,function(a){var e=a.target,f="",k=i instanceof c.Pie?e:e.parentNode,m=k?e.parentNode.getAttribute("ct:meta")||e.parentNode.getAttribute("ct:series-name"):"",n=e.getAttribute("ct:meta")||m||"",r=!!n,s=e.getAttribute("ct:value");if(j.transformTooltipTextFnc&&"function"==typeof j.transformTooltipTextFnc&&(s=j.transformTooltipTextFnc(s)),j.tooltipFnc&&"function"==typeof j.tooltipFnc)f=j.tooltipFnc(n,s);else{if(j.metaIsHTML){var t=b.createElement("textarea");t.innerHTML=n,n=t.value}if(n=''+n+"",r)f+=n+"
    ";else if(i instanceof c.Pie){var u=g(e,"ct-label");u&&(f+=h(u)+"
    ")}s&&(j.currency&&(s=void 0!=j.currencyFormatCallback?j.currencyFormatCallback(s,j):j.currency+s.replace(/(\d)(?=(\d{3})+(?:\.\d+)?$)/g,"$1,")),s=''+s+"",f+=s)}f&&(o.innerHTML=f,l(a),d(o),p=o.offsetHeight,q=o.offsetWidth)}),k("mouseout",m,function(){e(o)}),k("mousemove",null,function(a){!1===j.anchorToPoint&&l(a)})}}}(window,document,a),a.plugins.tooltips}); +//# sourceMappingURL=chartist-plugin-tooltip.min.js.map \ No newline at end of file diff --git a/WebAdmin/modern/js/chartist.js b/WebAdmin/modern/js/chartist.js deleted file mode 100644 index 331cf84..0000000 --- a/WebAdmin/modern/js/chartist.js +++ /dev/null @@ -1,19 +0,0 @@ -/* Chartist.js 0.10.0 - * Copyright © 2016 Gion Kunz - * Free to use under either the WTFPL license or the MIT license. - * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL - * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT - */ - -!function(a,b){"function"==typeof define&&define.amd?define("Chartist",[],function(){return a.Chartist=b()}):"object"==typeof exports?module.exports=b():a.Chartist=b()}(this,function(){var a={version:"0.10.0"};return function(a,b,c){"use strict";c.namespaces={svg:"http://www.w3.org/2000/svg",xmlns:"http://www.w3.org/2000/xmlns/",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",ct:"http://gionkunz.github.com/chartist-js/ct"},c.noop=function(a){return a},c.alphaNumerate=function(a){return String.fromCharCode(97+a%26)},c.extend=function(a){var b,d,e;for(a=a||{},b=1;b":">",'"':""","'":"'"},c.serialize=function(a){return null===a||void 0===a?a:("number"==typeof a?a=""+a:"object"==typeof a&&(a=JSON.stringify({data:a})),Object.keys(c.escapingMap).reduce(function(a,b){return c.replaceAll(a,b,c.escapingMap[b])},a))},c.deserialize=function(a){if("string"!=typeof a)return a;a=Object.keys(c.escapingMap).reduce(function(a,b){return c.replaceAll(a,c.escapingMap[b],b)},a);try{a=JSON.parse(a),a=void 0!==a.data?a.data:a}catch(b){}return a},c.createSvg=function(a,b,d,e){var f;return b=b||"100%",d=d||"100%",Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function(a){return a.getAttributeNS(c.namespaces.xmlns,"ct")}).forEach(function(b){a.removeChild(b)}),f=new c.Svg("svg").attr({width:b,height:d}).addClass(e).attr({style:"width: "+b+"; height: "+d+";"}),a.appendChild(f._node),f},c.normalizeData=function(a,b,d){var e,f={raw:a,normalized:{}};return f.normalized.series=c.getDataArray({series:a.series||[]},b,d),e=f.normalized.series.every(function(a){return a instanceof Array})?Math.max.apply(null,f.normalized.series.map(function(a){return a.length})):f.normalized.series.length,f.normalized.labels=(a.labels||[]).slice(),Array.prototype.push.apply(f.normalized.labels,c.times(Math.max(0,e-f.normalized.labels.length)).map(function(){return""})),b&&c.reverseData(f.normalized),f},c.safeHasProperty=function(a,b){return null!==a&&"object"==typeof a&&a.hasOwnProperty(b)},c.isDataHoleValue=function(a){return null===a||void 0===a||"number"==typeof a&&isNaN(a)},c.reverseData=function(a){a.labels.reverse(),a.series.reverse();for(var b=0;bf.high&&(f.high=c),h&&c0?f.low=0:(f.high=1,f.low=0)),f},c.isNumeric=function(a){return null!==a&&isFinite(a)},c.isFalseyButZero=function(a){return!a&&0!==a},c.getNumberOrUndefined=function(a){return c.isNumeric(a)?+a:void 0},c.isMultiValue=function(a){return"object"==typeof a&&("x"in a||"y"in a)},c.getMultiValue=function(a,b){return c.isMultiValue(a)?c.getNumberOrUndefined(a[b||"y"]):c.getNumberOrUndefined(a)},c.rho=function(a){function b(a,c){return a%c===0?c:b(c,a%c)}function c(a){return a*a+1}if(1===a)return a;var d,e=2,f=2;if(a%2===0)return 2;do e=c(e)%a,f=c(c(f))%a,d=b(Math.abs(e-f),a);while(1===d);return d},c.getBounds=function(a,b,d,e){function f(a,b){return a===(a+=b)&&(a*=1+(b>0?o:-o)),a}var g,h,i,j=0,k={high:b.high,low:b.low};k.valueRange=k.high-k.low,k.oom=c.orderOfMagnitude(k.valueRange),k.step=Math.pow(10,k.oom),k.min=Math.floor(k.low/k.step)*k.step,k.max=Math.ceil(k.high/k.step)*k.step,k.range=k.max-k.min,k.numberOfSteps=Math.round(k.range/k.step);var l=c.projectLength(a,k.step,k),m=l=d)k.step=1;else if(e&&n=d)k.step=n;else for(;;){if(m&&c.projectLength(a,k.step,k)<=d)k.step*=2;else{if(m||!(c.projectLength(a,k.step/2,k)>=d))break;if(k.step/=2,e&&k.step%1!==0){k.step*=2;break}}if(j++>1e3)throw new Error("Exceeded maximum number of iterations while optimizing scale step!")}var o=2.221e-16;for(k.step=Math.max(k.step,o),h=k.min,i=k.max;h+k.step<=k.low;)h=f(h,k.step);for(;i-k.step>=k.high;)i=f(i,-k.step);k.min=h,k.max=i,k.range=k.max-k.min;var p=[];for(g=k.min;g<=k.max;g=f(g,k.step)){var q=c.roundWithPrecision(g);q!==p[p.length-1]&&p.push(q)}return k.values=p,k},c.polarToCartesian=function(a,b,c,d){var e=(d-90)*Math.PI/180;return{x:a+c*Math.cos(e),y:b+c*Math.sin(e)}},c.createChartRect=function(a,b,d){var e=!(!b.axisX&&!b.axisY),f=e?b.axisY.offset:0,g=e?b.axisX.offset:0,h=a.width()||c.quantity(b.width).value||0,i=a.height()||c.quantity(b.height).value||0,j=c.normalizePadding(b.chartPadding,d);h=Math.max(h,f+j.left+j.right),i=Math.max(i,g+j.top+j.bottom);var k={padding:j,width:function(){return this.x2-this.x1},height:function(){return this.y1-this.y2}};return e?("start"===b.axisX.position?(k.y2=j.top+g,k.y1=Math.max(i-j.bottom,k.y2+1)):(k.y2=j.top,k.y1=Math.max(i-j.bottom-g,k.y2+1)),"start"===b.axisY.position?(k.x1=j.left+f,k.x2=Math.max(h-j.right,k.x1+1)):(k.x1=j.left,k.x2=Math.max(h-j.right-f,k.x1+1))):(k.x1=j.left,k.x2=Math.max(h-j.right,k.x1+1),k.y2=j.top,k.y1=Math.max(i-j.bottom,k.y2+1)),k},c.createGrid=function(a,b,d,e,f,g,h,i){var j={};j[d.units.pos+"1"]=a,j[d.units.pos+"2"]=a,j[d.counterUnits.pos+"1"]=e,j[d.counterUnits.pos+"2"]=e+f;var k=g.elem("line",j,h.join(" "));i.emit("draw",c.extend({type:"grid",axis:d,index:b,group:g,element:k},j))},c.createGridBackground=function(a,b,c,d){var e=a.elem("rect",{x:b.x1,y:b.y2,width:b.width(),height:b.height()},c,!0);d.emit("draw",{type:"gridBackground",group:a,element:e})},c.createLabel=function(a,b,d,e,f,g,h,i,j,k,l){var m,n={};if(n[f.units.pos]=a+h[f.units.pos],n[f.counterUnits.pos]=h[f.counterUnits.pos],n[f.units.len]=b,n[f.counterUnits.len]=Math.max(0,g-10),k){var o=''+e[d]+"";m=i.foreignObject(o,c.extend({style:"overflow: visible;"},n))}else m=i.elem("text",n,j.join(" ")).text(e[d]);l.emit("draw",c.extend({type:"label",axis:f,index:d,group:i,element:m,text:e[d]},n))},c.getSeriesOption=function(a,b,c){if(a.name&&b.series&&b.series[a.name]){var d=b.series[a.name];return d.hasOwnProperty(c)?d[c]:b[c]}return b[c]},c.optionsProvider=function(b,d,e){function f(b){var f=h;if(h=c.extend({},j),d)for(i=0;i=2&&a[h]<=a[h-2]&&(g=!0),g&&(f.push({pathCoordinates:[],valueData:[]}),g=!1),f[f.length-1].pathCoordinates.push(a[h],a[h+1]),f[f.length-1].valueData.push(b[h/2]));return f}}(window,document,a),function(a,b,c){"use strict";c.Interpolation={},c.Interpolation.none=function(a){var b={fillHoles:!1};return a=c.extend({},b,a),function(b,d){for(var e=new c.Svg.Path,f=!0,g=0;g1){var i=[];return h.forEach(function(a){i.push(f(a.pathCoordinates,a.valueData))}),c.Svg.Path.join(i)}if(b=h[0].pathCoordinates,g=h[0].valueData,b.length<=4)return c.Interpolation.none()(b,g);for(var j,k=(new c.Svg.Path).move(b[0],b[1],!1,g[0]),l=0,m=b.length;m-2*!j>l;l+=2){var n=[{x:+b[l-2],y:+b[l-1]},{x:+b[l],y:+b[l+1]},{x:+b[l+2],y:+b[l+3]},{x:+b[l+4],y:+b[l+5]}];j?l?m-4===l?n[3]={x:+b[0],y:+b[1]}:m-2===l&&(n[2]={x:+b[0],y:+b[1]},n[3]={x:+b[2],y:+b[3]}):n[0]={x:+b[m-2],y:+b[m-1]}:m-4===l?n[3]=n[2]:l||(n[0]={x:+b[l],y:+b[l+1]}),k.curve(d*(-n[0].x+6*n[1].x+n[2].x)/6+e*n[2].x,d*(-n[0].y+6*n[1].y+n[2].y)/6+e*n[2].y,d*(n[1].x+6*n[2].x-n[3].x)/6+e*n[2].x,d*(n[1].y+6*n[2].y-n[3].y)/6+e*n[2].y,n[2].x,n[2].y,!1,g[(l+2)/2])}return k}return c.Interpolation.none()([])}},c.Interpolation.monotoneCubic=function(a){var b={fillHoles:!1};return a=c.extend({},b,a),function d(b,e){var f=c.splitIntoSegments(b,e,{fillHoles:a.fillHoles,increasingX:!0});if(f.length){if(f.length>1){var g=[];return f.forEach(function(a){g.push(d(a.pathCoordinates,a.valueData))}),c.Svg.Path.join(g)}if(b=f[0].pathCoordinates,e=f[0].valueData,b.length<=4)return c.Interpolation.none()(b,e);var h,i,j=[],k=[],l=b.length/2,m=[],n=[],o=[],p=[];for(h=0;h0!=n[h]>0?m[h]=0:(m[h]=3*(p[h-1]+p[h])/((2*p[h]+p[h-1])/n[h-1]+(p[h]+2*p[h-1])/n[h]),isFinite(m[h])||(m[h]=0));for(i=(new c.Svg.Path).move(j[0],k[0],!1,e[0]),h=0;h1}).map(function(a){var b=a.pathElements[0],c=a.pathElements[a.pathElements.length-1];return a.clone(!0).position(0).remove(1).move(b.x,r).line(b.x,b.y).position(a.pathElements.length+1).line(c.x,r)}).forEach(function(c){var h=i.elem("path",{d:c.stringify()},a.classNames.area,!0);this.eventEmitter.emit("draw",{type:"area",values:b.normalized.series[g],path:c.clone(),series:f,seriesIndex:g,axisX:d,axisY:e,chartRect:j,index:g,group:i,element:h})}.bind(this))}}.bind(this)),this.eventEmitter.emit("created",{bounds:e.bounds,chartRect:j,axisX:d,axisY:e,svg:this.svg,options:a})}function e(a,b,d,e){c.Line["super"].constructor.call(this,a,b,f,c.extend({},f,d),e)}var f={axisX:{offset:30,position:"end",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,type:void 0},axisY:{offset:40,position:"start",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,type:void 0,scaleMinSpace:20,onlyInteger:!1},width:void 0,height:void 0,showLine:!0,showPoint:!0,showArea:!1,areaBase:0,lineSmooth:!0,showGridBackground:!1,low:void 0,high:void 0,chartPadding:{top:15,right:15,bottom:5,left:10},fullWidth:!1,reverseData:!1,classNames:{chart:"ct-chart-line",label:"ct-label",labelGroup:"ct-labels",series:"ct-series",line:"ct-line",point:"ct-point",area:"ct-area",grid:"ct-grid",gridGroup:"ct-grids",gridBackground:"ct-grid-background",vertical:"ct-vertical",horizontal:"ct-horizontal",start:"ct-start",end:"ct-end"}};c.Line=c.Base.extend({constructor:e,createChart:d})}(window,document,a),function(a,b,c){"use strict";function d(a){var b,d;a.distributeSeries?(b=c.normalizeData(this.data,a.reverseData,a.horizontalBars?"x":"y"),b.normalized.series=b.normalized.series.map(function(a){return[a]})):b=c.normalizeData(this.data,a.reverseData,a.horizontalBars?"x":"y"),this.svg=c.createSvg(this.container,a.width,a.height,a.classNames.chart+(a.horizontalBars?" "+a.classNames.horizontalBars:""));var e=this.svg.elem("g").addClass(a.classNames.gridGroup),g=this.svg.elem("g"),h=this.svg.elem("g").addClass(a.classNames.labelGroup);if(a.stackBars&&0!==b.normalized.series.length){var i=c.serialMap(b.normalized.series,function(){return Array.prototype.slice.call(arguments).map(function(a){ -return a}).reduce(function(a,b){return{x:a.x+(b&&b.x)||0,y:a.y+(b&&b.y)||0}},{x:0,y:0})});d=c.getHighLow([i],a,a.horizontalBars?"x":"y")}else d=c.getHighLow(b.normalized.series,a,a.horizontalBars?"x":"y");d.high=+a.high||(0===a.high?0:d.high),d.low=+a.low||(0===a.low?0:d.low);var j,k,l,m,n,o=c.createChartRect(this.svg,a,f.padding);k=a.distributeSeries&&a.stackBars?b.normalized.labels.slice(0,1):b.normalized.labels,a.horizontalBars?(j=m=void 0===a.axisX.type?new c.AutoScaleAxis(c.Axis.units.x,b.normalized.series,o,c.extend({},a.axisX,{highLow:d,referenceValue:0})):a.axisX.type.call(c,c.Axis.units.x,b.normalized.series,o,c.extend({},a.axisX,{highLow:d,referenceValue:0})),l=n=void 0===a.axisY.type?new c.StepAxis(c.Axis.units.y,b.normalized.series,o,{ticks:k}):a.axisY.type.call(c,c.Axis.units.y,b.normalized.series,o,a.axisY)):(l=m=void 0===a.axisX.type?new c.StepAxis(c.Axis.units.x,b.normalized.series,o,{ticks:k}):a.axisX.type.call(c,c.Axis.units.x,b.normalized.series,o,a.axisX),j=n=void 0===a.axisY.type?new c.AutoScaleAxis(c.Axis.units.y,b.normalized.series,o,c.extend({},a.axisY,{highLow:d,referenceValue:0})):a.axisY.type.call(c,c.Axis.units.y,b.normalized.series,o,c.extend({},a.axisY,{highLow:d,referenceValue:0})));var p=a.horizontalBars?o.x1+j.projectValue(0):o.y1-j.projectValue(0),q=[];l.createGridAndLabels(e,h,this.supportsForeignObject,a,this.eventEmitter),j.createGridAndLabels(e,h,this.supportsForeignObject,a,this.eventEmitter),a.showGridBackground&&c.createGridBackground(e,o,a.classNames.gridBackground,this.eventEmitter),b.raw.series.forEach(function(d,e){var f,h,i=e-(b.raw.series.length-1)/2;f=a.distributeSeries&&!a.stackBars?l.axisLength/b.normalized.series.length/2:a.distributeSeries&&a.stackBars?l.axisLength/2:l.axisLength/b.normalized.series[e].length/2,h=g.elem("g"),h.attr({"ct:series-name":d.name,"ct:meta":c.serialize(d.meta)}),h.addClass([a.classNames.series,d.className||a.classNames.series+"-"+c.alphaNumerate(e)].join(" ")),b.normalized.series[e].forEach(function(g,k){var r,s,t,u;if(u=a.distributeSeries&&!a.stackBars?e:a.distributeSeries&&a.stackBars?0:k,r=a.horizontalBars?{x:o.x1+j.projectValue(g&&g.x?g.x:0,k,b.normalized.series[e]),y:o.y1-l.projectValue(g&&g.y?g.y:0,u,b.normalized.series[e])}:{x:o.x1+l.projectValue(g&&g.x?g.x:0,u,b.normalized.series[e]),y:o.y1-j.projectValue(g&&g.y?g.y:0,k,b.normalized.series[e])},l instanceof c.StepAxis&&(l.options.stretch||(r[l.units.pos]+=f*(a.horizontalBars?-1:1)),r[l.units.pos]+=a.stackBars||a.distributeSeries?0:i*a.seriesBarDistance*(a.horizontalBars?-1:1)),t=q[k]||p,q[k]=t-(p-r[l.counterUnits.pos]),void 0!==g){var v={};v[l.units.pos+"1"]=r[l.units.pos],v[l.units.pos+"2"]=r[l.units.pos],!a.stackBars||"accumulate"!==a.stackMode&&a.stackMode?(v[l.counterUnits.pos+"1"]=p,v[l.counterUnits.pos+"2"]=r[l.counterUnits.pos]):(v[l.counterUnits.pos+"1"]=t,v[l.counterUnits.pos+"2"]=q[k]),v.x1=Math.min(Math.max(v.x1,o.x1),o.x2),v.x2=Math.min(Math.max(v.x2,o.x1),o.x2),v.y1=Math.min(Math.max(v.y1,o.y2),o.y1),v.y2=Math.min(Math.max(v.y2,o.y2),o.y1);var w=c.getMetaData(d,k);s=h.elem("line",v,a.classNames.bar).attr({"ct:value":[g.x,g.y].filter(c.isNumeric).join(","),"ct:meta":c.serialize(w)}),this.eventEmitter.emit("draw",c.extend({type:"bar",value:g,index:k,meta:w,series:d,seriesIndex:e,axisX:m,axisY:n,chartRect:o,group:h,element:s},v))}}.bind(this))}.bind(this)),this.eventEmitter.emit("created",{bounds:j.bounds,chartRect:o,axisX:m,axisY:n,svg:this.svg,options:a})}function e(a,b,d,e){c.Bar["super"].constructor.call(this,a,b,f,c.extend({},f,d),e)}var f={axisX:{offset:30,position:"end",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,scaleMinSpace:30,onlyInteger:!1},axisY:{offset:40,position:"start",labelOffset:{x:0,y:0},showLabel:!0,showGrid:!0,labelInterpolationFnc:c.noop,scaleMinSpace:20,onlyInteger:!1},width:void 0,height:void 0,high:void 0,low:void 0,referenceValue:0,chartPadding:{top:15,right:15,bottom:5,left:10},seriesBarDistance:15,stackBars:!1,stackMode:"accumulate",horizontalBars:!1,distributeSeries:!1,reverseData:!1,showGridBackground:!1,classNames:{chart:"ct-chart-bar",horizontalBars:"ct-horizontal-bars",label:"ct-label",labelGroup:"ct-labels",series:"ct-series",bar:"ct-bar",grid:"ct-grid",gridGroup:"ct-grids",gridBackground:"ct-grid-background",vertical:"ct-vertical",horizontal:"ct-horizontal",start:"ct-start",end:"ct-end"}};c.Bar=c.Base.extend({constructor:e,createChart:d})}(window,document,a),function(a,b,c){"use strict";function d(a,b,c){var d=b.x>a.x;return d&&"explode"===c||!d&&"implode"===c?"start":d&&"implode"===c||!d&&"explode"===c?"end":"middle"}function e(a){var b,e,f,h,i,j=c.normalizeData(this.data),k=[],l=a.startAngle;this.svg=c.createSvg(this.container,a.width,a.height,a.donut?a.classNames.chartDonut:a.classNames.chartPie),e=c.createChartRect(this.svg,a,g.padding),f=Math.min(e.width()/2,e.height()/2),i=a.total||j.normalized.series.reduce(function(a,b){return a+b},0);var m=c.quantity(a.donutWidth);"%"===m.unit&&(m.value*=f/100),f-=a.donut?m.value/2:0,h="outside"===a.labelPosition||a.donut?f:"center"===a.labelPosition?0:f/2,h+=a.labelOffset;var n={x:e.x1+e.width()/2,y:e.y2+e.height()/2},o=1===j.raw.series.filter(function(a){return a.hasOwnProperty("value")?0!==a.value:0!==a}).length;j.raw.series.forEach(function(a,b){k[b]=this.svg.elem("g",null,null)}.bind(this)),a.showLabel&&(b=this.svg.elem("g",null,null)),j.raw.series.forEach(function(e,g){if(0!==j.normalized.series[g]||!a.ignoreEmptyValues){k[g].attr({"ct:series-name":e.name}),k[g].addClass([a.classNames.series,e.className||a.classNames.series+"-"+c.alphaNumerate(g)].join(" "));var p=i>0?l+j.normalized.series[g]/i*360:0,q=Math.max(0,l-(0===g||o?0:.2));p-q>=359.99&&(p=q+359.99);var r=c.polarToCartesian(n.x,n.y,f,q),s=c.polarToCartesian(n.x,n.y,f,p),t=new c.Svg.Path((!a.donut)).move(s.x,s.y).arc(f,f,0,p-l>180,0,r.x,r.y);a.donut||t.line(n.x,n.y);var u=k[g].elem("path",{d:t.stringify()},a.donut?a.classNames.sliceDonut:a.classNames.slicePie);if(u.attr({"ct:value":j.normalized.series[g],"ct:meta":c.serialize(e.meta)}),a.donut&&u.attr({style:"stroke-width: "+m.value+"px"}),this.eventEmitter.emit("draw",{type:"slice",value:j.normalized.series[g],totalDataSum:i,index:g,meta:e.meta,series:e,group:k[g],element:u,path:t.clone(),center:n,radius:f,startAngle:l,endAngle:p}),a.showLabel){var v;v=1===j.raw.series.length?{x:n.x,y:n.y}:c.polarToCartesian(n.x,n.y,h,l+(p-l)/2);var w;w=j.normalized.labels&&!c.isFalseyButZero(j.normalized.labels[g])?j.normalized.labels[g]:j.normalized.series[g];var x=a.labelInterpolationFnc(w,g);if(x||0===x){var y=b.elem("text",{dx:v.x,dy:v.y,"text-anchor":d(n,v,a.labelDirection)},a.classNames.label).text(""+x);this.eventEmitter.emit("draw",{type:"label",index:g,group:b,element:y,text:""+x,x:v.x,y:v.y})}}l=p}}.bind(this)),this.eventEmitter.emit("created",{chartRect:e,svg:this.svg,options:a})}function f(a,b,d,e){c.Pie["super"].constructor.call(this,a,b,g,c.extend({},g,d),e)}var g={width:void 0,height:void 0,chartPadding:5,classNames:{chartPie:"ct-chart-pie",chartDonut:"ct-chart-donut",series:"ct-series",slicePie:"ct-slice-pie",sliceDonut:"ct-slice-donut",label:"ct-label"},startAngle:0,total:void 0,donut:!1,donutWidth:60,showLabel:!0,labelOffset:0,labelPosition:"inside",labelInterpolationFnc:c.noop,labelDirection:"neutral",reverseData:!1,ignoreEmptyValues:!1};c.Pie=c.Base.extend({constructor:f,createChart:e,determineAnchorPosition:d})}(window,document,a),a}); -//# sourceMappingURL=chartist.min.js.map - -/* chartist-plugin-tooltip 0.0.17 - * Copyright © 2016 Markus Padourek - * Free to use under the WTFPL license. - * http://www.wtfpl.net/ - */ - -!function(a,b){"function"==typeof define&&define.amd?define(["chartist"],function(c){return a.returnExportsGlobal=b(c)}):"object"==typeof exports?module.exports=b(require("chartist")):a["Chartist.plugins.tooltips"]=b(Chartist)}(this,function(a){return function(a,b,c){"use strict";function d(a){f(a,"tooltip-show")||(a.className=a.className+" tooltip-show")}function e(a){var b=new RegExp("tooltip-show\\s*","gi");a.className=a.className.replace(b,"").trim()}function f(a,b){return(" "+a.getAttribute("class")+" ").indexOf(" "+b+" ")>-1}function g(a,b){do a=a.nextSibling;while(a&&!f(a,b));return a}function h(a){return a.innerText||a.textContent}var i={currency:void 0,currencyFormatCallback:void 0,tooltipOffset:{x:0,y:-20},anchorToPoint:!1,appendToBody:!1,class:void 0,pointClass:"ct-point"};c.plugins=c.plugins||{},c.plugins.tooltip=function(j){return j=c.extend({},i,j),function(i){function k(a,b,c){n.addEventListener(a,function(a){b&&!f(a.target,b)||c(a)})}function l(b){p=p||o.offsetHeight,q=q||o.offsetWidth;var c,d,e=-q/2+j.tooltipOffset.x,f=-p+j.tooltipOffset.y;if(j.appendToBody)o.style.top=b.pageY+f+"px",o.style.left=b.pageX+e+"px";else{var g=n.getBoundingClientRect(),h=b.pageX-g.left-a.pageXOffset,i=b.pageY-g.top-a.pageYOffset;!0===j.anchorToPoint&&b.target.x2&&b.target.y2&&(c=parseInt(b.target.x2.baseVal.value),d=parseInt(b.target.y2.baseVal.value)),o.style.top=(d||i)+f+"px",o.style.left=(c||h)+e+"px"}}var m=j.pointClass;i instanceof c.Bar?m="ct-bar":i instanceof c.Pie&&(m=i.options.donut?"ct-slice-donut":"ct-slice-pie");var n=i.container,o=n.querySelector(".chartist-tooltip");o||(o=b.createElement("div"),o.className=j.class?"chartist-tooltip "+j.class:"chartist-tooltip",j.appendToBody?b.body.appendChild(o):n.appendChild(o));var p=o.offsetHeight,q=o.offsetWidth;e(o),k("mouseover",m,function(a){var e=a.target,f="",k=i instanceof c.Pie?e:e.parentNode,m=k?e.parentNode.getAttribute("ct:meta")||e.parentNode.getAttribute("ct:series-name"):"",n=e.getAttribute("ct:meta")||m||"",r=!!n,s=e.getAttribute("ct:value");if(j.transformTooltipTextFnc&&"function"==typeof j.transformTooltipTextFnc&&(s=j.transformTooltipTextFnc(s)),j.tooltipFnc&&"function"==typeof j.tooltipFnc)f=j.tooltipFnc(n,s);else{if(j.metaIsHTML){var t=b.createElement("textarea");t.innerHTML=n,n=t.value}if(n=''+n+"",r)f+=n+"
    ";else if(i instanceof c.Pie){var u=g(e,"ct-label");u&&(f+=h(u)+"
    ")}s&&(j.currency&&(s=void 0!=j.currencyFormatCallback?j.currencyFormatCallback(s,j):j.currency+s.replace(/(\d)(?=(\d{3})+(?:\.\d+)?$)/g,"$1,")),s=''+s+"",f+=s)}f&&(o.innerHTML=f,l(a),d(o),p=o.offsetHeight,q=o.offsetWidth)}),k("mouseout",m,function(){e(o)}),k("mousemove",null,function(a){!1===j.anchorToPoint&&l(a)})}}}(window,document,a),a.plugins.tooltips}); -//# sourceMappingURL=chartist-plugin-tooltip.min.js.map \ No newline at end of file diff --git a/WebAdmin/modern/js/core.js b/WebAdmin/modern/js/core.js index 192546e..8499fcf 100644 --- a/WebAdmin/modern/js/core.js +++ b/WebAdmin/modern/js/core.js @@ -132,7 +132,7 @@ jQuery(document).ready(function(){ url: "modern/json.php?q=4", success: function(data) { activity_array.push(parseInt(data)); - activity_array.splice(1, 1); + activity_array.splice(0, 1); var data = { series: [activity_array], }; @@ -150,7 +150,7 @@ jQuery(document).ready(function(){ // }; // var options = { // circleWidth: 20, - // tooltip: '[[ label ]]
    [[ value ]] / [[ percentage ]]%', + // tooltip: '[[ label ]]
    [[ value ]] / [[ percentage ]]%', // summary: 'Total messages [[ total ]]' // }; // processed.update(data, options); @@ -166,7 +166,7 @@ jQuery(document).ready(function(){ // }; // var options = { // circleWidth: 20, - // tooltip: '[[ label ]]
    [[ value ]] / [[ percentage ]]%', + // tooltip: '[[ label ]]
    [[ value ]] / [[ percentage ]]%', // }; // sessions.update(data, options); // $('#smtp').text(Number(json[0].toFixed(0)).toLocaleString()); @@ -186,132 +186,129 @@ jQuery(document).ready(function(){ }) } - //cache DOM elements - var mainContent = $('.cd-main-content'), - header = $('.cd-main-header'), - sidebar = $('.cd-side-nav'), - sidebarTrigger = $('.cd-nav-trigger'), - topNavigation = $('.cd-top-nav'), - searchForm = $('.cd-search'), - accountInfo = $('.account'); + //responsive navigation + if($('.cd-side-nav').length){ + //cache DOM elements + var mainContent = $('.cd-main-content'), header = $('.cd-main-header'), sidebar = $('.cd-side-nav'), sidebarTrigger = $('.cd-nav-trigger'), topNavigation = $('.cd-top-nav'), searchForm = $('.cd-search'), accountInfo = $('.account'); - //on resize, move search and top nav position according to window width - var resizing = false; - moveNavigation(); - $(window).on('resize', function(){ - if( !resizing ) { - (!window.requestAnimationFrame) ? setTimeout(moveNavigation, 300) : window.requestAnimationFrame(moveNavigation); - resizing = true; + function checkMQ() { + //check if mobile or desktop device + return window.getComputedStyle(document.querySelector('.cd-main-content'), '::before').getPropertyValue('content').replace(/'/g, "").replace(/"/g, ""); } - }); - //on window scrolling - fix sidebar nav - var scrolling = false; - checkScrollbarPosition(); - $(window).on('scroll', function(){ - if( !scrolling ) { - (!window.requestAnimationFrame) ? setTimeout(checkScrollbarPosition, 300) : window.requestAnimationFrame(checkScrollbarPosition); - scrolling = true; + //on resize, move search and top nav position according to window width + var resizing = false; + moveNavigation(); + $(window).on('resize', function(){ + if( !resizing ) { + (!window.requestAnimationFrame) ? setTimeout(moveNavigation, 300) : window.requestAnimationFrame(moveNavigation); + resizing = true; + } + }); + + function moveNavigation(){ + var mq = checkMQ(); + if ( mq == 'mobile' && topNavigation.parents('.cd-side-nav').length == 0 ) { + detachElements(); + topNavigation.appendTo(sidebar); + searchForm.removeClass('is-hidden').prependTo(sidebar); + } else if ( ( mq == 'tablet' || mq == 'desktop') && topNavigation.parents('.cd-side-nav').length > 0 ) { + detachElements(); + searchForm.insertAfter(header.find('.cd-logo')); + topNavigation.appendTo(header.find('.cd-nav')); + } + checkSelected(mq); + resizing = false; } - }); - //mobile only - open sidebar when user clicks the hamburger menu - sidebarTrigger.on('click', function(event){ - event.preventDefault(); - $([sidebar, sidebarTrigger]).toggleClass('nav-is-visible'); - }); + //on window scrolling - fix sidebar nav + var scrolling = false; + checkScrollbarPosition(); + $(window).on('scroll', function(){ + if(!scrolling ) { + (!window.requestAnimationFrame) ? setTimeout(checkScrollbarPosition, 300) : window.requestAnimationFrame(checkScrollbarPosition); + scrolling = true; + } + }); - //click on item and show submenu - $('.has-children > a').on('click', function(event){ - var mq = checkMQ(), - selectedItem = $(this); - if( mq == 'mobile' || mq == 'tablet' ) { + //mobile only - open sidebar when user clicks the hamburger menu + sidebarTrigger.on('click', function(event){ event.preventDefault(); - if( selectedItem.parent('li').hasClass('selected')) { - selectedItem.parent('li').removeClass('selected'); - } else { + $([sidebar, sidebarTrigger]).toggleClass('nav-is-visible'); + }); + + //click on item and show submenu + $('.has-children > a').on('click', function(event){ + var mq = checkMQ(), + selectedItem = $(this); + if (mq=='mobile' || mq=='tablet') { + event.preventDefault(); + if (selectedItem.parent('li').hasClass('selected')) { + selectedItem.parent('li').removeClass('selected'); + } else { + sidebar.find('.has-children.selected').removeClass('selected'); + accountInfo.removeClass('selected'); + selectedItem.parents('li').addClass('selected'); + } + } + }); + + //click on account and show submenu - desktop version only + accountInfo.children('a').on('click', function(event){ + var mq = checkMQ(), + selectedItem = $(this); + if(mq == 'desktop') { + event.preventDefault(); + accountInfo.toggleClass('selected'); + sidebar.find('.has-children.selected').removeClass('selected'); + } + }); + + $(document).on('click', function(event){ + if( !$(event.target).is('.has-children a') ) { sidebar.find('.has-children.selected').removeClass('selected'); accountInfo.removeClass('selected'); - selectedItem.parent('li').addClass('selected'); } - } - }); + }); - //click on account and show submenu - desktop version only - accountInfo.children('a').on('click', function(event){ - var mq = checkMQ(), - selectedItem = $(this); - if( mq == 'desktop') { - event.preventDefault(); - accountInfo.toggleClass('selected'); - sidebar.find('.has-children.selected').removeClass('selected'); - } - }); + //on desktop - differentiate between a user trying to hover over a dropdown item vs trying to navigate into a submenu's contents + sidebar.children('ul').menuAim({ + activate: function(row) { + $(row).addClass('hover'); + }, + deactivate: function(row) { + $(row).removeClass('hover'); + }, + exitMenu: function() { + sidebar.find('.hover').removeClass('hover'); + return true; + }, + submenuSelector: '.has-children', + }); - $(document).on('click', function(event){ - if( !$(event.target).is('.has-children a') ) { - sidebar.find('.has-children.selected').removeClass('selected'); - accountInfo.removeClass('selected'); + function detachElements() { + topNavigation.detach(); + searchForm.detach(); } - }); - - //on desktop - differentiate between a user trying to hover over a dropdown item vs trying to navigate into a submenu's contents - sidebar.children('ul').menuAim({ - activate: function(row) { - $(row).addClass('hover'); - }, - deactivate: function(row) { - $(row).removeClass('hover'); - }, - exitMenu: function() { - sidebar.find('.hover').removeClass('hover'); - return true; - }, - submenuSelector: ".has-children", - }); - function checkMQ() { - //check if mobile or desktop device - return window.getComputedStyle(document.querySelector('.cd-main-content'), '::before').getPropertyValue('content').replace(/'/g, "").replace(/"/g, ""); - } - - function moveNavigation(){ - var mq = checkMQ(); - if ( mq == 'mobile' && topNavigation.parents('.cd-side-nav').length == 0 ) { - detachElements(); - topNavigation.appendTo(sidebar); - searchForm.removeClass('is-hidden').prependTo(sidebar); - } else if ( ( mq == 'tablet' || mq == 'desktop') && topNavigation.parents('.cd-side-nav').length > 0 ) { - detachElements(); - searchForm.insertAfter(header.find('.cd-logo')); - topNavigation.appendTo(header.find('.cd-nav')); + function checkSelected(mq) { + //on desktop, remove selected class from items selected on mobile/tablet version + if( mq == 'desktop' ) $('.has-children.selected').removeClass('selected'); } - checkSelected(mq); - resizing = false; - } - function detachElements() { - topNavigation.detach(); - searchForm.detach(); - } - - function checkSelected(mq) { - //on desktop, remove selected class from items selected on mobile/tablet version - if( mq == 'desktop' ) $('.has-children.selected').removeClass('selected'); - } + function checkScrollbarPosition() { + var mq = checkMQ(); - function checkScrollbarPosition() { - var mq = checkMQ(); + if( mq != 'mobile' ) { + var sidebarHeight = sidebar.outerHeight(), + windowHeight = $(window).height(), + mainContentHeight = mainContent.outerHeight(), + scrollTop = $(window).scrollTop(); - if( mq != 'mobile' ) { - var sidebarHeight = sidebar.outerHeight(), - windowHeight = $(window).height(), - mainContentHeight = mainContent.outerHeight(), - scrollTop = $(window).scrollTop(); - - ( ( scrollTop + windowHeight > sidebarHeight ) && ( mainContentHeight - sidebarHeight != 0 ) ) ? sidebar.addClass('is-fixed').css('bottom', 0) : sidebar.removeClass('is-fixed').attr('style', ''); + ( ( scrollTop + windowHeight > sidebarHeight ) && ( mainContentHeight - sidebarHeight != 0 ) ) ? sidebar.addClass('is-fixed').css('bottom', 0) : sidebar.removeClass('is-fixed').attr('style', ''); + } + scrolling = false; } - scrolling = false; } }); //confirm delete - OLD @@ -323,7 +320,7 @@ function ConfirmDelete(name, url) { } //confirm delete function Confirm(question, answer, action) { - $.facebox('

    ' + question + '

     
    '); + $.facebox('

    ' + question + '

     
    '); $('body').unbind('keypress').keypress(function(e) { if (e.which==13) { $('#yes').click(); diff --git a/WebAdmin/modern/js/facebox.js b/WebAdmin/modern/js/facebox.js index 3acd533..5280aee 100644 --- a/WebAdmin/modern/js/facebox.js +++ b/WebAdmin/modern/js/facebox.js @@ -93,7 +93,7 @@ preload.push(new Image()); preload.slice(-1).src = $(this).css('background-image').replace(/url\((.+)\)/, '$1'); }); - $('#facebox .close').click($.facebox.close).append(''); + $('#facebox .close').click($.facebox.close).append(''); } function makeCompatible() { var $s = $.facebox.settings; @@ -120,7 +120,7 @@ function fillFaceboxFromImage(href, klass) { var image = new Image(); image.onload = function() { - $.facebox.reveal('
    ', klass); + $.facebox.reveal('
    ', klass); }; image.src = href; } diff --git a/WebAdmin/style.css b/WebAdmin/style.css deleted file mode 100644 index 03b4aa2..0000000 --- a/WebAdmin/style.css +++ /dev/null @@ -1,134 +0,0 @@ -#mainbody -{ - border-left: 1px; - border-right: 1px; -} - -#content1 -{ - float: left; -} - -#content2 -{ - float: right; -} - - -html { - overflow: -moz-scrollbars-vertical; - overflow: scroll; -} - -body { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - font-size: 10px; -} - -p { - font-size: 12px; -} - -.date { - color: #999999; - font-size: 10px; - font-weight: bold; -} - -h1 { - font-size: 16px; - color: #3F5363; - font-weight: bold; -} - -h2 { - font-size: 14px; - color: #3F5363; - font-weight: bold; -} - -h3 { - font-size: 12px; - color: #000000; - font-weight: bold; -} - -h4 { - font-size: 12px; - color: #000000; - font-style: italic; - font-weight: normal; -} - - -input { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - font-size: 12px; -} - -select { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - font-size: 12px; -} - - -textarea { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - font-size: 12px; - -} - -a { - color: #5F7383; - text-decoration: none; -} - -a:hover { - color: #5F7383; - text-decoration: underline; -} - -td { - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - font-size: 12px; -} - -.mainborder { - border-width: 4px; - border-style: solid; - border-color: #DDDDDD; - padding: 10px; -} - - -/* for the menu tree */ -.dtree { - font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; - font-size: 10px; - color: #666; - white-space: nowrap; - overflow: hidden; - width: 230px; -} -.dtree img { - border: 0px; - vertical-align: middle; -} -.dtree a { - color: #333; - text-decoration: none; -} - -.dtree a.node, .dtree a.nodeSel { - padding: 1px 2px 1px 2px; -} -.dtree a.node:hover, .dtree a.nodeSel:hover { - color: #333; - text-decoration: underline; -} -.dtree a.nodeSel { - background-color: #c0d2ec; -} -.dtree .clip { - overflow: hidden; -}