From 905115b4dbdbccbbe146b3cbd73fe68d6997e611 Mon Sep 17 00:00:00 2001 From: Mateusz Uzdowski Date: Fri, 11 May 2012 12:53:40 +1200 Subject: [PATCH] BUGFIX: Update the batch action select state also on load (os7304) This approach should cover more situations than the previous one. It will owrk regardless of the initial state in the HTML (which can be loaded from deferred cache). --- admin/javascript/LeftAndMain.BatchActions.js | 24 +++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/admin/javascript/LeftAndMain.BatchActions.js b/admin/javascript/LeftAndMain.BatchActions.js index 625c619da..f49114265 100644 --- a/admin/javascript/LeftAndMain.BatchActions.js +++ b/admin/javascript/LeftAndMain.BatchActions.js @@ -43,7 +43,7 @@ tree.bind('check_node.jstree', function(e, data) { self.serializeFromTree(); }); - + $('.cms-tree-view-modes :input[name=view-mode]').bind('click', function(e) { var val = $(e.target).val(), dropdown = self.find(':input[name=Action]'); if(val == 'multiselect') { @@ -53,14 +53,26 @@ tree.removeClass('multiple'); } - // Batch actions only make sense when multiselect is enabled - if(val == 'multiselect') dropdown.removeAttr('disabled').change(); - else dropdown.attr('disabled', 'disabled').change(); + self._updateStateFromViewMode(); }); - + + self._updateStateFromViewMode(); + this._super(); }, + /** + * Updates the select box state according to the current view mode. + */ + _updateStateFromViewMode: function() { + var viewMode = $('.cms-tree-view-modes :input[name=view-mode]:checked').val(); + var dropdown = this.find(':input[name=Action]'); + + // Batch actions only make sense when multiselect is enabled. + if(viewMode == 'multiselect') dropdown.removeAttr('disabled').trigger("liszt:updated"); + else dropdown.attr('disabled', true).trigger("liszt:updated"); + }, + /** * Function: register * @@ -350,4 +362,4 @@ }); }); -})(jQuery); \ No newline at end of file +})(jQuery);