Index: trunk/kernel/admin_templates/incs/script.js =================================================================== diff -u -r1795 -r2308 --- trunk/kernel/admin_templates/incs/script.js (.../script.js) (revision 1795) +++ trunk/kernel/admin_templates/incs/script.js (.../script.js) (revision 2308) @@ -1,15 +1,20 @@ -var Grids = new Array(); -var Toolbars = new Array(); -var $Menus = new Array(); -var $ViewMenus = new Array(); -if(!$fw_menus) var $fw_menus = new Array(); +if( !( isset($init_made) && $init_made ) ) +{ + var Grids = new Array(); + var Toolbars = new Array(); + var $Menus = new Array(); + var $ViewMenus = new Array(); + var $form_prefix = 'kernel'; // results usage of kernel_form + if(!$fw_menus) var $fw_menus = new Array(); + + var $env = ''; + var submitted = false; + var $init_made = true; // in case of double inclusion of script.js :) +} -var $env = ''; -var submitted = false; - function resort_grid(prefix_special,field,form_action) { - document.getElementById(prefix_special+'_Sort1').value = field; + set_hidden_field(prefix_special+'_Sort1', field); submit_event(prefix_special,'OnSetSorting',null,form_action); } @@ -39,21 +44,22 @@ set_hidden_field('events['+prefix_special+']', event); } - if(isset(t)) document.getElementById('t').value = t; - if(isset(form_action)) { + if(isset(t)) set_hidden_field('t', t); + if( isset(form_action) ) + { var old_env = ''; if ( !form_action.match(/\?/) ) { - document.getElementById('kernel_form').action.match(/.*(\?.*)/); + document.getElementById($form_prefix+'_form').action.match(/.*(\?.*)/); old_env = RegExp.$1; } - document.getElementById('kernel_form').action = form_action+old_env; + document.getElementById($form_prefix+'_form').action = form_action+old_env; } submit_kernel_form(); } function show_form_data() { - var $kf = document.getElementById('kernel_form'); + var $kf = document.getElementById($form_prefix+'_form'); $ret = ''; for(var i in $kf.elements) { @@ -69,7 +75,7 @@ return; } submitted = true; - var $form = document.getElementById('kernel_form'); + var $form = document.getElementById($form_prefix+'_form'); if (typeof $form.onsubmit == "function") { $form.onsubmit(); @@ -114,26 +120,26 @@ function go_to_list(prefix_special, tab) { - document.getElementById(prefix_special+'_GoTab').value = tab; + set_hidden_field(prefix_special+'_GoTab', tab); submit_event(prefix_special,'OnUpdateAndGoToTab',null); } function go_to_tab(prefix_special, tab) { - document.getElementById(prefix_special+'_GoTab').value = tab; + set_hidden_field(prefix_special+'_GoTab', tab); submit_event(prefix_special,'OnPreSaveAndGoToTab',null); } function go_to_id(prefix_special, id) { - document.getElementById(prefix_special+'_GoId').value = id; + set_hidden_field(prefix_special+'_GoId', id); submit_event(prefix_special,'OnPreSaveAndGo') } // in-portal compatibility functions: begin function getScriptURL($script_name) { - var $asid = document.getElementById('sid').value; + var $asid = get_hidden_field('sid'); return base_url+$script_name+'?env='+( isset($env)&&$env?$env:$asid )+'&en=0'; } @@ -161,7 +167,6 @@ openwin($url,'catselect',750,400); } - function OpenItemSelector(extra_env,$TargetForm) { var $url = getScriptURL('admin/relation_select.php') + '&destform='+$TargetForm; @@ -263,20 +268,20 @@ function opener_action(new_action) { - document.getElementById('m_opener').value=new_action; + set_hidden_field('m_opener', new_action); } function std_precreate_item(prefix_special, edit_template) { opener_action('d'); set_hidden_field(prefix_special+'_mode', 't'); - submit_event(prefix_special,'OnPreCreate', edit_template) + submit_event(prefix_special,'OnPreCreate', edit_template) } function std_new_item(prefix_special, edit_template) { opener_action('d'); - submit_event(prefix_special,'OnNew', edit_template) + submit_event(prefix_special,'OnNew', edit_template) } function std_edit_item(prefix_special, edit_template) @@ -302,7 +307,10 @@ // if the field does not exist - creates it function set_hidden_field($field_id, $value) { - var $field = document.getElementById($field_id); +// alert('form: '+$form_prefix+'_form'); + + var $kf = document.getElementById($form_prefix+'_form'); + var $field = $kf.elements[$field_id]; if($field) { $field.value = $value; @@ -314,10 +322,17 @@ $field.name = $field_id; $field.id = $field_id; $field.value = $value; - document.kernel_form.appendChild($field); + + $kf.appendChild($field); return false; } +function get_hidden_field($field) +{ + var $kf = document.getElementById($form_prefix+'_form'); + return $kf.elements[$field] ? $kf.elements[$field].value : false; +} + function search($prefix_special, $grid_name) { set_hidden_field('grid_name', $grid_name);