From 5c026cb8b06d8da80c6782bbd1edfa34e94f3059 Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Fri, 17 Jun 2016 13:03:38 +0000
Subject: [PATCH] Task #8887: typo's, and dropdown filter for group in
 webscheduler list

---
 SAS/MoM/MoMQueryService/momqueryservice.py    |  2 +-
 .../ResourceAssignmentEditor/lib/mom.py       |  2 +-
 .../static/app/controllers/gridcontroller.js  | 25 +++++++++++++++----
 3 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/SAS/MoM/MoMQueryService/momqueryservice.py b/SAS/MoM/MoMQueryService/momqueryservice.py
index 384376a06cf..9db6eb84d64 100755
--- a/SAS/MoM/MoMQueryService/momqueryservice.py
+++ b/SAS/MoM/MoMQueryService/momqueryservice.py
@@ -117,7 +117,7 @@ class MoMDatabaseWrapper:
         object.mom2id as object_mom2id, object.id as object_mom2objectid, object.name as object_name, object.description as object_description, object.mom2objecttype as object_type, object.group_id as object_group_id, grp.id as object_group_mom2objectid, grp.name as object_group_name
         FROM mom2object as object
         left join mom2object as project on project.id = object.ownerprojectid
-        left join mom2object as grp on grp.id = object.group_id
+        left join mom2object as grp on grp.mom2id = object.group_id
         where object.mom2id in (%s)
         order by project_mom2id
         ''' % (ids_str,)
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/mom.py b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/mom.py
index e097c71de92..1534babfdc9 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/mom.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/mom.py
@@ -66,7 +66,7 @@ def updateTaskMomDetails(task, momrpc):
                 t['mom2object_id'] = m['object_mom2objectid']
                 t['mom_object_group_id'] = m['object_group_id']
                 t['mom_object_group_name'] = m.get('object_group_name')
-                t['mom_object_group_mom2object_id'] = m.get('mom_object_group_mom2objectid')
+                t['mom_object_group_mom2object_id'] = m.get('object_group_mom2objectid')
             else:
                 t['project_name'] = 'OTDB Only'
                 t['project_mom_id'] = -98
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
index 8fba4c7f062..1c808f7b830 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
@@ -20,7 +20,7 @@ gridControllerMod.controller('GridController', ['$scope', 'dataService', 'uiGrid
         displayName:'Project',
         enableCellEdit: false,
         cellTemplate:'<a target="_blank" href="https://lofar.astron.nl/mom3/user/project/setUpMom2ObjectDetails.do?view=generalinfo&mom2ObjectId={{row.entity.project_mom2object_id}}">{{row.entity[col.field]}}</a>',
-        width: '15%',
+        width: '12%',
         filter: {
             type: uiGridConstants.filter.SELECT,
             selectOptions: []
@@ -28,7 +28,7 @@ gridControllerMod.controller('GridController', ['$scope', 'dataService', 'uiGrid
     },
     { field: 'starttime',
         displayName: 'Start',
-        width: '13%',
+        width: '11%',
         type: 'date',
         enableCellEdit: false,
         enableCellEditOnFocus: false,
@@ -37,7 +37,7 @@ gridControllerMod.controller('GridController', ['$scope', 'dataService', 'uiGrid
     },
     { field: 'endtime',
         displayName: 'End',
-        width: '13%',
+        width: '11%',
         type: 'date',
         enableCellEdit: false,
         enableCellEditOnFocus: false,
@@ -77,7 +77,11 @@ gridControllerMod.controller('GridController', ['$scope', 'dataService', 'uiGrid
         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[col.field]}}</a>',
-        width: '6%'
+        width: '13%',
+        filter: {
+            type: uiGridConstants.filter.SELECT,
+            selectOptions: []
+        }
     },
     { field: 'mom_id',
         displayName: 'MoM ID',
@@ -198,7 +202,8 @@ gridControllerMod.controller('GridController', ['$scope', 'dataService', 'uiGrid
         } else
             $scope.gridOptions.data = []
 
-        fillProjectsColumFilterSelectOptions();
+        $scope.$evalAsync(fillProjectsColumFilterSelectOptions)
+        $scope.$evalAsync(fillGroupsColumFilterSelectOptions);
     };
 
     function jumpToSelectedTaskRow() {
@@ -247,6 +252,16 @@ gridControllerMod.controller('GridController', ['$scope', 'dataService', 'uiGrid
         fillColumFilterSelectOptions(projectNames, $scope.columns[1]);
     };
 
+    function fillGroupsColumFilterSelectOptions() {
+        var tasks = $scope.dataService.tasks;
+        //get unique groupNames from tasks
+        var groupNames = tasks.map(function(t) { return t.mom_object_group_name; });
+        groupNames = groupNames.filter(function(value, index, arr) { return arr.indexOf(value) == index;})
+        groupNames.sort();
+
+        fillColumFilterSelectOptions(groupNames, $scope.columns[7]);
+    };
+
     $scope.$watch('dataService.momProjectsDict', fillProjectsColumFilterSelectOptions);
     $scope.$watch('dataService.selected_task_id', jumpToSelectedTaskRow);
 }
-- 
GitLab