From 0a20162b4551195b9c9d271bdcb6a11258c749b0 Mon Sep 17 00:00:00 2001
From: Muthukrishnanmatriot
 <76949556+muthukrishnanmatriot@users.noreply.github.com>
Date: Thu, 19 Aug 2021 07:46:50 +0530
Subject: [PATCH] merged wih master

---
 .../src/routes/Workflow/workflow.list.js         | 16 +++++++++++++++-
 .../tmss_webapp/src/shared/timeline.constants.js |  3 ++-
 .../tmss_webapp/src/utils/unit.converter.js      |  9 +++++++++
 3 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Workflow/workflow.list.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Workflow/workflow.list.js
index 61ac7ed0c35..b866fabfcff 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Workflow/workflow.list.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Workflow/workflow.list.js
@@ -14,6 +14,7 @@ import UIConstants from '../../utils/ui.constants';
 import UtilService from '../../services/util.service';
 import AuthUtil from '../../utils/auth.util';
 import AccessDenied from '../../layout/components/AccessDenied';
+import UnitConverter from '../../utils/unit.converter';
 
 class WorkflowList extends Component{
     lsKeySortColumn = 'SortDataWorkflowList';
@@ -64,6 +65,7 @@ class WorkflowList extends Component{
             defaultSortColumn: [{id: "Scheduling unit ID", desc: false}],
             isLoading: true,
         };
+        this.statusList = [];
         this.pageUpdated = true;
         this.schedulingUnitList = null;
         this.workflowProcessList = null;
@@ -94,8 +96,10 @@ class WorkflowList extends Component{
         const promises = [  WorkflowService.getWorkflowProcesses(),
                             WorkflowService.getWorkflowTasks(), 
                             ScheduleService.getSchedulingUnitsExpandWithFilter('blueprint',this.SU_BLUEPRINT_EXPAND, '', 10, 0),
+                            ScheduleService.getSchedulingUnitFilterDefinition('blueprint')
                         ];
         Promise.all(promises).then(async responses => {
+            this.getStatusList(responses[3]);
             this.workflowProcessList = responses[0];
             this.workflowTasksList = responses[1];
             this.schedulingUnitList = responses[2].data.results;
@@ -105,6 +109,16 @@ class WorkflowList extends Component{
         
     }
 
+    /**
+     * get Status list
+     * @param {*} suFilters 
+     */
+    getStatusList(suFilters) {
+        if(suFilters){
+            this.statusList = UnitConverter.getStatusList(suFilters);
+        }
+    }
+
     toggleBySorting = (sortData) => {
         
         this.storeUIAttr(this.lsKeySortColumn, sortData)
@@ -201,7 +215,7 @@ class WorkflowList extends Component{
             options = _.map(UIConstants.CURRENT_WORKFLOW_STAGE, stage=> {return {name: stage, value: stage}});
         }  
         else if(id && id === 'Scheduling Unit Status') {
-            options = UIConstants.SU_STATUS;
+            options = this.statusList;//UIConstants.SU_STATUS;
         }
         return options;
       }
diff --git a/SAS/TMSS/frontend/tmss_webapp/src/shared/timeline.constants.js b/SAS/TMSS/frontend/tmss_webapp/src/shared/timeline.constants.js
index c588cbafccd..13fe8e24136 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/shared/timeline.constants.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/shared/timeline.constants.js
@@ -3,7 +3,8 @@ import UIConstants from "../utils/ui.constants";
 const TimelineConstants = {
     SU_LIST_DEFAULT_COLUMNS: [{
         status: {
-            name:"Status"
+            name:"Status",
+            filter: "select",
         },
         do_cancel: {
             name:"Cancelled"
diff --git a/SAS/TMSS/frontend/tmss_webapp/src/utils/unit.converter.js b/SAS/TMSS/frontend/tmss_webapp/src/utils/unit.converter.js
index 1f135a9fd6f..6df626d7a71 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/utils/unit.converter.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/utils/unit.converter.js
@@ -236,6 +236,15 @@ const UnitConverter = {
             radian = this.convertToRadians((degreeHour * 15 + minute / 4 + second / 240));
         }
         return radian;
+    },
+    getStatusList(suFilters) {
+        let statusList = [];
+        if (suFilters.data.filters['status']) {
+            suFilters.data.filters['status'].choices.forEach(choice => {
+                statusList.push(choice.value);
+            });
+        }
+        return statusList;
     }
 };
 
-- 
GitLab