Index: branches/5.2.x/core/admin_templates/js/catalog.js =================================================================== diff -u -N -r13840 -r14092 --- branches/5.2.x/core/admin_templates/js/catalog.js (.../catalog.js) (revision 13840) +++ branches/5.2.x/core/admin_templates/js/catalog.js (.../catalog.js) (revision 14092) @@ -93,29 +93,27 @@ return ; } - var $text = $request.responseText; + var $js_part = ''; + var $html_part = ''; + var $parts = $request.responseText.split($object.Separator); // (0 - JavaScript, 1 - html) OR (0 - html) - $params = $params.split(','); + if ($parts.length == 2) { + $html_part = $parts[1]; + $js_part = $parts[0]; + } + else { + $html_part = $parts[0]; + } - var $js_end = $text.indexOf($object.Separator); - if ($js_end != -1) { - // allow to detect if output is permitted by ajax request parameters - var $request_visible = '$request_visible = ' + ($params[0].length ? 'true' : 'false') + "\n"; + $params = $params.split(','); // 0 - target div + $.globalEval('$request_visible = ' + ($params[0].length ? 'true' : 'false')); - if ($params[0].length) { -// document.getElementById($params[0]).innerHTML = $text.substring($js_end + $object.Separator.length); - $( document.getElementById($params[0]) ).html( $text.substring($js_end + $object.Separator.length) ); - eval($request_visible + $text.substring(0, $js_end)); - } - else { - // eval JS only & set mark that js should not use HTML as usual in grids - eval($request_visible + $text.substring(0, $js_end)); - } + if ($params[0].length) { + $('#' + jq($params[0])).html($html_part); } - else if ($params[0].length) { - document.getElementById($params[0]).innerHTML = $text; - } + $.globalEval($js_part); + // pass catalog object and loaded tab name to event handler $('body').trigger('CatalogTabLoad', [$object, $params[0].replace(/_div$/, '')]);