diff options
Diffstat (limited to 'sdnr/wt/odlux/apps/faultApp')
3 files changed, 41 insertions, 13 deletions
diff --git a/sdnr/wt/odlux/apps/faultApp/src/actions/statusActions.ts b/sdnr/wt/odlux/apps/faultApp/src/actions/statusActions.ts index 8a3633243..c50c08ef2 100644 --- a/sdnr/wt/odlux/apps/faultApp/src/actions/statusActions.ts +++ b/sdnr/wt/odlux/apps/faultApp/src/actions/statusActions.ts @@ -21,23 +21,28 @@ import { Dispatch } from '../../../../framework/src/flux/store'; export class SetFaultStatusAction extends FaultApplicationBaseAction { - constructor (public criticalFaults: number, public majorFaults: number, public minorFaults: number, public warnings: number) { + constructor (public criticalFaults: number, public majorFaults: number, public minorFaults: number, public warnings: number, public isLoadingAlarmStatusChart: boolean) { super(); } } -export const refreshFaultStatusAsyncAction = async (dispatch: Dispatch ) => { - const result = await getFaultStateFromDatabase().catch(_=>null); +export const refreshFaultStatusAsyncAction = async (dispatch: Dispatch) => { + + dispatch(new SetFaultStatusAction(0, 0, 0, 0, true)); + const result = await getFaultStateFromDatabase().catch(_ => null); if (result) { const statusAction = new SetFaultStatusAction( result["Critical"] || 0, result["Major"] || 0, result["Minor"] || 0, - result["Warning"] || 0 + result["Warning"] || 0, + false ); dispatch(statusAction); return; } - dispatch(new SetFaultStatusAction(0, 0, 0, 0)); + else { + dispatch(new SetFaultStatusAction(0, 0, 0, 0, false)); + } } diff --git a/sdnr/wt/odlux/apps/faultApp/src/handlers/faultStatusHandler.ts b/sdnr/wt/odlux/apps/faultApp/src/handlers/faultStatusHandler.ts index 1c76a4b1a..e1fceb4be 100644 --- a/sdnr/wt/odlux/apps/faultApp/src/handlers/faultStatusHandler.ts +++ b/sdnr/wt/odlux/apps/faultApp/src/handlers/faultStatusHandler.ts @@ -22,14 +22,16 @@ export interface IFaultStatus { critical: number, major: number, minor: number, - warning: number + warning: number, + isLoadingAlarmStatusChart: boolean } const faultStatusInit: IFaultStatus = { critical: 0, major: 0, minor: 0, - warning: 0 + warning: 0, + isLoadingAlarmStatusChart: false }; export const faultStatusHandler: IActionHandler<IFaultStatus> = (state = faultStatusInit, action) => { @@ -38,7 +40,8 @@ export const faultStatusHandler: IActionHandler<IFaultStatus> = (state = faultSt critical: action.criticalFaults, major: action.majorFaults, minor: action.minorFaults, - warning: action.warnings + warning: action.warnings, + isLoadingAlarmStatusChart: action.isLoadingAlarmStatusChart } } diff --git a/sdnr/wt/odlux/apps/faultApp/src/pluginFault.tsx b/sdnr/wt/odlux/apps/faultApp/src/pluginFault.tsx index 3715c623e..0c5fdde27 100644 --- a/sdnr/wt/odlux/apps/faultApp/src/pluginFault.tsx +++ b/sdnr/wt/odlux/apps/faultApp/src/pluginFault.tsx @@ -39,10 +39,11 @@ import { AddFaultNotificationAction } from "./actions/notificationActions"; import { createCurrentProblemsProperties, createCurrentProblemsActions, currentProblemsReloadAction } from "./handlers/currentProblemsHandler"; import { FaultStatus } from "./components/faultStatus"; -import { refreshFaultStatusAsyncAction } from "./actions/statusActions"; +import { refreshFaultStatusAsyncAction, SetFaultStatusAction } from "./actions/statusActions"; let currentMountId: string | undefined = undefined; let currentSeverity: string | undefined = undefined; +let refreshInterval: ReturnType<typeof window.setInterval> | null = null; const mapProps = (state: IApplicationStoreState) => ({ currentProblemsProperties: createCurrentProblemsProperties(state), @@ -140,11 +141,30 @@ export function register() { applicationApi.applicationStoreInitialized.then(store => { store.dispatch(refreshFaultStatusAsyncAction); }); - - window.setInterval(() => { + + applicationApi.loginEvent.addHandler(e=>{ + refreshInterval = startRefreshInterval() as any; + }) + + applicationApi.logoutEvent.addHandler(e=>{ + applicationApi.applicationStoreInitialized.then(store => { - store.dispatch(refreshFaultStatusAsyncAction); + store.dispatch(new SetFaultStatusAction(0, 0, 0, 0, false)); + clearInterval(refreshInterval!); }); - }, 15000); + }) + + + + function startRefreshInterval(){ + const refreshFaultStatus = window.setInterval(() => { + applicationApi.applicationStoreInitialized.then(store => { + + store.dispatch(refreshFaultStatusAsyncAction); + }); + }, 15000); + + return refreshFaultStatus; + } } |