diff --git a/admin-dev/themes/default/js/tree.js b/admin-dev/themes/default/js/tree.js index 992ec6b78..976492e39 100644 --- a/admin-dev/themes/default/js/tree.js +++ b/admin-dev/themes/default/js/tree.js @@ -11,6 +11,8 @@ Tree.prototype = init: function () { + var that = $(this); + this.$element.find("label.tree-toggler").click( function () { @@ -19,12 +21,16 @@ Tree.prototype = $(this).parent().children(".icon-folder-open") .removeClass("icon-folder-open") .addClass("icon-folder-close"); + + that.trigger('collapse'); } else { $(this).parent().children(".icon-folder-close") .removeClass("icon-folder-close") .addClass("icon-folder-open"); + + that.trigger('expand'); } $(this).parent().parent().children("ul.tree").toggle(300); } @@ -36,6 +42,8 @@ Tree.prototype = $('li input:checked').parent().addClass("tree-selected"); } ); + + return $(this); }, collapseAll : function($speed) @@ -49,6 +57,8 @@ Tree.prototype = $(this).parent().parent().children("ul.tree").hide($speed); } ); + + return $(this); }, expandAll : function($speed) @@ -62,6 +72,8 @@ Tree.prototype = $(this).parent().parent().children("ul.tree").show($speed); } ); + + return $(this); }, }; diff --git a/admin-dev/themes/default/template/controllers/products/helpers/tree/tree_categories.tpl b/admin-dev/themes/default/template/controllers/products/helpers/tree/tree_categories.tpl index 78f662c03..cc62f3259 100644 --- a/admin-dev/themes/default/template/controllers/products/helpers/tree/tree_categories.tpl +++ b/admin-dev/themes/default/template/controllers/products/helpers/tree/tree_categories.tpl @@ -80,7 +80,17 @@ }); {/if} $(document).ready(function () { - $("#{$id}").tree("collapseAll"); + var tree = $("#{$id}").tree("collapseAll"); + + tree.on('collapse', function() { + $('#expand-all-{$id}').show(); + }); + + tree.on('expand', function() { + $('#collapse-all-{$id}').show(); + }); + + $('#collapse-all-{$id}').hide(); $("#{$id}").find(":input[type=radio]").click( function() { diff --git a/classes/helper/HelperTreeCategories.php b/classes/helper/HelperTreeCategories.php index 6f5ffeb91..28f46a053 100644 --- a/classes/helper/HelperTreeCategories.php +++ b/classes/helper/HelperTreeCategories.php @@ -212,36 +212,37 @@ class HelperTreeCategoriesCore extends TreeCore $this->setAttribute('use_search', $this->useSearch()); } - $this->addAction(new TreeToolbarLink( + $collapse_all = new TreeToolbarLink( 'Collapse All', '#', - '$(\'#'.$this->getId().'\').tree(\'collapseAll\')', - 'icon-collapse-alt') - ); - - $this->addAction(new TreeToolbarLink( + '$(\'#'.$this->getId().'\').tree(\'collapseAll\');$(\'#collapse-all-'.$this->getId().'\').hide();$(\'#expand-all-'.$this->getId().'\').show();', + 'icon-collapse-alt'); + $collapse_all->setAttribute('id', 'collapse-all-'.$this->getId()); + $expand_all = new TreeToolbarLink( 'Expand All', '#', - '$(\'#'.$this->getId().'\').tree(\'expandAll\')', - 'icon-expand-alt') - ); + '$(\'#'.$this->getId().'\').tree(\'expandAll\');$(\'#collapse-all-'.$this->getId().'\').show();$(\'#expand-all-'.$this->getId().'\').hide();', + 'icon-expand-alt'); + $expand_all->setAttribute('id', 'expand-all-'.$this->getId()); + $this->addAction($collapse_all); + $this->addAction($expand_all); if ($this->useCheckBox()) { - $checkAll = new TreeToolbarLink( + $check_all = new TreeToolbarLink( 'Check All', '#', 'checkAllAssociatedCategories($(\'#'.$this->getId().'\'));', 'icon-check-sign'); - $checkAll->setAttribute('id', 'check-all-'.$this->getId()); - $unCheckAll = new TreeToolbarLink( + $check_all->setAttribute('id', 'check-all-'.$this->getId()); + $uncheck_all = new TreeToolbarLink( 'Uncheck All', '#', 'uncheckAllAssociatedCategories($(\'#'.$this->getId().'\'));', 'icon-check-empty'); - $unCheckAll->setAttribute('id', 'uncheck-all-'.$this->getId()); - $this->addAction($checkAll); - $this->addAction($unCheckAll); + $uncheck_all->setAttribute('id', 'uncheck-all-'.$this->getId()); + $this->addAction($check_all); + $this->addAction($uncheck_all); $this->setNodeFolderTemplate('tree_node_folder_checkbox.tpl'); $this->setNodeItemTemplate('tree_node_item_checkbox.tpl'); $this->setAttribute('use_checkbox', $this->useCheckBox());