Index: core/admin_templates/js/forms.js IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- core/admin_templates/js/forms.js (revision 15713) +++ core/admin_templates/js/forms.js (revision ) @@ -1,57 +1,106 @@ var last_shown_error = false; -var errors = new Object(); -var first_error = new Object(); -var fields = new Object(); -function show_form_error(prefix, field, sticky) -{ +var errors = {}; +var first_error = {}; +var fields = {}; + +function show_form_error(prefix, field, sticky) { - if (isset(errors[prefix]) && isset(errors[prefix][field])) { + if ( isset(errors[prefix]) && isset(errors[prefix][field]) ) { - span = document.getElementById('error_msg_'+prefix); + span = document.getElementById('error_msg_' + prefix); span.innerHTML = fields[prefix][field] + ' - ' + errors[prefix][field]; - if (sticky) last_shown_error = field; + + if ( sticky ) { + last_shown_error = field; - } -} + } + } -function hide_form_error(prefix) -{ +} + +function hide_form_error(prefix) { - span = document.getElementById('error_msg_'+prefix); + span = document.getElementById('error_msg_' + prefix); - if (!span) return; + + if ( !span ) { + return; + } + span.innerHTML = '
'; + - if (typeof(last_shown_error) != 'undefined' && last_shown_error) { + if ( typeof(last_shown_error) != 'undefined' && last_shown_error ) { show_form_error(prefix, last_shown_error); } } -function add_form_error(prefix, field, element, error_msg) { - if (error_msg != '') { + +function add_form_error(prefix, field, element, error_msg, block_name) { + if ( error_msg == '' ) { + // no error message - do nothing + return; + } + - if (typeof(errors[prefix]) == 'undefined') { + if ( typeof(errors[prefix]) == 'undefined' ) { - errors[prefix] = new Object(); + errors[prefix] = {}; - } + } + - errors[prefix][field] = error_msg; + errors[prefix][field] = error_msg; - if (document.getElementById(element)) { + var $input_fields = $('#' + jq(element)); + + switch (block_name) { + case 'inp_edit_timezone': + $input_fields = $input_fields.add('#timezone_group'); + break; + + case 'inp_edit_date_time': + $input_fields = $input_fields.add('#' + jq(element.replace(field, field + '_date'))); + $input_fields = $input_fields.add('#' + jq(element.replace(field, field + '_time'))); + break; + + case 'inp_edit_combo_target': + $input_fields = $input_fields.add('#' + jq(element.replace(field, field + 'Type'))); + break; + + case 'inp_edit_multioptions': + $input_fields = $('#' + jq(element) + '_select'); + break; + + case 'inp_edit_checkbox': + $input_fields = $('#_cb_' + jq(element)); + break; + + case 'inp_edit_radio': + case 'inp_edit_checkboxes': + $input_fields = $("input[id^='" + jq(element) + "_']"); + break; + + case 'inp_edit_weight': + $input_fields = $input_fields.add('#' + jq(element.replace(field, field + '_a'))); + $input_fields = $input_fields.add('#' + jq(element.replace(field, field + '_b'))); + break; + + case 'inp_edit_picker': + $input_fields = $('#' + jq(element) + '_selected'); + break; + + case 'inp_edit_cron_box': + $input_fields = $input_fields.add('#' + jq(element.replace(field, field + 'Hints'))); + break; + } + + if ( $input_fields.length > 0 ) { - // some controls don't have element to focus on (e.g. swf uploader) + // some controls don't have element to focus on (e.g. swf uploader) - addEvent( - document.getElementById(element), - 'focus', - function() { - show_form_error(prefix, field, true) + $input_fields.focus(function ($e) { + show_form_error(prefix, field, true); + }); + + $input_fields.blur(function ($e) { + last_shown_error = false; + }); - } + } - ); - addEvent( - document.getElementById(element), - 'blur', - function() { - last_shown_error = false - } - ); - } - /*else { - console.log('error: focusing failed for [', prefix, '.', field, '] = ', element); - }*/ + /*else { + console.log('error: focusing failed for [', prefix, '.', field, '] = ', element); + }*/ - if (typeof(first_error[prefix]) == 'undefined' || first_error[prefix] == false) { + if ( typeof(first_error[prefix]) == 'undefined' || first_error[prefix] == false ) { - first_error[prefix] = [field, element]; - } - } + first_error[prefix] = [field, element]; + } +} -} function FCKeditor_OnComplete( editor ) { @@ -152,7 +201,7 @@ Application.processHooks('m:OnAfterFormInit'); InitEditors(); -} +}; Form.displayFirstError = function () { if (isset(first_error)) { @@ -167,7 +216,7 @@ } } } -} +}; Form.InitOnChange = function() { @@ -184,12 +233,12 @@ addEvent(elem, elem.type=='button' ? 'click' : 'change', function() {Form.Changed()}); } } -} +}; Form.Changed = function() { this.HasChanged = true; -} +}; Form.addControl = function(id, options) { this.Controls.push(id); @@ -204,7 +253,7 @@ options['real_height'] = 0; this.Options[id] = options; // for future use // print_pre(this.Options[id]); -} +}; Form._parseSize = function ($size) { if ($size.toString().match(/^([\d]+)px$/)) { @@ -212,7 +261,7 @@ } return parseInt($size); -} +}; Form.Resize = function($init_done) { if (!this.Div) { @@ -305,7 +354,7 @@ // alert('h is: '+h+' min height is '+this.MinHeight+' MinControlsHeight is '+this.MinControlsHeight+' -> '+split+' to split between '+count); // print_pre(this.Controls) -} +}; Form.ResetHeights = function() { @@ -315,9 +364,8 @@ options.fixed = false; } this.FlexibleCount = this.Controls.length; -} +}; - // Enlarge heights when possible // Return any not split pixels number Form.SplitExtra = function(split) { @@ -359,7 +407,7 @@ added -= extra; } return split - added; -} +}; Form.SetMinHeights = function() { @@ -372,4 +420,4 @@ } } return used; -} \ No newline at end of file +}; \ No newline at end of file Index: core/admin_templates/incs/form_blocks.tpl IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- core/admin_templates/incs/form_blocks.tpl (revision 15713) +++ core/admin_templates/incs/form_blocks.tpl (revision ) @@ -138,7 +138,7 @@ - + style=""> @@ -147,7 +147,7 @@ - + @@ -157,7 +157,7 @@ - + @@ -178,13 +178,13 @@ - + @@ -192,7 +192,7 @@ - +