Skip to content
This repository has been archived by the owner on Feb 12, 2022. It is now read-only.

Commit

Permalink
Unselect event will now be triggered when an item is deselected. Retu…
Browse files Browse the repository at this point in the history
…rn payload for this event will include the target data and a list of all selected items.
  • Loading branch information
dwaltz committed Oct 7, 2014
1 parent 5bbf4ce commit 3d28f78
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 10 deletions.
3 changes: 3 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -700,6 +700,9 @@ define(function(require) {
log('Selected Event: ', selected);
log($('#myTree1').tree('selectedItems'));
});
$('#myTree1').on('unselected.fu.tree', function (e, selected) {
log('Deselected Event: ', selected);
});
$('#myTree1').on('updated.fu.tree', function (e, selected) {
log('Updated Event: ', selected);
log($('#myTree1').tree('selectedItems'));
Expand Down
18 changes: 8 additions & 10 deletions js/tree.js
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@

selectItem: function (el) {
var $el = $(el);
var selData = $el.data();
var $all = this.$element.find('.tree-selected');
var data = [];
var $icon = $el.find('.icon-item');
Expand All @@ -159,7 +160,7 @@
} else if ($all[0] !== $el[0]) {
$all.removeClass('tree-selected')
.find('.glyphicon').removeClass('glyphicon-ok').addClass('fueluxicon-bullet');
data.push($el.data());
data.push(selData);
}

var eventType = 'selected';
Expand All @@ -176,13 +177,11 @@
$icon.removeClass('fueluxicon-bullet').addClass('glyphicon-ok');
}
if (this.options.multiSelect) {
data.push( $el.data() );
data.push( selData );
}
}

if(data.length) {
this.$element.trigger('selected', {selected: data});
}
this.$element.trigger(eventType + '.fu.tree', {target: selData, selected: data});

// Return new list of selected items, the item
// clicked, and the type of event:
Expand Down Expand Up @@ -250,6 +249,7 @@
var $clickedElement = $(clickedElement);
var $clickedBranch = $clickedElement.closest('.tree-branch');
var $selectedBranch = this.$element.find('.tree-branch.tree-selected');
var clickedData = $clickedBranch.data();
var selectedData = [];
var eventType = 'selected';

Expand All @@ -276,13 +276,11 @@
} else if ($selectedBranch[0] !== $clickedElement[0]) {
$selectedBranch.removeClass('tree-selected');

selectedData.push($clickedBranch.data());
selectedData.push(clickedData);
}

if(selectedData.length) {
this.$element.trigger('selected.fu.tree', {selected: selectedData});
}

this.$element.trigger(eventType + '.fu.tree', {target: clickedData, selected: selectedData});

// Return new list of selected items, the item
// clicked, and the type of event:
$clickedElement.trigger('updated.fu.tree', {
Expand Down
4 changes: 4 additions & 0 deletions test/tree-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,10 @@ define(function(require){
data = items.selected;
});

$tree.on('unselected.fu.tree', function (e, items) {
data = items.selected;
});

$tree.tree('selectItem', $tree.find('.tree-item:eq(1)'));
equal(data.length, 1, 'Single item selected');
equal($tree.tree('selectedItems').length, 1, 'Return single selected value');
Expand Down

0 comments on commit 3d28f78

Please sign in to comment.