Skip to content

Commit 73ec6bf

Browse files
author
mcramer
committed
Fixed theme paths
Implemented: FS#2388 - Optional confirm window on changing tabs
1 parent 76a4f75 commit 73ec6bf

File tree

10 files changed

+88
-4
lines changed

10 files changed

+88
-4
lines changed

interface/lib/lang/de.lng

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,6 @@ $wb['globalsearch_noresults_text_txt'] = 'Keine Treffer.';
7777
$wb['globalsearch_noresults_limit_txt'] = '0 Treffer';
7878
$wb['globalsearch_searchfield_watermark_txt'] = 'Suche';
7979
$wb['globalsearch_suggestions_text_txt'] = 'Vorschläge';
80+
$wb['global_tabchange_warning_txt'] = 'Die Eingaben in diesem Tab werden gespeichert, wenn Sie OK klicken, bei Abbrechen werden die Änderungen verworfen.';
81+
$wb['global_tabchange_discard_txt'] = 'Achtung, Sie haben ungespeicherte Änderungen in diesem Tab. Wenn Sie fortfahren werden die Änderungen verworfen.';
8082
?>

interface/lib/lang/en.lng

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,6 @@ $wb['globalsearch_noresults_text_txt'] = "No results.";
7777
$wb['globalsearch_noresults_limit_txt'] = "0 results";
7878
$wb['globalsearch_searchfield_watermark_txt'] = "Search";
7979
$wb['globalsearch_suggestions_text_txt'] = "Suggestions";
80+
$wb['global_tabchange_warning_txt'] = 'Changed data in this tab will be changed if you press OK. On cancel they will be discarded.';
81+
$wb['global_tabchange_discard_txt'] = 'You have unsaved changes in this tab. Changes will be discarded if you continue.';
8082
?>

interface/web/admin/form/system_config.tform.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,18 @@
334334
'default' => '',
335335
'value' => ''
336336
),
337+
'tab_change_discard' => array (
338+
'datatype' => 'VARCHAR',
339+
'formtype' => 'CHECKBOX',
340+
'default' => 'n',
341+
'value' => array(0 => 'n',1 => 'y')
342+
),
343+
'tab_change_warning' => array (
344+
'datatype' => 'VARCHAR',
345+
'formtype' => 'CHECKBOX',
346+
'default' => 'n',
347+
'value' => array(0 => 'n',1 => 'y')
348+
),
337349
'maintenance_mode' => array (
338350
'datatype' => 'VARCHAR',
339351
'formtype' => 'CHECKBOX',

interface/web/admin/lib/lang/de_system_config.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
$wb['system_config_desc_txt'] = '';
33
$wb['smtp_missing_admin_mail_txt'] = 'Bitte geben Sie die Administrator E-Mail und den Namen ein, wenn Sie SMTP Versand nutzen wollen.';
44
$wb['warning'] = 'Bearbeiten Sie diese Werte sorgfältig! Entfernen Sie die Prefixe nicht auf Systemen mit mehr als einem Client.';
5+
$wb['tab_change_warning_txt'] = 'Tab-Wechsel-Warnung';
6+
$wb['tab_change_discard_txt'] = 'Verwerfe Änderungen bei Tab-Wechsel';
7+
$wb['tab_change_warning_note_txt'] = 'Zeigt eine Warnung an, wenn der Tab in einem Formular gewechselt wird und Daten geändert wurden.';
58
$wb['dbname_prefix_txt'] = 'Datenbanknamen Prefix';
69
$wb['dbuser_prefix_txt'] = 'Datenbankbenutzer Prefix';
710
$wb['shelluser_prefix_txt'] = 'Shellbenutzer Prefix';

interface/web/admin/lib/lang/en_system_config.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ $wb['dashboard_atom_url_admin_txt'] = 'Dashboard atom feed URL (admin)';
55
$wb['dashboard_atom_url_reseller_txt'] = 'Dashboard atom feed URL (reseller)';
66
$wb['dashboard_atom_url_client_txt'] = 'Dashboard atom feed URL (client)';
77
$wb["warning"] = 'Edit these values carefully! Do not remove the prefixes on a systems with more then one client.';
8+
$wb['tab_change_discard_txt'] = 'Discard changes on tab change';
9+
$wb['tab_change_warning_txt'] = 'Tab change warning';
10+
$wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data have been altered by the user.';
811
$wb["dbname_prefix_txt"] = 'Database name prefix';
912
$wb["dbuser_prefix_txt"] = 'Database user prefix';
1013
$wb["shelluser_prefix_txt"] = 'Shell user prefix';

interface/web/admin/templates/system_config_misc_edit.htm

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,18 @@ <h2><tmpl_var name="list_head_txt"></h2>
2121
<label for="monitor_key">{tmpl_var name='monitor_key_txt'}</label>
2222
<input name="monitor_key" id="monitor_key" value="{tmpl_var name='monitor_key'}" size="" maxlength="" type="text" class="textInput" />
2323
</div>
24+
<div class="ctrlHolder">
25+
<p class="label">{tmpl_var name='tab_change_discard_txt'}</p>
26+
<div class="multiField">
27+
{tmpl_var name='tab_change_discard'}
28+
</div>
29+
</div>
30+
<div class="ctrlHolder">
31+
<p class="label">{tmpl_var name='tab_change_warning_txt'}</p>
32+
<div class="multiField">
33+
{tmpl_var name='tab_change_warning'}<br/>{tmpl_var name='tab_change_warning_note_txt'}
34+
</div>
35+
</div>
2436
<div class="ctrlHolder">
2537
<p class="label">{tmpl_var name='maintenance_mode_txt'}</p>
2638
<div class="multiField">

interface/web/index.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,21 @@
3636
$app->uses('tpl');
3737
$app->tpl->newTemplate('main.tpl.htm');
3838

39+
// tab change warning?
40+
// read misc config
41+
$app->uses('getconf');
42+
$sys_config = $app->getconf->get_global_config('misc');
43+
if($sys_config['tab_change_warning'] == 'y') {
44+
$app->tpl->setVar('tabchange_warning_enabled', 'y');
45+
$app->tpl->setVar('global_tabchange_warning_txt', $app->lng('global_tabchange_warning_txt'));
46+
} else {
47+
$app->tpl->setVar('tabchange_warning_enabled', 'n');
48+
}
49+
$app->tpl->setVar('tabchange_discard_enabled', $sys_config['tab_change_discard']);
50+
if($sys_config['tab_change_discard'] == 'y') {
51+
$app->tpl->setVar('global_tabchange_discard_txt', $app->lng('global_tabchange_discard_txt'));
52+
}
53+
3954
$app->tpl_defaults();
4055
$app->tpl->pparse();
4156
?>

interface/web/js/scrigo.js.php

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
$lang = (isset($_SESSION['s']['language']) && $_SESSION['s']['language'] != '')?$_SESSION['s']['language']:'en';
55
include_once(ISPC_ROOT_PATH.'/web/strengthmeter/lib/lang/'.$lang.'_strengthmeter.lng');
66
?>
7-
7+
var pageFormChanged = false;
8+
var tabChangeWarningTxt = '';
9+
var tabChangeDiscardTxt = '';
10+
var tabChangeWarning = false;
11+
var tabChangeDiscard = false;
812
redirect = '';
913

1014
function reportError(request) {
@@ -24,6 +28,7 @@ function loadContentRefresh(pagename) {
2428
dataType: "html",
2529
success: function(data, textStatus, jqXHR) {
2630
jQuery('#pageContent').html(jqXHR.responseText);
31+
pageFormChanged = false;
2732
},
2833
error: function() {
2934
reportError('Ajax Request was not successful.'+pagename);
@@ -87,6 +92,7 @@ function submitLoginForm(formname) {
8792
document.location.href = 'index.php';
8893
} else {
8994
jQuery('#pageContent').html(jqXHR.responseText);
95+
pageFormChanged = false;
9096
}
9197
loadMenus();
9298
},
@@ -118,6 +124,7 @@ function submitForm(formname,target) {
118124
//window.setTimeout('loadContent(redirect)', 1000);
119125
} else {
120126
jQuery('#pageContent').html(jqXHR.responseText);
127+
pageFormChanged = false;
121128
}
122129
},
123130
error: function(jqXHR, textStatus, errorThrown) {
@@ -150,6 +157,7 @@ function submitFormConfirm(formname,target,confirmation) {
150157
//window.setTimeout('loadContent(redirect)', 1000);
151158
} else {
152159
jQuery('#pageContent').html(jqXHR.responseText);
160+
pageFormChanged = false;
153161
}
154162
},
155163
error: function(jqXHR, textStatus, errorThrown) {
@@ -202,8 +210,10 @@ function submitUploadForm(formname,target) {
202210
}
203211

204212
function loadContent(pagename) {
213+
var params = arguments[1];
205214
var pageContentObject2 = jQuery.ajax({ type: "GET",
206215
url: pagename,
216+
data: (params ? params : null),
207217
dataType: "html",
208218
beforeSend: function() {
209219
jQuery('#pageContent').html('<div id="ajaxloader"><img src="themes/default/images/ajax-loader.gif" /></div>');
@@ -222,6 +232,7 @@ function loadContent(pagename) {
222232
//jQuery.each(reponseScript, function(idx, val) { eval(val.text); } );
223233

224234
jQuery('#pageContent').html(jqXHR.responseText);
235+
pageFormChanged = false;
225236
}
226237
},
227238
error: function() {
@@ -242,6 +253,7 @@ function loadInitContent() {
242253
loadContent(parts[1]);
243254
} else {
244255
jQuery('#pageContent').html(jqXHR.responseText);
256+
pageFormChanged = false;
245257
}
246258
},
247259
error: function() {
@@ -293,7 +305,28 @@ function loadMenus() {
293305
function changeTab(tab,target) {
294306
//document.forms[0].next_tab.value = tab;
295307
document.pageForm.next_tab.value = tab;
296-
submitForm('pageForm',target);
308+
309+
var id = document.pageForm.id.value;
310+
if(tabChangeDiscard == 'y') {
311+
if(id && (pageFormChanged == false || window.confirm(tabChangeDiscardTxt))) {
312+
var next_tab = tab;
313+
loadContent(target, {'next_tab': next_tab, 'id': id});
314+
} else {
315+
return false;
316+
}
317+
} else {
318+
if(id && tabChangeWarning == 'y' && pageFormChanged == true) {
319+
if(window.confirm(tabChangeWarningTxt)) {
320+
submitForm('pageForm', target);
321+
} else {
322+
var next_tab = tab;
323+
var id = document.pageForm.id.value;
324+
loadContent(target, {'next_tab': next_tab, 'id': id});
325+
}
326+
} else {
327+
submitForm('pageForm',target);
328+
}
329+
}
297330
}
298331

299332
function del_record(link,confirmation) {

interface/web/themes/default/templates/main.tpl.htm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,10 @@
4444

4545
jQuery('.ttip').tipsy({live: true, gravity: 'ne', html: true});
4646

47+
tabChangeDiscard = '<tmpl_var name="tabchange_discard_enabled>';
4748
tabChangeWarning = '<tmpl_var name="tabchange_warning_enabled>';
4849
tabChangeWarningTxt = '<tmpl_var name="global_tabchange_warning_txt">';
50+
tabChangeDiscardTxt = '<tmpl_var name="global_tabchange_discard_txt">';
4951
});
5052

5153

interface/web/themes/default/templates/tabbed_form.tpl.htm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ <h2><tmpl_var name="form_hint"></h2>
55
<ul>
66
<tmpl_loop name="formTab">
77
<tmpl_if name="active">
8-
<li class="active"><a href="javascript:changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a></li>
8+
<li class="active"><a href="#" onclick="return changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a></li>
99
<tmpl_else>
10-
<li><a href="javascript:changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a></li>
10+
<li><a href="#" onclick="return changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a></li>
1111
</tmpl_if>
1212
</tmpl_loop>
1313
</ul>

0 commit comments

Comments
 (0)