[TIC-Web] Support __EXPAND__, Show icons (KS) 33/126633/1
authorMyungJoo Ham <myungjoo.ham@samsung.com>
Mon, 24 Apr 2017 10:27:24 +0000 (19:27 +0900)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Mon, 24 Apr 2017 10:27:24 +0000 (19:27 +0900)
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 <myungjoo.ham@samsung.com>
public/src/js/page/package.js

index 160cc79..a9448e2 100644 (file)
@@ -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