diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/view.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/view.js index 85f2fb088d081ac01174e6727f6271dbb7ea649f..7f899a7ea124436afc08788a16a312c3e5c04d45 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/view.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/view.js @@ -109,6 +109,7 @@ export class TimelineView extends Component { onSavedisable:false, result:false, dsStatus: false, // To show the Dynamic Scheduling status in timeline/week view page header + subSystemStatus: false, isOnSkyView: this.timelineUIAttributes.isOnSkyView===undefined?true:this.timelineUIAttributes.isOnSkyView, // Flag to show on sky view in normal timeline view } this.STATUS_BEFORE_SCHEDULED = ['defining', 'defined', 'schedulable']; // Statuses before scheduled to get station_group @@ -278,6 +279,15 @@ export class TimelineView extends Component { } this.setState({fsStatus: status}); }); + await UtilService.getSubSystemScheduler() + .then(response => { + var status = false; + if(response) { + status = response.status_value === 'active'? true: false; + } + this.setState({subSystemStatus: status}); + }) + } /** @@ -1332,7 +1342,7 @@ export class TimelineView extends Component { if (jsonData.action === 'create') { this.addNewData(jsonData.object_details.id, jsonData.object_type, jsonData.object_details); } else if (jsonData.action === 'update') { - this.updateExistingData(jsonData.object_details.id, jsonData.object_type, jsonData.object_details); + this.updateExistingData(jsonData.object_details.id? jsonData.object_details.id: '', jsonData.object_type, jsonData.object_details); } else if (jsonData.action === 'delete') { this.deleteExistingData(jsonData.object_details.id, jsonData.object_type); } @@ -1419,6 +1429,12 @@ export class TimelineView extends Component { } break; } + case 'subsystem': { + let subSystemStatus = this.state.subSystemStatus; + subSystemStatus = object.status_value === 'active' ? true: false + this.setState({subSystemStatus: subSystemStatus}) + break; + } case 'task_blueprint': { // let suBlueprints = this.state.suBlueprints; // let existingSUB = _.find(suBlueprints, ['id', object.scheduling_unit_blueprint_id]); @@ -1638,6 +1654,10 @@ export class TimelineView extends Component { title: this.state.fsStatus?'Fixed time Scheduling is On':'Fixed time Scheduling is Off', className:`tag p-chips-token-label su-${this.state.fsStatus? 'finished': 'error'}`, type: 'tag' }, + { + title: this.state.subSystemStatus?'Fixed time Scheduling is On':'Fixed time Scheduling is Off', + className:`fa fa-${this.state.subSystemStatus? 'play' : 'stop'} tag p-chips-token-label su-${this.state.subSystemStatus? 'finished': 'error'}`, + type: 'tag' }, { icon: 'fa-cog', title: 'Scheduling Settings', type: 'button', actOn: 'click', props: { callback: this.showDymanicSchedulerPopup }, }, { icon: 'fa-bars', title: '', diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/week.view.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/week.view.js index 8885de13186eb139d0db888c8e8175291fa9dcd2..f776c260e82f1f0ef7c7d9a80fcab261d8da7275 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/week.view.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/week.view.js @@ -86,6 +86,7 @@ export class WeekTimelineView extends Component { popPosition: {display: 'none'}, dsStatus: false, // To show the Dynamic Scheduling status in timeline/week view page header fsStatus: false, + subSystemStatus: false, isOnSkyView: this.timelineUIAttributes.isOnSkyWeekView===undefined?true:this.timelineUIAttributes.isOnSkyWeekView, // Flag to show on sky view in week view } this.STATUS_BEFORE_SCHEDULED = ['defining', 'defined', 'schedulable']; // Statuses before scheduled to get station_group @@ -143,6 +144,14 @@ export class WeekTimelineView extends Component { } this.setState({fsStatus: status}); }); + await UtilService.getSubSystemScheduler() + .then(response => { + var status = false; + if(response) { + status = response.status_value === 'active'? true: false; + } + this.setState({subSystemStatus: status}); + }) } /** @@ -912,7 +921,7 @@ export class WeekTimelineView extends Component { if (jsonData.action === 'create') { this.addNewData(jsonData.object_details.id, jsonData.object_type, jsonData.object_details); } else if (jsonData.action === 'update') { - this.updateExistingData(jsonData.object_details.id, jsonData.object_type, jsonData.object_details); + this.updateExistingData(jsonData.object_details.id? jsonData.object_details.id: '', jsonData.object_type, jsonData.object_details); } else if (jsonData.action === 'delete') { this.deleteExistingData(jsonData.object_details.id, jsonData.object_type); } @@ -978,6 +987,12 @@ export class WeekTimelineView extends Component { } break; } + case 'subsystem': { + let subSystemStatus = this.state.subSystemStatus; + subSystemStatus = object.status_value === 'active' ? true: false + this.setState({subSystemStatus: subSystemStatus}) + break; + } case 'task_blueprint': { // let suBlueprints = this.state.suBlueprints; // let existingSUB = _.find(suBlueprints, ['id', object.scheduling_unit_blueprint_id]); @@ -1312,6 +1327,10 @@ export class WeekTimelineView extends Component { title: this.state.fsStatus?'Fixed time Scheduling is On':'Fixed time Scheduling is Off', className:`tag p-chips-token-label su-${this.state.fsStatus? 'finished': 'error'}`, type: 'tag' }, + { + title: this.state.subSystemStatus?'Fixed time Scheduling is On':'Fixed time Scheduling is Off', + className:`fa fa-${this.state.subSystemStatus? 'play' : 'stop'} tag p-chips-token-label su-${this.state.subSystemStatus? 'finished': 'error'}`, + type: 'tag' }, { icon: 'fa-cog', title: 'Scheduling Settings', type: 'button', actOn: 'click', props: { callback: this.showDymanicSchedulerPopup }, }, { icon: 'fa-bars', title: '', type: 'button', actOn: 'mouseOver', props: { callback: this.showOptionMenu }, }, diff --git a/SAS/TMSS/frontend/tmss_webapp/src/services/util.service.js b/SAS/TMSS/frontend/tmss_webapp/src/services/util.service.js index f9aab0724bed5a135ee53b909ff9c11f3eb27124..92c6dac3cf6ee80e2ca63fcde464aeeb06d817e7 100644 --- a/SAS/TMSS/frontend/tmss_webapp/src/services/util.service.js +++ b/SAS/TMSS/frontend/tmss_webapp/src/services/util.service.js @@ -265,6 +265,16 @@ const UtilService = { return null; } }, + getSubSystemScheduler: async function() { + try { + const url = '/api/subsystem/scheduler'; + const response = await axios.get(url); + return response.data; + } catch (error) { + console.error('[getSubStystemScheduler]', error); + return null; + } + }, /** * Update Switch On/Off status of Dynamic Scheduling * @param {Object} JSON object