From aaaa8f8462f479219a10249f87f8a1af3018f3eb Mon Sep 17 00:00:00 2001 From: Nicola Carminati Date: Tue, 13 Nov 2018 15:08:06 +0100 Subject: [PATCH] Fix modal-call inside project & added new layer of modals called "modal-nc" that you can see the Header layer --- Step/wwwroot/assets/styles/base/alarms.less | 6 +-- Step/wwwroot/assets/styles/base/header.less | 6 +-- Step/wwwroot/assets/styles/base/modals.less | 4 ++ Step/wwwroot/assets/styles/style.css | 16 ++---- Step/wwwroot/src/App.vue | 43 ++++++++------- Step/wwwroot/src/app.business-logic.ts | 33 ++++++++++-- .../alarms/components/alarms-list.ts | 2 +- .../alarms/components/alarms-list.vue | 4 +- Step/wwwroot/src/components/maintenance.ts | 2 +- Step/wwwroot/src/components/production.ts | 2 +- Step/wwwroot/src/components/test-status.ts | 2 +- .../src/components/tooling/tooling-depot.ts | 10 ++-- .../components/tooling/tooling-equipment.ts | 10 ++-- .../components/tooling/tooling-families.ts | 10 ++-- .../src/components/tooling/tooling-magpos.ts | 10 ++-- .../src/components/tooling/tooling-shanks.ts | 10 ++-- .../wwwroot/src/components/tooling/tooling.ts | 10 ++-- Step/wwwroot/src/components/utilities.ts | 2 +- Step/wwwroot/src/modules/app-header.ts | 2 +- Step/wwwroot/src/modules/app-header.vue | 4 +- .../modules/base-components/ModalHelper.ts | 10 +++- .../src/modules/base-components/index.js | 2 + .../base-components/modal-nc-container.ts | 53 +++++++++++++++++++ .../base-components/modal-nc-container.vue | 10 ++++ .../src/modules/base-components/user-info.ts | 2 +- .../src/modules/base-components/user-info.vue | 5 +- Step/wwwroot/src/services/hub.ts | 2 +- 27 files changed, 183 insertions(+), 89 deletions(-) create mode 100644 Step/wwwroot/src/modules/base-components/modal-nc-container.ts create mode 100644 Step/wwwroot/src/modules/base-components/modal-nc-container.vue diff --git a/Step/wwwroot/assets/styles/base/alarms.less b/Step/wwwroot/assets/styles/base/alarms.less index 48f9dbc1..b77e51b5 100644 --- a/Step/wwwroot/assets/styles/base/alarms.less +++ b/Step/wwwroot/assets/styles/base/alarms.less @@ -9,16 +9,12 @@ top: 40px; background-color: #fff; padding: 0 0; - z-index: 949; + z-index: 800; box-sizing: border-box; display: flex; flex-wrap: nowrap; overflow: hidden; transition: width 200ms ease-in-out, height 200ms ease-in-out, padding 200ms ease-in-out, background-color 200ms ease-in-out,box-shadow 0ms 0ms; - &.coveredByModal{ - z-index: 500; - filter: blur(10px); - } &.expanded { width: 494px; diff --git a/Step/wwwroot/assets/styles/base/header.less b/Step/wwwroot/assets/styles/base/header.less index c2a7eae2..6fe25205 100644 --- a/Step/wwwroot/assets/styles/base/header.less +++ b/Step/wwwroot/assets/styles/base/header.less @@ -9,14 +9,10 @@ height: @header-height; width: calc(~"100% - 152px"); position: absolute; - z-index: 950; + z-index: 801; top: 0; right: 0; left: 0; - &.coveredByModal{ - z-index: 200; - filter: blur(10px); - } button { font-size: 28px; justify-content: center; diff --git a/Step/wwwroot/assets/styles/base/modals.less b/Step/wwwroot/assets/styles/base/modals.less index 41e6cb4f..366bc457 100644 --- a/Step/wwwroot/assets/styles/base/modals.less +++ b/Step/wwwroot/assets/styles/base/modals.less @@ -338,6 +338,10 @@ background-color: @color-backdrop; z-index: 900; + &.nc { + z-index: 700; + } + &.internal { height: calc(~"100vh - 80px"); } diff --git a/Step/wwwroot/assets/styles/style.css b/Step/wwwroot/assets/styles/style.css index ea1aaf82..c293bad6 100644 --- a/Step/wwwroot/assets/styles/style.css +++ b/Step/wwwroot/assets/styles/style.css @@ -288,6 +288,9 @@ background-color: rgba(217, 217, 217, 0.5); z-index: 900; } +.backdrop.nc { + z-index: 700; +} .backdrop.internal { height: calc(100vh - 80px); } @@ -2612,15 +2615,11 @@ fieldset[disabled] .form-group.is-focused .togglebutton label { height: 80px; width: calc(100% - 152px); position: absolute; - z-index: 950; + z-index: 801; top: 0; right: 0; left: 0; } -#app > header.coveredByModal { - z-index: 200; - filter: blur(10px); -} #app > header button { font-size: 28px; justify-content: center; @@ -3222,18 +3221,13 @@ footer .container button.big:before { top: 40px; background-color: #fff; padding: 0 0; - z-index: 949; + z-index: 800; box-sizing: border-box; display: flex; flex-wrap: nowrap; overflow: hidden; transition: width 200ms ease-in-out, height 200ms ease-in-out, padding 200ms ease-in-out, background-color 200ms ease-in-out, box-shadow 0ms 0ms; } -#alarm-list.coveredByModal, -#service-list.coveredByModal { - z-index: 500; - filter: blur(10px); -} #alarm-list.expanded, #service-list.expanded { width: 494px; diff --git a/Step/wwwroot/src/App.vue b/Step/wwwroot/src/App.vue index 9661c0e3..f1398869 100644 --- a/Step/wwwroot/src/App.vue +++ b/Step/wwwroot/src/App.vue @@ -1,15 +1,15 @@ @@ -36,7 +37,7 @@ import { alarmList } from "src/app_modules/alarms"; import { LoginService } from "src/services/loginService"; import { DataService } from "src/services/dataService"; import { Factory, MessageService } from "./_base"; -import { ModalContainer, ModalHelper } from "./modules/base-components"; +import { ModalContainer,ModalNcContainer, ModalHelper } from "./modules/base-components"; import { appModelActions } from "src/store"; import underTheHood from "src/components/under-the-hood.vue"; @@ -49,6 +50,7 @@ export default { appHeader: Header, appFooter: Footer, modalContainer: ModalContainer, + modalNcContainer: ModalNcContainer, alarmList, underTheHood }, @@ -64,20 +66,25 @@ export default { ms.subscribeToChannel("show-modal", args => { this.applyBlur = true; - this.showHeaderOnBlur = false; - if (args[3]) - this.showHeaderOnBlur = args[3]; }); ms.subscribeToChannel("hide-modal", args => { this.applyBlur = false; }); - ms.subscribeToChannel("show-modal2", args => { + ms.subscribeToChannel("show-modal-nc-called", args => { + this.applyBlurNc = true; + }); + + ms.subscribeToChannel("hide-modal-nc-called", args => { + this.applyBlurNc = false; + }); + + ms.subscribeToChannel("show-modal-internal", args => { this.applyBlurInternal = true; }); - ms.subscribeToChannel("hide-modal2", args => { + ms.subscribeToChannel("hide-modal-internal", args => { this.applyBlurInternal = false; }); @@ -224,7 +231,7 @@ export default { return { state: this.$store.state, applyBlur: false, - showHeaderOnBlur:false, + applyBlurNc: false, applyBlurInternal: false, showHMIinProduction: false, loadingOperations: 0 diff --git a/Step/wwwroot/src/app.business-logic.ts b/Step/wwwroot/src/app.business-logic.ts index 5cc1a099..d3579c76 100644 --- a/Step/wwwroot/src/app.business-logic.ts +++ b/Step/wwwroot/src/app.business-logic.ts @@ -22,11 +22,13 @@ let HMIvisibleInProduction = false let oldHMIvisible = false; let HMIAlarmsVisible = false; let HMIModalsVisible = false; +let HMIModalsNcVisible = false; let HMIDragging = false; let HMIshowTimeout; let HMIAlarmsTimeout; let HMIModalsTimeout; let HMIDraggingTimeout; +let HMIModalsNcTimeout; let HMIScreenshotInterval; let HMIprodTimeout; let RerenderInterval; @@ -35,7 +37,8 @@ const messageService = Factory.Get(MessageService); messageService.subscribeToChannel("show-user-info", () => { ModalHelper.ShowModal(UserInfoDialog); }); messageService.subscribeToChannel("show-machine-info", () => { ModalHelper.ShowModal(MachineInfoDialog); }); -messageService.subscribeToChannel("show-axes-calibration", () => { ModalHelper.ShowModal(AxesCalibration,null,true); }); +messageService.subscribeToChannel("show-axes-calibration", () => { ModalHelper.ShowNcModal(AxesCalibration); }); +messageService.subscribeToChannel("hide-axes-calibration", () => { ModalHelper.HideNcModal(AxesCalibration); }); @@ -165,6 +168,14 @@ if (typeof cmsClient != "undefined") { showModal() }); + Factory.Get(MessageService).subscribeToChannel("HMI-show-modal-nc", args => { + clearTimeout(HMIModalsNcTimeout); + if (args[0] > 0) + HMIModalsNcTimeout = setTimeout(showNcModal, args[0]); + else + showNcModal() + }); + Factory.Get(MessageService).subscribeToChannel("HMI-hide-modal", args => { clearTimeout(HMIModalsTimeout); if (args[0] > 0) @@ -173,6 +184,14 @@ if (typeof cmsClient != "undefined") { hideModal() }); + Factory.Get(MessageService).subscribeToChannel("HMI-hide-modal-nc", args => { + clearTimeout(HMIModalsNcTimeout); + if (args[0] > 0) + HMIModalsNcTimeout = setTimeout(hideNcModal, args[0]); + else + hideNcModal() + }); + Factory.Get(MessageService).subscribeToChannel("HMI-start-drag", args => { clearTimeout(HMIDraggingTimeout); if (args[0] > 0) @@ -206,6 +225,10 @@ function hideModal() { HMIModalsVisible = false; ElaborateHMIStatus(); } +function hideNcModal() { + HMIModalsNcVisible = false; + ElaborateHMIStatus(); +} function stopDrag() { HMIDragging = false; ElaborateHMIStatus(); @@ -229,6 +252,10 @@ function showModal() { HMIModalsVisible = true; ElaborateHMIStatus(); } +function showNcModal() { + HMIModalsNcVisible = true; + ElaborateHMIStatus(); +} function startDrag() { HMIDragging = true; ElaborateHMIStatus(); @@ -248,12 +275,12 @@ function ElaborateHMIStatus() { clearInterval(HMIScreenshotInterval); cmsClient.setNcWindowState(0); } - else if (hmiv && !HMIAlarmsVisible && !HMIModalsVisible && !HMIDragging) { + else if (hmiv && !HMIAlarmsVisible && !HMIModalsVisible && !HMIDragging && !HMIModalsNcVisible) { if (HMIScreenshotInterval) clearInterval(HMIScreenshotInterval); cmsClient.setNcWindowState(1); } - else if (hmiv && (HMIAlarmsVisible || HMIModalsVisible || HMIDragging)) { + else if (hmiv && (HMIAlarmsVisible || HMIModalsVisible || HMIDragging || HMIModalsNcVisible)) { cmsClient.setNcWindowState(0); } } diff --git a/Step/wwwroot/src/app_modules/alarms/components/alarms-list.ts b/Step/wwwroot/src/app_modules/alarms/components/alarms-list.ts index fa930189..195436d6 100644 --- a/Step/wwwroot/src/app_modules/alarms/components/alarms-list.ts +++ b/Step/wwwroot/src/app_modules/alarms/components/alarms-list.ts @@ -10,7 +10,7 @@ import { Hub } from "src/services/hub"; declare let $: any; -@Component({ name: "alarms-list", components: { alarmItem, alarmDetail }, props: {modalOpened: Boolean, showHeaderOnBlur: Boolean} }) +@Component({ name: "alarms-list", components: { alarmItem, alarmDetail }, props: {applyBlur: Boolean} }) export default class alarmsList extends Vue { $store: any; $route: any; diff --git a/Step/wwwroot/src/app_modules/alarms/components/alarms-list.vue b/Step/wwwroot/src/app_modules/alarms/components/alarms-list.vue index a977a297..2cbc2962 100644 --- a/Step/wwwroot/src/app_modules/alarms/components/alarms-list.vue +++ b/Step/wwwroot/src/app_modules/alarms/components/alarms-list.vue @@ -1,6 +1,6 @@