diff --git a/js/tree.js b/js/tree.js index 38f152c31..16b6ef225 100644 --- a/js/tree.js +++ b/js/tree.js @@ -8,7 +8,7 @@ // -- BEGIN UMD WRAPPER PREFACE -- -// For more information on UMD visit: +// For more information on UMD visit: // https://github.com/umdjs/umd/blob/master/jqueryPlugin.js (function (factory) { @@ -21,7 +21,7 @@ } }(function ($) { // -- END UMD WRAPPER PREFACE -- - + // -- BEGIN MODULE CODE HERE -- var old = $.fn.tree; @@ -77,10 +77,10 @@ if(value.type === 'folder') { $entity = self.$element.find('[data-template=treebranch]:eq(0)').clone().removeClass('hide').removeAttr('data-template'); $entity.data(value); - $entity.find('.tree-branch-name > .tree-label').html(value.name); + $entity.find('.tree-branch-name > .tree-label').html(value.text || value.name); } else if (value.type === 'item') { $entity = self.$element.find('[data-template=treeitem]:eq(0)').clone().removeClass('hide').removeAttr('data-template'); - $entity.find('.tree-item-name > .tree-label').html(value.name); + $entity.find('.tree-item-name > .tree-label').html(value.text || value.name); $entity.data(value); } @@ -100,6 +100,8 @@ // 'id': guid // } // }; + // + // the "name" attribute is also supported but is deprecated for "text". // add attributes to tree-branch or tree-item var attr = value['attr'] || value.dataAttributes || []; @@ -110,7 +112,7 @@ case 'className': $entity.addClass(value); break; - + // allow custom icons case 'data-icon': $entity.find('.icon-item').removeClass().addClass('icon-item ' + value); diff --git a/test/tree-test.js b/test/tree-test.js index c45a54683..a40bde387 100644 --- a/test/tree-test.js +++ b/test/tree-test.js @@ -25,6 +25,14 @@ define(function(require){ }); }; + this.textDataSource = function (options, callback) { + callback({ + data: [ + { text: 'node text', type: 'folder', attr: { id: 'folder1' } } + ] + }); + }; + } }); @@ -144,4 +152,13 @@ define(function(require){ equal(typeof( $tree.tree('destroy')) , 'string', 'returns string (markup)'); equal( $tree.parent().length, false, 'control has been removed from DOM'); }); + + test("Tree should accept TEXT as the NAME property in the datasource", function () { + var $tree = $(html).find('#MyTree'); + + $tree.tree({ dataSource: this.textDataSource}); + + $tree.tree('selectFolder', $tree.find('.tree-branch-name:eq(1)')); + equal($tree.tree('selectedItems')[0].text, 'node text', 'Param TEXT used in the datasource'); + }); });