From d38a1e196b005cda4a77cfe62e495b9d71a1edc0 Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Tue, 3 Nov 2015 14:57:14 +0000
Subject: [PATCH] Task #8574: Render tasks in grid as tree view. Not optimal
 for user. Let's change this to a task-type-column.

---
 .../lib/static/app/app.js                     |  1 -
 .../static/app/controllers/gridcontroller.js  | 21 ++++++++++++++++---
 .../lib/static/css/main.css                   |  4 +++-
 .../lib/templates/index.html                  |  2 +-
 4 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/app.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/app.js
index 537d013649e..07dd886ee45 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/app.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/app.js
@@ -2,7 +2,6 @@
 
 var app = angular.module('raeApp',
                          ['ngTouch',
-                         'ui.grid',
                          'gantt',
                          'gantt.table',
                          'gantt.movable',
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
index 68cbe5b07af..eb92c7de174 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
@@ -1,14 +1,27 @@
 // $Id: controller.js 32761 2015-11-02 11:50:21Z schaap $
 
-var gridControllerMod = angular.module('GridControllerMod', ['DataControllerMod']);
+var gridControllerMod = angular.module('GridControllerMod', ['ui.grid', 'ui.grid.treeView']);
 
-gridControllerMod.controller('GridController', ['$scope', 'dataService', function($scope, dataService) {
+gridControllerMod.controller('GridController', ['$scope', 'dataService', 'uiGridTreeViewConstants', function($scope, dataService, uiGridTreeViewConstants) {
 
     $scope.dataService = dataService;
 
     $scope.$watch('dataService.tasks', function() {
         if('tasks' in $scope.dataService && $scope.dataService.tasks.length > 0)
-            $scope.gridOptions.data = $scope.dataService.tasks[0]['tasks'];
+        {
+            var taskList = [];
+            for ( var i = 0; i < $scope.dataService.tasks.length; i++ ){
+                var node = $scope.dataService.tasks[i];
+                node.$$treeLevel = 0;
+                taskList.push(node);
+                var nodeTasks = node['tasks'];
+                for ( var j = 0; j < nodeTasks.length; j++ ){
+                    nodeTasks[j].$$treeLevel = 1;
+                    taskList.push(nodeTasks[j]);
+                }
+            }
+            $scope.gridOptions.data = taskList;
+        }
         else
             $scope.gridOptions.data = []
     }, true);
@@ -16,7 +29,9 @@ gridControllerMod.controller('GridController', ['$scope', 'dataService', functio
     $scope.columns = [{ field: 'name' }, { field: 'from' }, { field: 'to' }];
     $scope.gridOptions = {
         enableSorting: true,
+        enableFiltering: true,
         columnDefs: $scope.columns,
+        showTreeExpandNoChildren: false,
         data: []
     };
 }
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css
index 8285ce40c62..9f3636c4982 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css
@@ -1,8 +1,10 @@
 /* $Id: app.js 32724 2015-10-28 13:24:49Z schaap $ */
 
 .myGrid {
-    width: 500px;
+    min-height: 400px;
+    min-width: 500px;
     height: auto;
+    width: auto;
 }
 
 .gantt {
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/templates/index.html b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/templates/index.html
index aecbc30fd2b..6b0db5c1620 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/templates/index.html
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/templates/index.html
@@ -26,7 +26,7 @@
     {% raw %}
     <div ng-controller="GridController as gridCtrl">
         <strong>Tasks:</strong>
-        <div id="grid1" ui-grid="gridOptions" ui-grid-move-columns class="grid"></div>
+        <div id="grid1" ui-grid="gridOptions" ui-grid-move-columns ui-grid-tree-view class="myGrid"></div>
     </div>
     <br/>
     <br/>
-- 
GitLab