From 06edfd868603bb622ec17d609214f4b680f8e011 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Thu, 29 Nov 2012 09:04:14 -0500 Subject: [PATCH] - Added options to disable combobox and load indicator in Interface Config (default is on). - Bugfix: sys.ini and server.ini: if checkbox is not checked, write default value from tform file into database. --- interface/web/admin/lib/lang/en_system_config.lng | 1 install/tpl/system.ini.master | 4 + interface/web/admin/lib/lang/de_system_config.lng | 2 interface/web/sites/ajax_get_json.php | 20 ++++++ interface/web/admin/server_config_edit.php | 10 +++ interface/web/admin/system_config_edit.php | 10 +++ interface/web/admin/form/system_config.tform.php | 12 ++++ interface/web/admin/templates/system_config_misc_edit.htm | 12 ++++ interface/web/js/scrigo.js.php | 60 ++++++++++++-------- 9 files changed, 107 insertions(+), 24 deletions(-) diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index f72bf4d..3aefb78 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -34,4 +34,8 @@ dashboard_atom_url_reseller=http://www.ispconfig.org/atom dashboard_atom_url_client=http://www.ispconfig.org/atom monitor_key= +tab_change_discard=n +tab_change_warning=n +use_loadindicator=y +use_combobox=y maintenance_mode=n diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 7020ee2..faac1f7 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -384,6 +384,18 @@ 'default' => 'n', 'value' => array(0 => 'n',1 => 'y') ), + 'use_loadindicator' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n',1 => 'y') + ), + 'use_combobox' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n',1 => 'y') + ), 'maintenance_mode' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index e9c854b..cf517a7 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -41,4 +41,6 @@ $wb['smtp_user_txt'] = 'SMTP Benutzer'; $wb['smtp_pass_txt'] = 'SMTP Passwort'; $wb['smtp_crypt_txt'] = 'SSL/TLS verschlüsselte Verbindung für SMTP'; +$wb['use_combobox_txt'] = 'jQuery UI Combobox benutzen'; +$wb['use_loadindicator_txt'] = 'Laden-Grafik anzeigen'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 6957bc5..dd2dc3c 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -42,4 +42,5 @@ $wb['smtp_pass_txt'] = 'SMTP password'; $wb['smtp_crypt_txt'] = 'Use SSL/TLS encrypted connection for SMTP'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; +$wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; ?> diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php index c034da1..2ebf0a1 100644 --- a/interface/web/admin/server_config_edit.php +++ b/interface/web/admin/server_config_edit.php @@ -81,6 +81,16 @@ $server_id = $this->id; $server_config_array = $app->getconf->get_server_config($server_id); + + foreach($app->tform->formDef['tabs'][$section]['fields'] as $key => $field) { + if ($field['formtype'] == 'CHECKBOX') { + if($this->dataRecord[$key] == '') { + // if a checkbox is not set, we set it to the unchecked value + $this->dataRecord[$key] = $field['value'][0]; + } + } + } + $server_config_array[$section] = $app->tform->encode($this->dataRecord,$section); $server_config_str = $app->ini_parser->get_ini_string($server_config_array); diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php index 0a75028..2eb513d 100644 --- a/interface/web/admin/system_config_edit.php +++ b/interface/web/admin/system_config_edit.php @@ -105,6 +105,16 @@ $section = $app->tform->getCurrentTab(); $server_config_array = $app->getconf->get_global_config(); + + foreach($app->tform->formDef['tabs'][$section]['fields'] as $key => $field) { + if ($field['formtype'] == 'CHECKBOX') { + if($this->dataRecord[$key] == '') { + // if a checkbox is not set, we set it to the unchecked value + $this->dataRecord[$key] = $field['value'][0]; + } + } + } + $new_config = $app->tform->encode($this->dataRecord,$section); if($section == 'sites' && $new_config['vhost_subdomains'] != 'y' && $server_config_array['vhost_subdomains'] == 'y') { // check for existing vhost subdomains, if found the mode cannot be disabled diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm index 3bdd72e..cb564fe 100644 --- a/interface/web/admin/templates/system_config_misc_edit.htm +++ b/interface/web/admin/templates/system_config_misc_edit.htm @@ -33,6 +33,18 @@ {tmpl_var name='tab_change_warning'}<br/>{tmpl_var name='tab_change_warning_note_txt'} </div> </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='use_loadindicator_txt'}</p> + <div class="multiField"> + {tmpl_var name='use_loadindicator'} + </div> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='use_combobox_txt'}</p> + <div class="multiField"> + {tmpl_var name='use_combobox'} + </div> + </div> <div class="ctrlHolder"> <p class="label">{tmpl_var name='maintenance_mode_txt'}</p> <div class="multiField"> diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php index 1051905..ab31522 100644 --- a/interface/web/js/scrigo.js.php +++ b/interface/web/js/scrigo.js.php @@ -24,38 +24,50 @@ } function showLoadIndicator() { - requestsRunning += 1; + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {type : "get_use_loadindicator"}, function(data) { + if(data.useloadindicator == "y"){ + requestsRunning += 1; - if(requestsRunning < 2) { - var indicator = jQuery('#ajaxloader'); - if(indicator.length < 1) { - indicator = jQuery('<div id="ajaxloader" style="display: none;"></div>'); - indicator.appendTo('body'); - } - var parent = jQuery('#content'); - if(parent.length < 1) return; - indicatorCompleted = false; + if(requestsRunning < 2) { + var indicator = jQuery('#ajaxloader'); + if(indicator.length < 1) { + indicator = jQuery('<div id="ajaxloader" style="display: none;"></div>'); + indicator.appendTo('body'); + } + var parent = jQuery('#content'); + if(parent.length < 1) return; + indicatorCompleted = false; - var atx = parent.offset().left + 150; //((parent.outerWidth(true) - indicator.outerWidth(true)) / 2); - var aty = parent.offset().top + 150; - indicator.css( {'left': atx, 'top': aty } ).fadeIn('fast', function() { - // check if loader should be hidden immediately - indicatorCompleted = true; - if(requestsRunning < 1) $(this).fadeOut('fast', function() { $(this).hide();}); - }); - } + var atx = parent.offset().left + 150; //((parent.outerWidth(true) - indicator.outerWidth(true)) / 2); + var aty = parent.offset().top + 150; + indicator.css( {'left': atx, 'top': aty } ).fadeIn('fast', function() { + // check if loader should be hidden immediately + indicatorCompleted = true; + if(requestsRunning < 1) $(this).fadeOut('fast', function() { $(this).hide();}); + }); + } + } + }); } function hideLoadIndicator() { - requestsRunning -= 1; - if(requestsRunning < 1) { - requestsRunning = 0; // just for the case... - if(indicatorCompleted == true) jQuery('#ajaxloader').fadeOut('fast', function() { jQuery('#ajaxloader').hide(); } ); - } + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {type : "get_use_loadindicator"}, function(data) { + if(data.useloadindicator == "y"){ + requestsRunning -= 1; + if(requestsRunning < 1) { + requestsRunning = 0; // just for the case... + if(indicatorCompleted == true) jQuery('#ajaxloader').fadeOut('fast', function() { jQuery('#ajaxloader').hide(); } ); + } + } + }); } function onAfterContentLoad() { - $('#pageContent').find("select").combobox(); + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {type : "get_use_combobox"}, function(data) { + if(data.usecombobox == "y"){ + $('#pageContent').find("select").combobox(); + } + }); } function loadContentRefresh(pagename) { diff --git a/interface/web/sites/ajax_get_json.php b/interface/web/sites/ajax_get_json.php index 1194596..f7bbc71 100644 --- a/interface/web/sites/ajax_get_json.php +++ b/interface/web/sites/ajax_get_json.php @@ -148,6 +148,26 @@ if(substr($json,-1) == ',') $json = substr($json,0,-1); $json .= '}'; } + + if($type == 'get_use_combobox'){ + $json = '{"usecombobox":"'; + $use_combobox = 'y'; + $server_config_array = $app->getconf->get_global_config(); + if($server_config_array['misc']['use_combobox'] != 'y') $use_combobox = 'n'; + $json .= $use_combobox; + unset($server_config_array); + $json .= '"}'; + } + + if($type == 'get_use_loadindicator'){ + $json = '{"useloadindicator":"'; + $use_loadindicator = 'y'; + $server_config_array = $app->getconf->get_global_config(); + if($server_config_array['misc']['use_loadindicator'] != 'y') $use_loadindicator = 'n'; + $json .= $use_loadindicator; + unset($server_config_array); + $json .= '"}'; + } //} -- Gitblit v1.9.1