-
Jorrit Schaap authored
Task #8574: moved dataservice to datacontroller. added methods to convert lists to id-based dicts, which are then used to link the claims and tasks to the resources for gantt view
Jorrit Schaap authoredTask #8574: moved dataservice to datacontroller. added methods to convert lists to id-based dicts, which are then used to link the claims and tasks to the resources for gantt view
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
datacontroller.js 2.95 KiB
// $Id$
angular.module('raeApp').factory("dataService", function(){
var self = this;
self.tasks = [];
self.resources = [];
self.resourceclaims = [];
self.taskDict = {};
self.resourceDict = {};
self.resourceclaimDict = {};
self.resourcesWithClaims = [];
return self;
});
var dataControllerMod = angular.module('DataControllerMod', []);
dataControllerMod.controller('DataController', ['$http', '$scope', 'dataService', function($http, $scope, dataService) {
var self = this;
self.dataService = dataService;
function toIdBasedDict(list) {
var dict = {}
for(var i = list.length-1; i >=0; i--) {
var item = list[i];
dict[item.id] = item;
}
return dict;
};
function getTasks() {
$http.get('/rest/tasks').success(function(result) {
self.dataService.tasks = result.tasks;
self.dataService.taskDict = toIdBasedDict(self.dataService.tasks);
});
};
function getResources() {
$http.get('/rest/resourceitems').success(function(result) {
self.dataService.resources = result.resourceitems;
self.dataService.resourceDict = toIdBasedDict(self.dataService.resources);
groupResourceClaims();
});
};
function getResourceClaims() {
$http.get('/rest/resourceclaims').success(function(result) {
self.dataService.resourceclaims = result.resourceclaims;
self.dataService.resourceclaimDict = toIdBasedDict(self.dataService.resourceclaims);
groupResourceClaims();
});
};
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;
});
};
getTasks();
getResources();
getResourceClaims();
}
]);