Index: trunk/kernel/admin_templates/incs/ajax.js =================================================================== diff -u -N -r5002 -r5030 --- trunk/kernel/admin_templates/incs/ajax.js (.../ajax.js) (revision 5002) +++ trunk/kernel/admin_templates/incs/ajax.js (.../ajax.js) (revision 5030) @@ -27,7 +27,9 @@ } } } - req.open(Request.method, p_url, true); + + var $ajax_mark = (p_url.indexOf('?') ? '&' : '?') + 'ajax=yes'; + req.open(Request.method, p_url + $ajax_mark, true); if (Request.method == 'POST') { req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); req.setRequestHeader("referer", p_url); Index: trunk/kernel/units/general/helpers/permissions_helper.php =================================================================== diff -u -N -r5013 -r5030 --- trunk/kernel/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 5013) +++ trunk/kernel/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 5030) @@ -210,7 +210,7 @@ function showDebug($text, $params) { - $is_ajax = isset($params['ajax']) || isset($params['tab_init']); + $is_ajax = $this->Application->GetVar('ajax') == 'yes' || isset($params['ajax']) || isset($params['tab_init']); if (!$this->Application->isDebugMode() || $is_ajax) return true; echo $text.'
'; } Index: trunk/core/admin_templates/js/catalog.js =================================================================== diff -u -N -r5027 -r5030 --- trunk/core/admin_templates/js/catalog.js (.../catalog.js) (revision 5027) +++ trunk/core/admin_templates/js/catalog.js (.../catalog.js) (revision 5030) @@ -21,7 +21,6 @@ Catalog.prototype.submit_kernel_form = function($form_name, $result_div) { var $kf = document.getElementById($form_name); - set_hidden_field('ajax', 'yes'); Request.params = Request.serializeForm($kf); Request.method = $kf.method.toUpperCase(); @@ -31,6 +30,12 @@ Catalog.prototype.successCallback = function($request, $params) { var $text = $request.responseText; + if ($text.match(/^#redirect#(.*)/)) { + // redirect to external template requested + window.location.href = RegExp.$1; + return false; + } + $params = $params.split(','); var $js_end = $text.indexOf($Catalog.Separator); if ($js_end != -1) { Index: trunk/core/admin_templates/catalog/catalog.tpl =================================================================== diff -u -N -r5027 -r5030 --- trunk/core/admin_templates/catalog/catalog.tpl (.../catalog.tpl) (revision 5027) +++ trunk/core/admin_templates/catalog/catalog.tpl (.../catalog.tpl) (revision 5030) @@ -18,7 +18,7 @@