diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 50d627c2559f7c294b1c2f7dd6a90b898ce3a4f2..d04923bd3a87f26b3e44740f10f2fef88360cd4d 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -409,6 +409,42 @@ $form["tabs"]['misc'] = array ( 'default' => 'n', 'value' => array(0 => 'n',1 => 'y') ), + 'admin_dashlets_left' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + 'admin_dashlets_right' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + 'reseller_dashlets_left' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + 'reseller_dashlets_right' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + 'client_dashlets_left' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), + 'client_dashlets_right' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '' + ), ################################## # ENDE Datatable fields ################################## diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index cb82174e19a71d3976a00cc67deb58269ef796fb..0baebc9897d80e0c897e08d4ca2c96ff5db4e9f2 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -52,4 +52,11 @@ $wb['mailbox_show_custom_rules_tab_txt'] = 'Zeige Benutzerregel Reiter in E-Mail $wb['webmail_url_error_regex'] = 'Falsche Webmail URL'; $wb['phpmyadmin_url_note_txt'] = 'Platzhalter:'; $wb['webmail_url_note_txt'] = 'Platzhalter:'; +$wb['available_dashlets_note_txt'] = 'Verfügbare Dashlets:'; +$wb['admin_dashlets_left_txt'] = 'Admin-Dashlets links'; +$wb['admin_dashlets_right_txt'] = 'Admin-Dashlets rechts'; +$wb['reseller_dashlets_left_txt'] = 'Reseller-Dashlets links'; +$wb['reseller_dashlets_right_txt'] = 'Reseller-Dashlets rechts'; +$wb['client_dashlets_left_txt'] = 'Kunden-Dashlets links'; +$wb['client_dashlets_right_txt'] = 'Kunden-Dashlets rechts'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index a2b06bec82458157c0a72ff197aad9d7468c68bc..1b370b469f0cddca80aaa58ea9c01918c328c86b 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -52,4 +52,11 @@ $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail a $wb['webmail_url_error_regex'] = 'Invalid webmail URL'; $wb['phpmyadmin_url_note_txt'] = 'Placeholder:'; $wb['webmail_url_note_txt'] = 'Placeholder:'; +$wb['available_dashlets_note_txt'] = 'Available Dashlets:'; +$wb['admin_dashlets_left_txt'] = 'Left Admin Dashlets'; +$wb['admin_dashlets_right_txt'] = 'Right Admin Dashlets'; +$wb['reseller_dashlets_left_txt'] = 'Left Reseller Dashlets'; +$wb['reseller_dashlets_right_txt'] = 'Right Reseller Dashlets'; +$wb['client_dashlets_left_txt'] = 'Left Client Dashlets'; +$wb['client_dashlets_right_txt'] = 'Right Client Dashlets'; ?> diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php index 9bf84d022f1976cd3bc6cce2112e13a96b381b73..c2702c78f74b42fc911035b63952b6df4bc847fc 100644 --- a/interface/web/admin/system_config_edit.php +++ b/interface/web/admin/system_config_edit.php @@ -78,6 +78,24 @@ class page_action extends tform_actions { $app->tpl->setVar($record); } + function onShowEnd() { + global $app, $conf; + + // available dashlets + $available_dashlets_txt = ''; + $handle = @opendir(ISPC_WEB_PATH.'/dashboard/dashlets'); + while ($file = @readdir ($handle)) { + if ($file != '.' && $file != '..' && !is_dir($file)) { + $available_dashlets_txt .= '['.substr($file,0,-4).'] '; + } + } + + if($available_dashlets_txt == '') $available_dashlets_txt = '------'; + $app->tpl->setVar("available_dashlets_txt",$available_dashlets_txt); + + parent::onShowEnd(); + } + function onSubmit() { global $app; diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm index 16f6052c3022367344045d003188882fb3e5faa3..6538236ed823be06a6dfb56d6911f3f60a38426c 100644 --- a/interface/web/admin/templates/system_config_misc_edit.htm +++ b/interface/web/admin/templates/system_config_misc_edit.htm @@ -20,6 +20,30 @@
+
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"} +
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"} +
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"} +
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"} +
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"} +
+
+ +  {tmpl_var name='available_dashlets_note_txt'} {tmpl_var name="available_dashlets_txt"}

{tmpl_var name='tab_change_discard_txt'}

diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php index dae00f8169abba44fe85e7ee287cbbc10106aa9f..0626758d01b08fbe46b929bbbcbd0da13332cf69 100644 --- a/interface/web/dashboard/dashboard.php +++ b/interface/web/dashboard/dashboard.php @@ -157,8 +157,36 @@ while ($file = @readdir ($handle)) { /* Which dashlets in which column */ /******************************************************************************/ -$leftcol_dashlets = array('modules','invoices','quota','mailquota'); -$rightcol_dashlets = array('limits'); +$default_leftcol_dashlets = array('modules','invoices','quota','mailquota'); +$default_rightcol_dashlets = array('limits'); + +$app->uses('getconf'); +$dashlets_config = $app->getconf->get_global_config('misc'); +//* Client: If the logged in user is not admin and has no sub clients (no reseller) +if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $role = 'client'; +//* Reseller: If the logged in user is not admin and has sub clients (is a reseller) +} elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $role = 'reseller'; +//* Admin: If the logged in user is admin +} else { + $role = 'admin'; +} +$dashlets_config[$role.'_dashlets_left'] = trim($dashlets_config[$role.'_dashlets_left']); +$dashlets_config[$role.'_dashlets_right'] = trim($dashlets_config[$role.'_dashlets_right']); + +if($dashlets_config[$role.'_dashlets_left'] != ''){ + preg_match_all('@\[(.*?)\]@', $dashlets_config[$role.'_dashlets_left'], $matches); + $leftcol_dashlets = $matches[1]; +} else { + $leftcol_dashlets = $default_leftcol_dashlets; +} +if($dashlets_config[$role.'_dashlets_right'] != ''){ + preg_match_all('@\[(.*?)\]@', $dashlets_config[$role.'_dashlets_right'], $matches); + $rightcol_dashlets = $matches[1]; +} else { + $rightcol_dashlets = $default_rightcol_dashlets; +} /******************************************************************************/