From 6735b1c1ec1348a67f7cf79c8e1b18e84091a26d Mon Sep 17 00:00:00 2001 From: kristoftorfs Date: Tue, 7 Apr 2015 14:27:10 +0200 Subject: [PATCH 1/2] Provide possibility to set an icon class for leafs --- js/jquery.treegrid.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/js/jquery.treegrid.js b/js/jquery.treegrid.js index f605f13..8e73f72 100644 --- a/js/jquery.treegrid.js +++ b/js/jquery.treegrid.js @@ -117,7 +117,7 @@ if (expander) { expander.remove(); } - $(tpl).prependTo(cell).click(function() { + $(tpl).prependTo(cell).addClass($this.treegrid('getSetting', 'expanderLeafClass')).click(function() { $($(this).closest('tr')).treegrid('toggle'); }); return $this; @@ -535,7 +535,7 @@ var $this = $(this); var expander = $this.treegrid('getSetting', 'getExpander').apply(this); if (expander) { - + expander.removeClass($this.treegrid('getSetting', 'expanderLeafClass')); if (!$this.treegrid('isCollapsed')) { expander.removeClass($this.treegrid('getSetting', 'expanderCollapsedClass')); expander.addClass($this.treegrid('getSetting', 'expanderExpandedClass')); @@ -571,6 +571,7 @@ indentTemplate: '', expanderExpandedClass: 'treegrid-expander-expanded', expanderCollapsedClass: 'treegrid-expander-collapsed', + expanderLeafClass: 'tree-grid-expander-leaf', treeColumn: 0, getExpander: function() { return $(this).find('.treegrid-expander'); From 3858604b63fd50ff84815db5be74c43783cb5798 Mon Sep 17 00:00:00 2001 From: kristoftorfs Date: Tue, 7 Apr 2015 15:40:45 +0200 Subject: [PATCH 2/2] Added sliding animation when expanding/collapsing node --- js/jquery.treegrid.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/js/jquery.treegrid.js b/js/jquery.treegrid.js index 8e73f72..ad5efb6 100644 --- a/js/jquery.treegrid.js +++ b/js/jquery.treegrid.js @@ -513,11 +513,21 @@ render: function() { return $(this).each(function() { var $this = $(this); + var anim = ($this.treegrid('getSetting', 'animate') === true); + // If we want to be able have our rows slide, we need to wrap all cell contents in a new DIV + if (anim && !$this.data('tree-grid-init-done')) { + $this.find('td').wrapInner('
'); + $this.data('tree-grid-init-done', 1); + } //if parent colapsed we hidden if ($this.treegrid('isOneOfParentsCollapsed')) { - $this.hide(); + if (anim) $this.find('div.tree-grid-anim').slideUp(400, function() { + $this.hide(); + }); + else $this.hide(); } else { $this.show(); + if (anim) $this.find('div.tree-grid-anim').slideDown(); } if (!$this.treegrid('isLeaf')) { $this.treegrid('renderExpander'); @@ -563,6 +573,7 @@ * Plugin's default options */ $.fn.treegrid.defaults = { + animate: false, initialState: 'expanded', saveState: false, saveStateMethod: 'cookie',