summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/apps/faultApp
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/apps/faultApp')
-rw-r--r--sdnr/wt/odlux/apps/faultApp/src/actions/statusActions.ts15
-rw-r--r--sdnr/wt/odlux/apps/faultApp/src/handlers/faultStatusHandler.ts9
-rw-r--r--sdnr/wt/odlux/apps/faultApp/src/pluginFault.tsx30
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;
+ }
}