Index: trunk/core/admin_templates/js/catalog.js =================================================================== diff -u -N -r5025 -r5027 --- trunk/core/admin_templates/js/catalog.js (.../catalog.js) (revision 5025) +++ trunk/core/admin_templates/js/catalog.js (.../catalog.js) (revision 5027) @@ -48,14 +48,15 @@ alert('AJAX ERROR: ' + Request.getErrorHtml($request)); } -Catalog.prototype.submit_event = function($prefix_special, $event, $t, $result_div, $source_form) { - // set form name first, because set_hidden_field uses it - if (isset($source_form)) $form_name = $source_form; +Catalog.prototype.submit_event = function($prefix_special, $event, $t) { + if (!isset($prefix_special)) $prefix_special = this.getCurrentPrefix(); + var $tab_id = this.queryTabRegistry('prefix', $prefix_special, 'tab_id'); - if (isset($event)) set_hidden_field('events['+$prefix_special+']', $event); + $form_name = $tab_id + '_form'; // set firstly, because set_hidden_field uses it + if (isset($event)) set_hidden_field('events[' + $prefix_special + ']', $event); if (isset($t)) set_hidden_field('t', $t); - this.submit_kernel_form($form_name, $result_div); + this.submit_kernel_form($form_name, $tab_id + '_div'); } @@ -170,4 +171,15 @@ Catalog.prototype.setItemCount = function($prefix, $count) { setInnerHTML($prefix + '_item_count', $count); +} + +Catalog.prototype.getCurrentPrefix = function() { + if (isset(Grids[this.ActivePrefix]) && (Grids[this.ActivePrefix].SelectedCount > 0)) { + // item tab grid exists and some items are selected + return this.ActivePrefix; + } + else { + // return prefix of first registred tab -> categories + return this.TabRegistry[0]['prefix']; + } } \ No newline at end of file Index: trunk/core/kernel/application.php =================================================================== diff -u -N -r5026 -r5027 --- trunk/core/kernel/application.php (.../application.php) (revision 5026) +++ trunk/core/kernel/application.php (.../application.php) (revision 5027) @@ -1316,7 +1316,10 @@ if( isset($params['js_redirect']) ) unset($params['js_redirect']); if (!isset($params['pass'])) $params['pass'] = 'all'; - if ($this->GetVar('ajax') == 'yes') $params['ajax'] = 'yes'; + if ($this->GetVar('ajax') == 'yes' && $t == $this->GetVar('t')) { + // redirects to the same template as current + $params['ajax'] = 'yes'; + } $params['__URLENCODE__'] = 1; $location = $this->HREF($t, $prefix, $params, $index_file); Index: trunk/core/admin_templates/catalog/catalog.tpl =================================================================== diff -u -N -r5026 -r5027 --- trunk/core/admin_templates/catalog/catalog.tpl (.../catalog.tpl) (revision 5026) +++ trunk/core/admin_templates/catalog/catalog.tpl (.../catalog.tpl) (revision 5027) @@ -1,6 +1,6 @@ - + @@ -22,12 +22,12 @@ var a_toolbar = new ToolBar(); a_toolbar.AddButton( new ToolBarButton('upcat', '', function() { - $Catalog.submit_event('c', 'OnCategoryUp', null, 'categories_div', 'categories_form'); + $Catalog.submit_event('c', 'OnCategoryUp'); } ) ); a_toolbar.AddButton( new ToolBarButton('homecat', '', function() { - $Catalog.submit_event('c', 'OnGoHome', null, 'categories_div', 'categories_form'); + $Catalog.submit_event('c', 'OnGoHome'); } ) ); @@ -49,63 +49,63 @@ a_toolbar.AddButton( new ToolBarButton('delete', '', function() { - std_delete_items('c') + std_delete_items($Catalog.getCurrentPrefix()); } ) ); a_toolbar.AddButton( new ToolBarSeparator('sep2') ); a_toolbar.AddButton( new ToolBarButton('approve', '', function() { - $Catalog.submit_event('c','OnMassApprove', null, 'categories_div', 'categories_form'); + $Catalog.submit_event(null, 'OnMassApprove'); } ) ); a_toolbar.AddButton( new ToolBarButton('decline', '', function() { - $Catalog.submit_event('c','OnMassDecline', null, 'categories_div', 'categories_form'); + $Catalog.submit_event(null, 'OnMassDecline'); } ) ); a_toolbar.AddButton( new ToolBarSeparator('sep3') ); a_toolbar.AddButton( new ToolBarButton('export', '', function() { - + $Catalog.submit_event(this.ActivePrefix, 'OnExport'); } ) ); a_toolbar.AddButton( new ToolBarButton('rebuild_cache', '', function() { - + $Catalog.submit_event(null, 'OnRebuildCache'); } ) ); a_toolbar.AddButton( new ToolBarSeparator('sep4') ); a_toolbar.AddButton( new ToolBarButton('cut', '', function() { - + $Catalog.submit_event(null, 'OnCut'); } ) ); a_toolbar.AddButton( new ToolBarButton('copy', '', function() { - + $Catalog.submit_event(null, 'OnCopy'); } ) ); a_toolbar.AddButton( new ToolBarButton('paste', '', function() { - + $Catalog.submit_event(null, 'OnCatPaste'); } ) ); a_toolbar.AddButton( new ToolBarSeparator('sep5') ); a_toolbar.AddButton( new ToolBarButton('move_up', '', function() { - + $Catalog.submit_event(null, 'OnMassMoveUp'); } ) ); a_toolbar.AddButton( new ToolBarButton('move_down', '', function() { - + $Catalog.submit_event(null, 'OnMassMoveDown'); } ) ); @@ -120,8 +120,9 @@ function edit() { - $form_name = $Catalog.queryTabRegistry('prefix', $Catalog.ActivePrefix, 'tab_id') + '_form'; - std_edit_item($Catalog.ActivePrefix, $Catalog.queryTabRegistry('prefix', $Catalog.ActivePrefix, 'edit_template')); + var $current_prefix = $Catalog.getCurrentPrefix(); + $form_name = $Catalog.queryTabRegistry('prefix', $current_prefix, 'tab_id') + '_form'; + std_edit_item($current_prefix, $Catalog.queryTabRegistry('prefix', $current_prefix, 'edit_template')); } @@ -207,8 +208,4 @@ --> - - - \ No newline at end of file + \ No newline at end of file Index: trunk/kernel/admin_templates/incs/catalog.js =================================================================== diff -u -N -r5026 -r5027 --- trunk/kernel/admin_templates/incs/catalog.js (.../catalog.js) (revision 5026) +++ trunk/kernel/admin_templates/incs/catalog.js (.../catalog.js) (revision 5027) @@ -48,14 +48,15 @@ alert('AJAX ERROR: ' + Request.getErrorHtml($request)); } -Catalog.prototype.submit_event = function($prefix_special, $event, $t, $result_div, $source_form) { - // set form name first, because set_hidden_field uses it - if (isset($source_form)) $form_name = $source_form; +Catalog.prototype.submit_event = function($prefix_special, $event, $t) { + if (!isset($prefix_special)) $prefix_special = this.getCurrentPrefix(); + var $tab_id = this.queryTabRegistry('prefix', $prefix_special, 'tab_id'); - if (isset($event)) set_hidden_field('events['+$prefix_special+']', $event); + $form_name = $tab_id + '_form'; // set firstly, because set_hidden_field uses it + if (isset($event)) set_hidden_field('events[' + $prefix_special + ']', $event); if (isset($t)) set_hidden_field('t', $t); - this.submit_kernel_form($form_name, $result_div); + this.submit_kernel_form($form_name, $tab_id + '_div'); } @@ -170,4 +171,15 @@ Catalog.prototype.setItemCount = function($prefix, $count) { setInnerHTML($prefix + '_item_count', $count); +} + +Catalog.prototype.getCurrentPrefix = function() { + if (isset(Grids[this.ActivePrefix]) && (Grids[this.ActivePrefix].SelectedCount > 0)) { + // item tab grid exists and some items are selected + return this.ActivePrefix; + } + else { + // return prefix of first registred tab -> categories + return this.TabRegistry[0]['prefix']; + } } \ No newline at end of file Index: trunk/kernel/admin_templates/catalog.tpl =================================================================== diff -u -N -r5026 -r5027 --- trunk/kernel/admin_templates/catalog.tpl (.../catalog.tpl) (revision 5026) +++ trunk/kernel/admin_templates/catalog.tpl (.../catalog.tpl) (revision 5027) @@ -1,6 +1,6 @@ - + @@ -22,12 +22,12 @@ var a_toolbar = new ToolBar(); a_toolbar.AddButton( new ToolBarButton('upcat', '', function() { - $Catalog.submit_event('c', 'OnCategoryUp', null, 'categories_div', 'categories_form'); + $Catalog.submit_event('c', 'OnCategoryUp'); } ) ); a_toolbar.AddButton( new ToolBarButton('homecat', '', function() { - $Catalog.submit_event('c', 'OnGoHome', null, 'categories_div', 'categories_form'); + $Catalog.submit_event('c', 'OnGoHome'); } ) ); @@ -49,63 +49,63 @@ a_toolbar.AddButton( new ToolBarButton('delete', '', function() { - std_delete_items('c') + std_delete_items($Catalog.getCurrentPrefix()); } ) ); a_toolbar.AddButton( new ToolBarSeparator('sep2') ); a_toolbar.AddButton( new ToolBarButton('approve', '', function() { - $Catalog.submit_event('c','OnMassApprove', null, 'categories_div', 'categories_form'); + $Catalog.submit_event(null, 'OnMassApprove'); } ) ); a_toolbar.AddButton( new ToolBarButton('decline', '', function() { - $Catalog.submit_event('c','OnMassDecline', null, 'categories_div', 'categories_form'); + $Catalog.submit_event(null, 'OnMassDecline'); } ) ); a_toolbar.AddButton( new ToolBarSeparator('sep3') ); a_toolbar.AddButton( new ToolBarButton('export', '', function() { - + $Catalog.submit_event(this.ActivePrefix, 'OnExport'); } ) ); a_toolbar.AddButton( new ToolBarButton('rebuild_cache', '', function() { - + $Catalog.submit_event(null, 'OnRebuildCache'); } ) ); a_toolbar.AddButton( new ToolBarSeparator('sep4') ); a_toolbar.AddButton( new ToolBarButton('cut', '', function() { - + $Catalog.submit_event(null, 'OnCut'); } ) ); a_toolbar.AddButton( new ToolBarButton('copy', '', function() { - + $Catalog.submit_event(null, 'OnCopy'); } ) ); a_toolbar.AddButton( new ToolBarButton('paste', '', function() { - + $Catalog.submit_event(null, 'OnCatPaste'); } ) ); a_toolbar.AddButton( new ToolBarSeparator('sep5') ); a_toolbar.AddButton( new ToolBarButton('move_up', '', function() { - + $Catalog.submit_event(null, 'OnMassMoveUp'); } ) ); a_toolbar.AddButton( new ToolBarButton('move_down', '', function() { - + $Catalog.submit_event(null, 'OnMassMoveDown'); } ) ); @@ -120,8 +120,9 @@ function edit() { - $form_name = $Catalog.queryTabRegistry('prefix', $Catalog.ActivePrefix, 'tab_id') + '_form'; - std_edit_item($Catalog.ActivePrefix, $Catalog.queryTabRegistry('prefix', $Catalog.ActivePrefix, 'edit_template')); + var $current_prefix = $Catalog.getCurrentPrefix(); + $form_name = $Catalog.queryTabRegistry('prefix', $current_prefix, 'tab_id') + '_form'; + std_edit_item($current_prefix, $Catalog.queryTabRegistry('prefix', $current_prefix, 'edit_template')); } @@ -207,8 +208,4 @@ --> - - - \ No newline at end of file + \ No newline at end of file