Files
cms_thermo_active/Step/wwwroot/src/modules/app-header.ts
T
Paolo Possanzini 3dc85db689 camelcase
2018-04-09 17:30:18 +02:00

105 lines
2.8 KiB
TypeScript

import Vue from "vue";
import Component from "vue-class-component";
import { AppRibbon, UserInfo, ProcessInfo } from "./base-components";
import { AppModel, buttonStatus } from "src/store";
import { Factory, MessageService } from "src/_base";
import { Hub } from "src/services/hub";
import { Watch } from "vue-property-decorator";
declare let $: any;
@Component({ name: "app-header", components: { appRibbon: AppRibbon, userInfo: UserInfo, processInfo: ProcessInfo } })
export default class AppHeader extends Vue {
$store: any;
public get state() { return this.$store.state.machineStatus; };
public get isMainViewLiftedUp() { return this.$store.state.isMainViewLiftedUp; }
public get mainStatus() { return this.$store.getters.mainStatus; };
public get powerOnStatus() { return this.$store.getters.powerOnAlarms; };
mounted() {
Factory.Get(MessageService).subscribeToChannel("force-ui-update", args => {
this.$forceUpdate();
});
$('.process-container').mousewheel(function (e, delta) {
this.scrollLeft -= (delta * 40);
e.preventDefault();
});
}
public get alarmTitle() {
let s = this.$store.state as AppModel;
switch (this.ribbonStatus) {
case ribbonStatusEnum.Warning:
if (this.alarmCount == 1) return "warning_ribbon_title_1_item";
return "warning_ribbon_title_more_items";
case ribbonStatusEnum.Alarm:
if (this.alarmCount == 1) return "alarm_ribbon_title_1_item";
return "alarm_ribbon_title_more_items";
}
return "";
}
public get alarms() {
let s = this.$store.state as AppModel;
return s.alarms.alarms.concat(s.alarms.warnings);
}
public get processes() {
let s = this.$store.state as AppModel;
return s.process.process;
}
public get alarmCount() {
return this.alarms.length;
}
public get showDetails(): boolean {
let s = this.$store.state as AppModel;
switch (this.ribbonStatus) {
case ribbonStatusEnum.Warning:
return s.alarms.warnings.length == 1;
case ribbonStatusEnum.Alarm:
return s.alarms.alarms.length == 1;
}
return false
}
public get ribbonStatus(): ribbonStatusEnum {
// Controllo se ci sono allarmi
let s = this.$store.state as AppModel;
if (s.alarms.alarms.length > 0) return ribbonStatusEnum.Alarm;
if (s.alarms.warnings.length > 0) return ribbonStatusEnum.Warning;
if (s.process.running) return ribbonStatusEnum.Working;
return ribbonStatusEnum.Idle;
}
public get serviceRequired() {
return this.$store.state.alarms.serviceAlarms.length > 0;
}
public sendMessage(name: string) {
Factory.Get(MessageService).publishToChannel(name);
}
public manageClick(btn: buttonStatus) {
if (btn.clickable)
Hub.Current.sendPowerCommand(btn.id);
}
}
enum ribbonStatusEnum {
Idle = 0,
Working = 1,
Warning = 2,
Alarm = 3
}