From 0cced2a26310f2769d8b6e0b6acc5aa7617e7b3d Mon Sep 17 00:00:00 2001 From: Chulwoo Shin Date: Tue, 24 Jan 2017 03:06:04 +0900 Subject: [PATCH] [TIC-Web] fix multi-selection bug Fixed a multi-selection bug Change-Id: I46288455651ca4566fc75afe678dadf5f3db4bfe Signed-off-by: Chulwoo Shin --- public/src/js/page/package.js | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/public/src/js/page/package.js b/public/src/js/page/package.js index 27885c2..db9850b 100644 --- a/public/src/js/page/package.js +++ b/public/src/js/page/package.js @@ -54,6 +54,8 @@ define([ _.forEach(value.view, function(node) { nodes.push(node); }); + // update local state + value.checked = true; }); $tree.treeview('checkNode', [nodes, { silent: true }]); @@ -572,7 +574,12 @@ define([ function _onNodeChecked(event, node) { var startTS = performance.now(); var localNode = _find(node.text); - if (localNode.view[0].state.checked === true) { + + if (_.isEmpty(localNode)){ + // MISC is virtual pacakge. + return; + } + if (localNode.checked === true) { $tree.treeview('uncheckNode', [node, { silent: false }]); return; } @@ -581,7 +588,6 @@ define([ _nodeSelected(event, node); localNode.selfChecked = true; - localNode.view[0].state.checked = true; // analyze install-dependency (requires) var depPkg = _analyzeInstallDependency(localNode) @@ -596,6 +602,9 @@ define([ var toggleNode = []; if (!_.isEmpty(depPkg)) { _.forEach(depPkg, function(value, key) { + // update local data + value.checked = true; + // update treeview data _.forEach(value.view, function(node) { if (node.state.checked === false) { toggleNode.push(node); @@ -604,10 +613,6 @@ define([ }); $tree.treeview('checkNode', [toggleNode, { silent: true }]); - // update local data - _.forEach(toggleNode, function(node) { - node.state.checked = true; - }); _updateSummary(); var endTS = performance.now(); @@ -623,7 +628,12 @@ define([ function _onNodeUnchecked(event, node) { var startTS = performance.now(); var localNode = _find(node.text); - if (localNode.view[0].state.checked === false) { + + if (_.isEmpty(localNode)){ + // MISC is virtual pacakge. + return; + } + if (localNode.checked === false) { $tree.treeview('checkNode', [node, { silent: false }]); return; } @@ -642,6 +652,9 @@ define([ var toggleNode = []; if (!_.isEmpty(uncheckPkgs)) { _.forEach(uncheckPkgs, function(value, key) { + // update local data + value.checked = false; + // update treeview data _.forEach(value.view, function(node) { if (node.state.checked === true) { toggleNode.push(node); @@ -650,12 +663,6 @@ define([ }); $tree.treeview('uncheckNode', [toggleNode, { silent: true }]); - // update local data - _.forEach(toggleNode, function(node) { - node.state.checked = false; - }); - - //node.state.checked = false; localNode.selfChecked = false; _updateSummary(); } else { @@ -663,7 +670,6 @@ define([ // selected node change to check state $tree.treeview('checkNode', [[node], { silent: true }]); - node.state.checked = true; } var endTS = performance.now(); -- 2.7.4