diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js index 6264bed1d32e83a3e37dcb4861fe2809a7d0245b..b77735c1f72aa6c022c73f8bf0fed1c24fd1b7a4 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js @@ -15,6 +15,7 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http, self.resourceGroupsDict = {}; self.resourceGroupMemberships = {}; self.resourceClaimDict = {}; + self.task2resourceClaimDict = {}; self.resourceUsagesDict = {}; self.tasktypesDict = {}; @@ -246,6 +247,21 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http, self.resourceClaims = visibleClaims; self.resourceClaimDict = self.toIdBasedDict(self.resourceClaims); + self.task2resourceClaimDict = {}; + + for(var claim_id in self.resourceClaimDict) { + var claim = self.resourceClaimDict[claim_id]; + + if(!self.task2resourceClaimDict.hasOwnProperty(claim.task_id)) { + self.task2resourceClaimDict[claim.task_id] = {}; + } + + if(!self.task2resourceClaimDict[claim.task_id].hasOwnProperty(claim_id)) { + self.task2resourceClaimDict[claim.task_id][claim_id] = claim; + } + } + + self.computeMinMaxResourceClaimTimes(); var newLoadedHours = {}; @@ -516,11 +532,20 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http, for(var i = newClaimIds.length-1; i >= 0; i--) { var claim_id = newClaimIds[i]; + var claim = newClaimDict[claim_id]; + if(!self.resourceClaimDict.hasOwnProperty(claim_id)) { - var claim = newClaimDict[claim_id]; self.resourceClaims.push(claim); self.resourceClaimDict[claim_id] = claim; } + + if(!self.task2resourceClaimDict.hasOwnProperty(claim.task_id)) { + self.task2resourceClaimDict[claim.task_id] = {}; + } + + if(!self.task2resourceClaimDict[claim.task_id].hasOwnProperty(claim_id)) { + self.task2resourceClaimDict[claim.task_id][claim_id] = claim; + } } self.computeMinMaxResourceClaimTimes(); @@ -774,6 +799,14 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http, changedClaim.endtime = new Date(changedClaim.endtime); self.resourceClaims.push(changedClaim); self.resourceClaimDict[changedClaim.id] = changedClaim; + + if(!self.task2resourceClaimDict.hasOwnProperty(changedClaim.task_id)) { + self.task2resourceClaimDict[changedClaim.task_id] = {}; + } + + if(!self.task2resourceClaimDict[changedClaim.task_id].hasOwnProperty(changedClaim.id)) { + self.task2resourceClaimDict[changedClaim.task_id][changedClaim.id] = claim; + } } } else if(change.changeType == 'delete') { delete self.resourceClaimDict[changedClaim.id] @@ -783,6 +816,10 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http, break; } } + + if(self.task2resourceClaimDict.hasOwnProperty(changedClaim.task_id)) { + delete self.task2resourceClaimDict[changedClaim.task_id][changedClaim.id]; + } } self.claimChangeCntr++; diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js index f420d6121ce810a6e5bb463fb6a8f7b83c2382b8..f59a1eb89358fd6ccd6fb835a96562b390f51956 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js @@ -14,7 +14,7 @@ gridControllerMod.controller('GridController', ['$scope', 'dataService', 'uiGrid $scope.columns = [ { field: 'name', enableCellEdit: false, - width: '15%' + width: '12%' }, { field: 'project_name', displayName:'Project', @@ -80,7 +80,7 @@ $scope.columns = [ displayName: 'Group', enableCellEdit: false, cellTemplate:'<a target="_blank" href="https://lofar.astron.nl/mom3/user/project/setUpMom2ObjectDetails.do?view=generalinfo&mom2ObjectId={{row.entity.mom_object_group_mom2object_id}}">{{row.entity.mom_object_group_id}} {{row.entity.mom_object_group_name}}</a>', - width: '13%', + width: '12%', filter: { condition: uiGridConstants.filter.EXACT, type: uiGridConstants.filter.SELECT, @@ -103,6 +103,20 @@ $scope.columns = [ enableCellEdit: false, cellTemplate:'<a target="_blank" href="tasks/{{row.entity.id}}.html">{{row.entity[col.field]}}</a>', width: '6%' + }, + { field: 'cluster', + displayName: 'cluster', + enableCellEdit: false, + width: '6%', + filter: { + condition: uiGridConstants.filter.EXACT, + type: uiGridConstants.filter.SELECT, + selectOptions: [] + }, + cellClass: function(grid, row, col, rowRenderIndex, colRenderIndex) { + var value = grid.getCellValue(row,col); + return "grid-cluster-" + value; + } }]; $scope.gridOptions = { enableGridMenu: false, @@ -235,7 +249,8 @@ $scope.columns = [ mom2object_id: task.mom2object_id, mom_object_group_id: task.mom_object_group_id, mom_object_group_name: task.mom_object_group_name, - mom_object_group_mom2object_id: task.mom_object_group_mom2object_id + mom_object_group_mom2object_id: task.mom_object_group_mom2object_id, + cluster: $scope.dataService.task2resourceClaimDict.hasOwnProperty(task.id) ? 'CEP4' : 'CEP2' }; gridTasks.push(gridTask); } @@ -270,6 +285,7 @@ $scope.columns = [ }; $scope.$watch('dataService.taskChangeCntr', function() { $scope.$evalAsync(populateList); }); + $scope.$watch('dataService.claimChangeCntr', function() { $scope.$evalAsync(populateList); }); $scope.$watch('dataService.viewTimeSpan', function() { $scope.$evalAsync(populateList); $scope.$evalAsync(jumpToSelectedTaskRows); @@ -289,6 +305,8 @@ $scope.columns = [ tasktypenames = $scope.dataService.tasktypes.map(function(x) { return x.name; }); fillColumFilterSelectOptions(tasktypenames, $scope.columns[6]); + fillColumFilterSelectOptions(['CEP2', 'CEP4'], $scope.columns[11]); + fillProjectsColumFilterSelectOptions(); }); }); diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css index b66705bfd498636a42d3c9f6f53965e2a6a5f3a8..6f5286b791ecc5862a0d2260cfd50d1061fc6594 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/css/main.css @@ -227,6 +227,13 @@ div.gantt-task.claim-task-status-suspended span { } +.grid-cluster-CEP2 { + background-color: #ccffff !important; +} + +.grid-cluster-CEP4 { + background-color: #ccffcc !important; +}