Index: /Users/mh/Documents/workspace/slimpy/HTML/EN/html/settings.js =================================================================== --- /Users/mh/Documents/workspace/slimpy/HTML/EN/html/settings.js (revision 12253) +++ /Users/mh/Documents/workspace/slimpy/HTML/EN/html/settings.js (working copy) @@ -107,9 +107,9 @@ new Event.observe(window, 'load', function(){ // add event handlers to all fields which have a validator - [%- FOREACH item = validate %] - new Event.observe('[% item %]', 'blur', function(){ prefValidate($('[% item %]')); } ); - [%- END %] + [%- FOREACH pref = validate; IF pref.value %] + new Event.observe('[% pref.key %]', 'blur', function(){ prefValidate($('[% pref.key %]')); } ); + [%- END; END %] // try to redirect all form submissions by return key to the default submit button // listen for keypress events on all form elements except submit @@ -129,15 +129,33 @@ new Event.observe(window, 'resize', function(){resizeSettingsSection();}); new Event.observe('saveSettings', 'click', function(e){ - [%- FOREACH item = validate %] - prefValidate($('[% item %]'), true); - [%- END %] + Event.stop(e); + $('settingsForm').request({ + parameters: { useAJAX: 1 }, + onComplete: function(response) { + var results = parseData(response.responseText); - // if validation fails and user doesn't force the submit, cancel - if (!validateAll && !confirm("[% "SETUP_VALIDATION_FAILED" | string %]")) { - Event.stop(e); - validateAll = true; - } + $('statusarea').update(results['warning']); + resizeSettingsSection(); + + // highlighted fields + for (field in results) { + if ($(field)) { + if (results[field] == '0') { + $(field).style.background = '#ffcccc'; + } + else { + new Effect.Highlight(field, { + duration: 0.5, + startcolor: '#99ff99', + endcolor: '#ffffff', + restorecolor: '#ffffff' + }); + } + } + } + } + }); }); resizeSettingsSection(); Index: /Users/mh/Documents/workspace/slimpy/HTML/EN/settings/ajaxSettings.txt =================================================================== --- /Users/mh/Documents/workspace/slimpy/HTML/EN/settings/ajaxSettings.txt (revision 0) +++ /Users/mh/Documents/workspace/slimpy/HTML/EN/settings/ajaxSettings.txt (revision 0) @@ -0,0 +1,4 @@ +warning|[% warning%] +[%- FOREACH valid = validated %] +[% valid.key %]|[% valid.value %] +[%- END %] \ No newline at end of file Index: /Users/mh/Documents/workspace/slimpy/HTML/EN/settings/header.html =================================================================== --- /Users/mh/Documents/workspace/slimpy/HTML/EN/settings/header.html (revision 12253) +++ /Users/mh/Documents/workspace/slimpy/HTML/EN/settings/header.html (working copy) @@ -21,6 +21,7 @@ [% pageHeaderScripts %] + [% END %] @@ -28,7 +29,7 @@ [% pagetitle = page | string; pageicon = 'settings'; noSpacer = 1; PROCESS pageheader.html %] -