diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js index 113bff315cb559da5c324a6dbffe870b0b3ca46c..290e0ff68d4ec37a090f118afc75fd8b82346fde 100644 --- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js +++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js @@ -332,22 +332,21 @@ $scope.columns = [ }, true); $scope.$watch('dataService.filteredTaskChangeCntr', function() { - $scope.$evalAsync(fillProjectsColumFilterSelectOptions) - $scope.$evalAsync(fillGroupsColumFilterSelectOptions); + $scope.$evalAsync(function() { + fillStatusColumFilterSelectOptions(); + fillTypeColumFilterSelectOptions(); + fillProjectsColumFilterSelectOptions(); + fillGroupsColumFilterSelectOptions(); + }); }); $scope.$watch('dataService.initialLoadComplete', function() { $scope.$evalAsync(function() { - taskstatustypenames = $scope.dataService.taskstatustypes.map(function(x) { return x.name; }); - fillColumFilterSelectOptions(taskstatustypenames, $scope.columns[5]); - $scope.columns[6].editDropdownOptionsArray = $scope.dataService.taskstatustypes.map(function(x) { return {id:x.name, value:x.name}; }); - - tasktypenames = $scope.dataService.tasktypes.map(function(x) { return x.name; }); - fillColumFilterSelectOptions(tasktypenames, $scope.columns[6]); - - fillColumFilterSelectOptions(['CEP2', 'CEP4'], $scope.columns[11]); - + fillStatusColumFilterSelectOptions(); + fillTypeColumFilterSelectOptions(); fillProjectsColumFilterSelectOptions(); + fillGroupsColumFilterSelectOptions(); + fillColumFilterSelectOptions(['CEP2', 'CEP4'], $scope.columns[11]); }); }); @@ -355,6 +354,12 @@ $scope.columns = [ var projectNames = []; var momProjectsDict = $scope.dataService.momProjectsDict; var tasks = $scope.dataService.filteredTasks; + + var project_col = $scope.gridApi.grid.columns.find(function(c) {return c.field == 'project_name'; }); + if(project_col && project_col.filters.length && project_col.filters[0].term) { + tasks = $scope.dataService.tasks; + } + //get unique projectIds from tasks var task_project_ids = tasks.map(function(t) { return t.project_mom_id; }); task_project_ids = task_project_ids.unique(); @@ -371,8 +376,45 @@ $scope.columns = [ fillColumFilterSelectOptions(projectNames, $scope.columns[1]); }; + function fillStatusColumFilterSelectOptions() { + var tasks = $scope.dataService.filteredTasks; + + var status_col = $scope.gridApi.grid.columns.find(function(c) {return c.field == 'status'; }); + if(status_col && status_col.filters.length && status_col.filters[0].term) { + tasks = $scope.dataService.tasks; + } + + //get unique statuses from tasks + var task_statuses = tasks.map(function(t) { return t.status; }); + task_statuses = task_statuses.unique(); + + task_statuses.sort(); + fillColumFilterSelectOptions(task_statuses, $scope.columns[5]); + }; + + function fillTypeColumFilterSelectOptions() { + var tasks = $scope.dataService.filteredTasks; + + var type_col = $scope.gridApi.grid.columns.find(function(c) {return c.field == 'type'; }); + if(type_col && type_col.filters.length && type_col.filters[0].term) { + tasks = $scope.dataService.tasks; + } + + //get unique types from tasks + var task_types = tasks.map(function(t) { return t.type; }); + task_types = task_types.unique(); + + task_types.sort(); + fillColumFilterSelectOptions(task_types, $scope.columns[6]); + }; + function fillGroupsColumFilterSelectOptions() { + if($scope.columns[7].filter.term) { + return; + } + var tasks = $scope.dataService.filteredTasks; + //get unique groupNames from tasks var groupId2Name = {}; var groupIds = [];