From 4910b13d1f7690d0f7413131864208c99e69883e Mon Sep 17 00:00:00 2001 From: MyungJoo Ham Date: Mon, 24 Apr 2017 19:27:24 +0900 Subject: [PATCH] [TIC-Web] Support __EXPAND__, Show icons (KS) 1. "__EXPAND__ categoryname" in the first line of description will expand that rootblock for its category. (Root block only) 2. For blocks with KS info, add a filelist icon. 3. Show icon after checkbox 4. Initialize node.state.* at onRendered. (you should do it if you do not want to use $el and use the API directly) Change-Id: Ia8a7d5e7fcbecb7b781ccbf8c6949049d7991f80 Signed-off-by: MyungJoo Ham --- public/src/js/page/package.js | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/public/src/js/page/package.js b/public/src/js/page/package.js index 160cc79..a9448e2 100644 --- a/public/src/js/page/package.js +++ b/public/src/js/page/package.js @@ -40,6 +40,7 @@ define([ var $tree = $('#tic-package-left-col-tree'); var defaultFilters = []; + let rootNodes = []; let repos = []; let packages = []; let pkgInfo = null; @@ -1346,6 +1347,7 @@ define([ return new Promise(function (resolve, reject) { function _onRendered(event, nodes) { packages = _.values(nodes); + var rootNodeCheck = (rootNodes.length == 0); _.forEach(nodes, function(node, key) { // add a reference variable for treeview var pkg = _findFromNode(node); @@ -1356,6 +1358,16 @@ define([ pkg.view.push(node); } } + node.state.disabled = false; + node.state.expanded = false; + node.state.checked = false; + node.state.selected = false; + + if (rootNodeCheck && node.level == 1) { + if (node.text == 'Advanced (individual packages)') + node['expandcondition'] = 'all'; + rootNodes.push(key); + } }); _setDefaultPackage(rawData.installpackages); _updateSummary(); @@ -1364,6 +1376,7 @@ define([ $('#tic-package-toolbar-source').click().click(); $tree.treeview('collapseAll', { silent: true }); + _expandReserved(); resolve(); } @@ -1380,8 +1393,9 @@ define([ $tree.treeview({ data: rawData.view, - showIcon: false, + showIcon: true, showCheckbox: true, + checkboxFirst: true, onRendered: _onRendered, onNodeSelected: _nodeSelected, onNodeUnselected: _onNodeUnselected, @@ -1452,6 +1466,7 @@ define([ function _filterCategory() { _filter([]); _collapseAll(); + _expandReserved(); } $("input:radio[name='category']").on('change',_filterCategory); @@ -1518,6 +1533,26 @@ define([ $('#tic-package-left-col-tree-toolbar-expand-all').on('click', _expandAll); } + function _expandReserved() + { + // Search for root nodes, expand if the category is for it. + var category = $("input:radio[name='category']:checked").attr('data-category'); + + _.forEach(rootNodes, function(idx) { + if (packages[idx].expandcondition == category) { + var node = packages[idx]; + + // FIXME: 'state.expanded = true' is not reflected in the node. + //$tree.treeview('expandNode', [node, { silent: false }]); + var $expand = node.$el.find('.expand-icon.glyphicon-plus')[0]; + if ($expand) { + $expand.click(); + } + } + }); + } + + function _initContextMenu() { function _uncheckAllBtnHandler() { // INFO: bug for state.checked = false in treeview objects -- 2.7.4