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