From 73ec6bfbfbfb5a03162777632a77c05093d92549 Mon Sep 17 00:00:00 2001 From: mcramer Date: Fri, 24 Aug 2012 12:51:46 +0000 Subject: [PATCH] Fixed theme paths Implemented: FS#2388 - Optional confirm window on changing tabs --- interface/lib/lang/de.lng | 2 + interface/lib/lang/en.lng | 2 + .../web/admin/form/system_config.tform.php | 12 ++++++ .../web/admin/lib/lang/de_system_config.lng | 3 ++ .../web/admin/lib/lang/en_system_config.lng | 3 ++ .../templates/system_config_misc_edit.htm | 12 ++++++ interface/web/index.php | 15 ++++++++ interface/web/js/scrigo.js.php | 37 ++++++++++++++++++- .../web/themes/default/templates/main.tpl.htm | 2 + .../default/templates/tabbed_form.tpl.htm | 4 +- 10 files changed, 88 insertions(+), 4 deletions(-) diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng index 9044facf6..050fbb25f 100644 --- a/interface/lib/lang/de.lng +++ b/interface/lib/lang/de.lng @@ -77,4 +77,6 @@ $wb['globalsearch_noresults_text_txt'] = 'Keine Treffer.'; $wb['globalsearch_noresults_limit_txt'] = '0 Treffer'; $wb['globalsearch_searchfield_watermark_txt'] = 'Suche'; $wb['globalsearch_suggestions_text_txt'] = 'Vorschläge'; +$wb['global_tabchange_warning_txt'] = 'Die Eingaben in diesem Tab werden gespeichert, wenn Sie OK klicken, bei Abbrechen werden die Änderungen verworfen.'; +$wb['global_tabchange_discard_txt'] = 'Achtung, Sie haben ungespeicherte Änderungen in diesem Tab. Wenn Sie fortfahren werden die Änderungen verworfen.'; ?> diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng index ea7ab5257..aad4f5cc0 100644 --- a/interface/lib/lang/en.lng +++ b/interface/lib/lang/en.lng @@ -77,4 +77,6 @@ $wb['globalsearch_noresults_text_txt'] = "No results."; $wb['globalsearch_noresults_limit_txt'] = "0 results"; $wb['globalsearch_searchfield_watermark_txt'] = "Search"; $wb['globalsearch_suggestions_text_txt'] = "Suggestions"; +$wb['global_tabchange_warning_txt'] = 'Changed data in this tab will be changed if you press OK. On cancel they will be discarded.'; +$wb['global_tabchange_discard_txt'] = 'You have unsaved changes in this tab. Changes will be discarded if you continue.'; ?> diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index efabdd0ff..1317bf77c 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -334,6 +334,18 @@ $form["tabs"]['misc'] = array ( 'default' => '', 'value' => '' ), + 'tab_change_discard' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'tab_change_warning' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + '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 db46bfd38..9e4782d9e 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -2,6 +2,9 @@ $wb['system_config_desc_txt'] = ''; $wb['smtp_missing_admin_mail_txt'] = 'Bitte geben Sie die Administrator E-Mail und den Namen ein, wenn Sie SMTP Versand nutzen wollen.'; $wb['warning'] = 'Bearbeiten Sie diese Werte sorgfältig! Entfernen Sie die Prefixe nicht auf Systemen mit mehr als einem Client.'; +$wb['tab_change_warning_txt'] = 'Tab-Wechsel-Warnung'; +$wb['tab_change_discard_txt'] = 'Verwerfe Änderungen bei Tab-Wechsel'; +$wb['tab_change_warning_note_txt'] = 'Zeigt eine Warnung an, wenn der Tab in einem Formular gewechselt wird und Daten geändert wurden.'; $wb['dbname_prefix_txt'] = 'Datenbanknamen Prefix'; $wb['dbuser_prefix_txt'] = 'Datenbankbenutzer Prefix'; $wb['shelluser_prefix_txt'] = 'Shellbenutzer Prefix'; diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 1e03f8bc6..b774dd020 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -5,6 +5,9 @@ $wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)'; $wb['dashboard_atom_url_reseller_txt'] = 'Dashboard atom feed URL (reseller)'; $wb['dashboard_atom_url_client_txt'] = 'Dashboard atom feed URL (client)'; $wb["warning"] = 'Edit these values carefully! Do not remove the prefixes on a systems with more then one client.'; +$wb['tab_change_discard_txt'] = 'Discard changes on tab change'; +$wb['tab_change_warning_txt'] = 'Tab change warning'; +$wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data have been altered by the user.'; $wb["dbname_prefix_txt"] = 'Database name prefix'; $wb["dbuser_prefix_txt"] = 'Database user prefix'; $wb["shelluser_prefix_txt"] = 'Shell user prefix'; diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm index 31350cdb9..dfb19eb5b 100644 --- a/interface/web/admin/templates/system_config_misc_edit.htm +++ b/interface/web/admin/templates/system_config_misc_edit.htm @@ -21,6 +21,18 @@ +
+

{tmpl_var name='tab_change_discard_txt'}

+
+ {tmpl_var name='tab_change_discard'} +
+
+
+

{tmpl_var name='tab_change_warning_txt'}

+
+ {tmpl_var name='tab_change_warning'}
{tmpl_var name='tab_change_warning_note_txt'} +
+

{tmpl_var name='maintenance_mode_txt'}

diff --git a/interface/web/index.php b/interface/web/index.php index b131396ce..f0a9635ea 100644 --- a/interface/web/index.php +++ b/interface/web/index.php @@ -36,6 +36,21 @@ if(!isset($_SESSION['s']['module']['name'])) $_SESSION['s']['module']['name'] = $app->uses('tpl'); $app->tpl->newTemplate('main.tpl.htm'); +// tab change warning? +// read misc config +$app->uses('getconf'); +$sys_config = $app->getconf->get_global_config('misc'); +if($sys_config['tab_change_warning'] == 'y') { + $app->tpl->setVar('tabchange_warning_enabled', 'y'); + $app->tpl->setVar('global_tabchange_warning_txt', $app->lng('global_tabchange_warning_txt')); +} else { + $app->tpl->setVar('tabchange_warning_enabled', 'n'); +} +$app->tpl->setVar('tabchange_discard_enabled', $sys_config['tab_change_discard']); +if($sys_config['tab_change_discard'] == 'y') { + $app->tpl->setVar('global_tabchange_discard_txt', $app->lng('global_tabchange_discard_txt')); +} + $app->tpl_defaults(); $app->tpl->pparse(); ?> \ No newline at end of file diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php index b44ff1059..e1ef2c346 100644 --- a/interface/web/js/scrigo.js.php +++ b/interface/web/js/scrigo.js.php @@ -4,7 +4,11 @@ $lang = (isset($_SESSION['s']['language']) && $_SESSION['s']['language'] != '')?$_SESSION['s']['language']:'en'; include_once(ISPC_ROOT_PATH.'/web/strengthmeter/lib/lang/'.$lang.'_strengthmeter.lng'); ?> - +var pageFormChanged = false; +var tabChangeWarningTxt = ''; +var tabChangeDiscardTxt = ''; +var tabChangeWarning = false; +var tabChangeDiscard = false; redirect = ''; function reportError(request) { @@ -24,6 +28,7 @@ function loadContentRefresh(pagename) { dataType: "html", success: function(data, textStatus, jqXHR) { jQuery('#pageContent').html(jqXHR.responseText); + pageFormChanged = false; }, error: function() { reportError('Ajax Request was not successful.'+pagename); @@ -87,6 +92,7 @@ function submitLoginForm(formname) { document.location.href = 'index.php'; } else { jQuery('#pageContent').html(jqXHR.responseText); + pageFormChanged = false; } loadMenus(); }, @@ -118,6 +124,7 @@ function submitForm(formname,target) { //window.setTimeout('loadContent(redirect)', 1000); } else { jQuery('#pageContent').html(jqXHR.responseText); + pageFormChanged = false; } }, error: function(jqXHR, textStatus, errorThrown) { @@ -150,6 +157,7 @@ function submitFormConfirm(formname,target,confirmation) { //window.setTimeout('loadContent(redirect)', 1000); } else { jQuery('#pageContent').html(jqXHR.responseText); + pageFormChanged = false; } }, error: function(jqXHR, textStatus, errorThrown) { @@ -202,8 +210,10 @@ function submitUploadForm(formname,target) { } function loadContent(pagename) { + var params = arguments[1]; var pageContentObject2 = jQuery.ajax({ type: "GET", url: pagename, + data: (params ? params : null), dataType: "html", beforeSend: function() { jQuery('#pageContent').html('
'); @@ -222,6 +232,7 @@ function loadContent(pagename) { //jQuery.each(reponseScript, function(idx, val) { eval(val.text); } ); jQuery('#pageContent').html(jqXHR.responseText); + pageFormChanged = false; } }, error: function() { @@ -242,6 +253,7 @@ function loadInitContent() { loadContent(parts[1]); } else { jQuery('#pageContent').html(jqXHR.responseText); + pageFormChanged = false; } }, error: function() { @@ -293,7 +305,28 @@ function loadMenus() { function changeTab(tab,target) { //document.forms[0].next_tab.value = tab; document.pageForm.next_tab.value = tab; - submitForm('pageForm',target); + + var id = document.pageForm.id.value; + if(tabChangeDiscard == 'y') { + if(id && (pageFormChanged == false || window.confirm(tabChangeDiscardTxt))) { + var next_tab = tab; + loadContent(target, {'next_tab': next_tab, 'id': id}); + } else { + return false; + } + } else { + if(id && tabChangeWarning == 'y' && pageFormChanged == true) { + if(window.confirm(tabChangeWarningTxt)) { + submitForm('pageForm', target); + } else { + var next_tab = tab; + var id = document.pageForm.id.value; + loadContent(target, {'next_tab': next_tab, 'id': id}); + } + } else { + submitForm('pageForm',target); + } + } } function del_record(link,confirmation) { diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm index a96c87677..9055b168c 100644 --- a/interface/web/themes/default/templates/main.tpl.htm +++ b/interface/web/themes/default/templates/main.tpl.htm @@ -44,8 +44,10 @@ jQuery('.ttip').tipsy({live: true, gravity: 'ne', html: true}); + tabChangeDiscard = ''; tabChangeWarningTxt = ''; + tabChangeDiscardTxt = ''; }); diff --git a/interface/web/themes/default/templates/tabbed_form.tpl.htm b/interface/web/themes/default/templates/tabbed_form.tpl.htm index 2890e1b17..08002d528 100644 --- a/interface/web/themes/default/templates/tabbed_form.tpl.htm +++ b/interface/web/themes/default/templates/tabbed_form.tpl.htm @@ -5,9 +5,9 @@
    -
  • +
  • -
  • +
-- GitLab