From 803c6113ca55809b91904de89605aed28b68f34b Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Tue, 10 Nov 2015 09:42:29 +0000
Subject: [PATCH] Task #8574: use module angular-resource to fetch data (as
 example). Group results.

---
 .../static/app/controllers/datacontroller.js  | 133 +++++++++---------
 1 file changed, 70 insertions(+), 63 deletions(-)

diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
index 89c063f68c2..401dacd4ac0 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
@@ -15,9 +15,29 @@ angular.module('raeApp').factory("dataService", function(){
     return self;
 });
 
-var dataControllerMod = angular.module('DataControllerMod', []);
+var dataControllerMod = angular.module('DataControllerMod', ['ngResource']);
 
-dataControllerMod.controller('DataController', ['$http', '$scope', 'dataService', function($http, $scope, dataService) {
+dataControllerMod.factory('taskService', function($resource){
+    return $resource("/rest/tasks/:id", {}, {
+        query: { method: "GET", isArray: false }
+    });
+});
+
+dataControllerMod.factory('resourceService', function($resource){
+    return $resource("/rest/resourceitems/:id", {}, {
+        query: { method: "GET", isArray: false }
+    });
+});
+
+dataControllerMod.factory('resourceClaimsService', function($resource){
+    return $resource("/rest/resourceclaims/:id", {}, {
+        query: { method: "GET", isArray: false }
+    });
+});
+
+dataControllerMod.controller('DataController',
+                             ['$scope', 'dataService', 'taskService',  'resourceService',  'resourceClaimsService',
+                             function($scope, dataService, taskService, resourceService, resourceClaimsService) {
     var self = this;
     self.dataService = dataService;
 
@@ -30,74 +50,61 @@ dataControllerMod.controller('DataController', ['$http', '$scope', 'dataService'
         return dict;
     };
 
-    function getTasks() {
-        $http.get('/rest/tasks').success(function(result) {
-            self.dataService.tasks = result.tasks;
+    taskService.query(function(results) {
+        self.dataService.tasks = results.tasks;
+        self.dataService.taskDict = toIdBasedDict(self.dataService.tasks);
+    });
 
-            self.dataService.taskDict = toIdBasedDict(self.dataService.tasks);
-        });
-    };
+    resourceService.query(function(results) {
+        self.dataService.resources = results.resourceitems;
+        self.dataService.resourceDict = toIdBasedDict(self.dataService.resources);
+        groupResourceClaims();
+    });
 
-    function getResources() {
-        $http.get('/rest/resourceitems').success(function(result) {
-            self.dataService.resources = result.resourceitems;
+    resourceClaimsService.query(function(results) {
+        self.dataService.resourceclaims = results.resourceclaims;
+        self.dataService.resourceclaimDict = toIdBasedDict(self.dataService.resourceclaims);
+        groupResourceClaims();
+    });
 
-            self.dataService.resourceDict = toIdBasedDict(self.dataService.resources);
-            groupResourceClaims();
-        });
-    };
+    function groupResourceClaims() {
+        var grouped = {};
+        var resources = self.dataService.resources;
+
+        for(var i = self.dataService.resources.length-1; i >=0; i--)
+        {
+            var resource = resources[i];
+            grouped[resource.id] = {
+                'id': resource.id,
+                'name': resource.name,
+                'tasks': []
+            };
+        }
 
-    function getResourceClaims() {
-        $http.get('/rest/resourceclaims').success(function(result) {
-            self.dataService.resourceclaims = result.resourceclaims;
+        var resourceclaims = self.dataService.resourceclaims;
+        for(var i = resourceclaims.length-1; i >=0; i--)
+        {
+            var claim = resourceclaims[i];
+            var task = self.dataService.taskDict[claim.taskId];
+
+            var row = grouped[claim.resourceId];
+            row.tasks.push({
+                name: task ? task.name : '<unknown>',
+                'from': claim.startTime,
+                'to': claim.endTime
+            });
+        }
 
-            self.dataService.resourceclaimDict = toIdBasedDict(self.dataService.resourceclaims);
-            groupResourceClaims();
-        });
-    };
+        var groupedArray = [];
 
-    function groupResourceClaims() {
-        $http.get('/rest/resourceclaims').success(function(result) {
-            self.dataService.resourceclaims = result.resourceclaims;
-
-            var grouped = {};
-            var resources = self.dataService.resources;
-
-            for(var i = self.dataService.resources.length-1; i >=0; i--)
-            {
-                var resource = resources[i];
-                grouped[resource.id] = {
-                    'id': resource.id,
-                    'name': resource.name,
-                    'tasks': []
-                };
-            }
-
-            var resourceclaims = result.resourceclaims;
-            for(var i = result.resourceclaims.length-1; i >=0; i--)
-            {
-                var claim = resourceclaims[i];
-                var task = self.dataService.taskDict[claim.taskId];
-
-                var row = grouped[claim.resourceId];
-                row.tasks.push({
-                    name: task ? task.name : '<unknown>',
-                    'from': claim.startTime,
-                    'to': claim.endTime
-                });
-            }
-
-            var groupedArray = [];
-
-            for (var groupId in grouped)
-                groupedArray.push(grouped[groupId]);
-
-            self.dataService.resourcesWithClaims = groupedArray;
-        });
+        for (var groupId in grouped)
+            groupedArray.push(grouped[groupId]);
+
+        self.dataService.resourcesWithClaims = groupedArray;
     };
 
-    getTasks();
-    getResources();
-    getResourceClaims();
+//     getTasks();
+//     getResources();
+//     getResourceClaims();
   }
 ]);
-- 
GitLab