diff --git a/Thermo.Active.Config/Config/areasConfig.xml b/Thermo.Active.Config/Config/areasConfig.xml index ae8abc83..434ac522 100644 --- a/Thermo.Active.Config/Config/areasConfig.xml +++ b/Thermo.Active.Config/Config/areasConfig.xml @@ -40,4 +40,9 @@ true false + + true + true + false + \ No newline at end of file diff --git a/Thermo.Active.Config/Config/areasConfigValidator.xsd b/Thermo.Active.Config/Config/areasConfigValidator.xsd index f63495a7..c774ab5b 100644 --- a/Thermo.Active.Config/Config/areasConfigValidator.xsd +++ b/Thermo.Active.Config/Config/areasConfigValidator.xsd @@ -82,6 +82,16 @@ + + + + + + + + + + diff --git a/Thermo.Active.Config/ServerConfig.cs b/Thermo.Active.Config/ServerConfig.cs index e1b1b2e2..83faa38e 100644 --- a/Thermo.Active.Config/ServerConfig.cs +++ b/Thermo.Active.Config/ServerConfig.cs @@ -47,6 +47,7 @@ namespace Thermo.Active.Config public static AreasConfigModel ScadaConfig; public static AreasConfigModel JobEditorConfig; public static AreasConfigModel UsersConfig; + public static AreasConfigModel ThermoHoodConfig; public static List ProductionScadaSchema = new List(); public static List ConfiguredScadaSchema = new List(); diff --git a/Thermo.Active.Config/ServerConfigController.cs b/Thermo.Active.Config/ServerConfigController.cs index e708013b..9fe14bcf 100644 --- a/Thermo.Active.Config/ServerConfigController.cs +++ b/Thermo.Active.Config/ServerConfigController.cs @@ -211,6 +211,10 @@ namespace Thermo.Active.Config case AREAS.USERS_KEY: SetAreaValue(ref UsersConfig, element); break; + + case AREAS.THERMO_HOOD_KEY: + SetAreaValue(ref ThermoHoodConfig, element); + break; } } diff --git a/Thermo.Active.Database/Migrations/Configuration.cs b/Thermo.Active.Database/Migrations/Configuration.cs index 5f8f9cf1..18c06c93 100644 --- a/Thermo.Active.Database/Migrations/Configuration.cs +++ b/Thermo.Active.Database/Migrations/Configuration.cs @@ -52,6 +52,7 @@ namespace Thermo.Active.Database.Migrations new FunctionAccessModel() { Name = "usersArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 30, ReadLevelMin = 1, PlcId = 0 }, new FunctionAccessModel() { Name = "jobeditorArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 20, ReadLevelMin = 1, PlcId = 0 }, new FunctionAccessModel() { Name = "utilitiesArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 }, + new FunctionAccessModel() { Name = "thermoHoodArea", Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 30, ReadLevelMin = 1, PlcId = 0 }, // thermo functions new FunctionAccessModel() { Name = RECIPE_MANAGER, Area = GENERAL_KEY, Enabled = true, WriteLevelMin = 1, ReadLevelMin = 1, PlcId = 0 } diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index fc041bc4..68f76c62 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -263,6 +263,7 @@ namespace Thermo.Active.Model public const string USERS_KEY = "users"; public const string THERMO_KEY = "thermo"; public const string RISC_KEY = "risc"; + public const string THERMO_HOOD_KEY = "thermoHood"; } // Config File Names diff --git a/Thermo.Active.Model/DTOModels/DTOStartupConfigurationModel.cs b/Thermo.Active.Model/DTOModels/DTOStartupConfigurationModel.cs index ed8fd1a3..21a6803f 100644 --- a/Thermo.Active.Model/DTOModels/DTOStartupConfigurationModel.cs +++ b/Thermo.Active.Model/DTOModels/DTOStartupConfigurationModel.cs @@ -12,5 +12,6 @@ namespace Thermo.Active.Model.DTOModels public AreasConfigModel ScadaConfig; public AreasConfigModel JobEditorConfig; public AreasConfigModel UsersConfig; + public AreasConfigModel ThermoHoodConfig; } } diff --git a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs index 35f08dbe..3860c24e 100644 --- a/Thermo.Active/Controllers/WebApi/ConfigurationController.cs +++ b/Thermo.Active/Controllers/WebApi/ConfigurationController.cs @@ -27,7 +27,8 @@ namespace Thermo.Active.Controllers.WebApi ReportConfig = ReportConfig, UtilitiesConfig = UtilitiesConfig, JobEditorConfig = JobEditorConfig, - UsersConfig = UsersConfig + UsersConfig = UsersConfig, + ThermoHoodConfig = ThermoHoodConfig }; return Ok(startupConfiguration); diff --git a/Thermo.Active/wwwroot/assets/icons/png/ico-bt-dark-advanced.png b/Thermo.Active/wwwroot/assets/icons/png/ico-bt-dark-advanced.png new file mode 100644 index 00000000..811f63e4 Binary files /dev/null and b/Thermo.Active/wwwroot/assets/icons/png/ico-bt-dark-advanced.png differ diff --git a/Thermo.Active/wwwroot/assets/styles/base/buttons.less b/Thermo.Active/wwwroot/assets/styles/base/buttons.less index 59e126d7..7a469b1b 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/buttons.less +++ b/Thermo.Active/wwwroot/assets/styles/base/buttons.less @@ -139,7 +139,7 @@ button.btn.btn-success[disabled] { } button.under { - min-width: 118px; + min-width: 140px; height: 45px; object-fit: contain; border-radius: 100px; @@ -154,6 +154,13 @@ button.under { font-weight: 500; font-size: 18px; + &.thermoHood{ + min-width:45px; + max-width: 45px; + margin-right: 15px; + margin-left: 10px; + } + img { max-width: 178px; max-height: 45px; diff --git a/Thermo.Active/wwwroot/assets/styles/base/footer.less b/Thermo.Active/wwwroot/assets/styles/base/footer.less index 8aa6f1ac..af808782 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/footer.less +++ b/Thermo.Active/wwwroot/assets/styles/base/footer.less @@ -7,7 +7,7 @@ @footer-button-halfball-size: @footer-button-ball-size / 2; @footer-button-margin: 19px; @footer-padding: 0 0 9px 8px; -@footer-machine-area-size: 300px; +@footer-machine-area-size: 390px; footer { position: absolute; @@ -29,6 +29,9 @@ footer { img { margin: 0px 5px; } + .noThermoHood{ + min-width: 45px; + } } .container { diff --git a/Thermo.Active/wwwroot/assets/styles/base/modals.less b/Thermo.Active/wwwroot/assets/styles/base/modals.less index 7ac39fcb..31cd3695 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/modals.less +++ b/Thermo.Active/wwwroot/assets/styles/base/modals.less @@ -45,6 +45,8 @@ @modal-history-maintenance-height: 700px; @modal-create-user-width: 752px; @modal-create-user-height: 550px; +@modal-resistance-info-width: 450px; +@modal-resistance-info-height: 650px; @modal-machine-height: 730px; @modal-machine-width: 600px; @modal-machine-top: @modal-machine-height / 2; @@ -3904,6 +3906,54 @@ justify-content: flex-end; } } +.@{modal}.info-resistance { + width: @modal-resistance-info-width; + height: @modal-resistance-info-height; + top: calc(~"50%"- @modal-resistance-info-height / 2); + left: calc(~"50%"- @modal-resistance-info-width / 2); + + header { + background-color: @color-darkish-blue; + color: @color-white; + font-family: @font-family; + font-weight: 600; + font-size: 24px; + text-align: left; + padding: 0px 23px; + + } + + .details { + text-align: center; + color: @color-greyish-brown; + + .status{ + display: flex; + flex-flow: row; + align-items: center; + justify-content: flex-end; + + strong { + font-size: 2.5em; + margin-right: 100px; + margin-left: 10px; + width: 10%; + + .fa-check{ + color: #90c03d; + } + .fa-exclamation-triangle{ + color: #d0021b; + } + } + } + + &>hr { + border: none; + margin-bottom: 40px; + } + } +} .@{modal}.create-user { width: @modal-create-user-width; diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 4007d8be..d15ea675 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -3998,6 +3998,47 @@ article .box .body { align-items: center; justify-content: flex-end; } +.modal.info-resistance { + width: 450px; + height: 650px; + top: calc(50%-650px / 2); + left: calc(50%-450px / 2); +} +.modal.info-resistance header { + background-color: #002680; + color: #fff; + font-family: 'Work Sans', sans-serif; + font-weight: 600; + font-size: 24px; + text-align: left; + padding: 0px 23px; +} +.modal.info-resistance .details { + text-align: center; + color: #4b4b4b; +} +.modal.info-resistance .details .status { + display: flex; + flex-flow: row; + align-items: center; + justify-content: flex-end; +} +.modal.info-resistance .details .status strong { + font-size: 2.5em; + margin-right: 100px; + margin-left: 10px; + width: 10%; +} +.modal.info-resistance .details .status strong .fa-check { + color: #90c03d; +} +.modal.info-resistance .details .status strong .fa-exclamation-triangle { + color: #d0021b; +} +.modal.info-resistance .details > hr { + border: none; + margin-bottom: 40px; +} .modal.create-user { width: 752px; height: 550px; @@ -6104,7 +6145,7 @@ button.btn.btn-success[disabled]:hover { background-image: linear-gradient(to bottom, #1756ad, #002680) !important; } button.under { - min-width: 118px; + min-width: 140px; height: 45px; object-fit: contain; border-radius: 100px; @@ -6119,6 +6160,12 @@ button.under { font-weight: 500; font-size: 18px; } +button.under.thermoHood { + min-width: 45px; + max-width: 45px; + margin-right: 15px; + margin-left: 10px; +} button.under img { max-width: 178px; max-height: 45px; @@ -6927,7 +6974,7 @@ footer .machine-area { position: absolute; bottom: 0; right: 0; - width: 300px; + width: 390px; height: 80px; display: flex; align-items: center; @@ -6936,13 +6983,16 @@ footer .machine-area { footer .machine-area img { margin: 0px 5px; } +footer .machine-area .noThermoHood { + min-width: 45px; +} footer .container { display: flex; flex-direction: row; align-items: flex-end; background-image: linear-gradient(to bottom, #1791ff, #005e94); box-shadow: 3px 2px 3px 0 rgba(0, 0, 0, 0.4); - right: 300px; + right: 390px; margin: 0; border-top-right-radius: 40px; border-bottom-right-radius: 40px; diff --git a/Thermo.Active/wwwroot/src/App.ts b/Thermo.Active/wwwroot/src/App.ts index e197bd73..a055c325 100644 --- a/Thermo.Active/wwwroot/src/App.ts +++ b/Thermo.Active/wwwroot/src/App.ts @@ -283,10 +283,11 @@ export default class app extends Vue { } } applyViewPosition(position, removetransition?) { + /* NO HANDLER (this.$refs["main-view"] as any).style = (this.$refs["main-view-handler"] as any).style = "transform:translateY(" + position + "px);" + - (removetransition ? "transition:unset;" : ""); + (removetransition ? "transition:unset;" : "");*/ } }; diff --git a/Thermo.Active/wwwroot/src/App.vue b/Thermo.Active/wwwroot/src/App.vue index 9166aec2..f2ce7e62 100644 --- a/Thermo.Active/wwwroot/src/App.vue +++ b/Thermo.Active/wwwroot/src/App.vue @@ -14,8 +14,8 @@ - - + + diff --git a/Thermo.Active/wwwroot/src/app.modules.ts b/Thermo.Active/wwwroot/src/app.modules.ts index 31b2320d..587820ca 100644 --- a/Thermo.Active/wwwroot/src/app.modules.ts +++ b/Thermo.Active/wwwroot/src/app.modules.ts @@ -35,6 +35,7 @@ import ModalMissingTools from "./modules/base-components/modal-missing-tools.vue import ProgramManagement from "./modules/program-management.vue"; import ZoomImage from './modules/base-components/zoom-image.vue'; import ModalReportSelectColumn from './modules/base-components/modal-report-select-column.vue'; +import ModalInfoResistance from "./modules/base-components/modal-info-resistance.vue"; export { @@ -56,7 +57,8 @@ export { ZoomImage, ModalCreateUser, ModalPasswordUser, - ModalRoleUser + ModalRoleUser, + ModalInfoResistance } diff --git a/Thermo.Active/wwwroot/src/app.routes.ts b/Thermo.Active/wwwroot/src/app.routes.ts index f5c4042f..2b040d00 100644 --- a/Thermo.Active/wwwroot/src/app.routes.ts +++ b/Thermo.Active/wwwroot/src/app.routes.ts @@ -1,5 +1,5 @@ import { - // Home, + Home, // CreateMaintenance, // SoftKeysPrefered, // CreateQueue, @@ -34,7 +34,7 @@ import { routes as users } from "./app_modules/users/route"; //import { routes as ioRoutes } from "@/app_modules_thermo/sotto-cofano/route"; export let routes = [ - { path: "", component: productionRoutes[0].component, name: productionRoutes[0].name, meta: { title: "Dashboard" } }, + { path: "", component: Home, name: "home", meta: { title: "Dashboard" } }, { path: "/utilities", component: Utilities, meta: { title: "Utilities", area: "utilities" } }, // { path: "/card-utilities", component: CardUtilities, meta: { title: "Card-Utilities", area: "card-utilities" } }, // { path: "/card-tool-depot", component: CardToolDepot, meta: { title: "Card-Tool-Depot", area: "card-tool-depot" } }, diff --git a/Thermo.Active/wwwroot/src/app_modules/machine/components/login.ts b/Thermo.Active/wwwroot/src/app_modules/machine/components/login.ts index f20ac9a6..1cc8fed6 100644 --- a/Thermo.Active/wwwroot/src/app_modules/machine/components/login.ts +++ b/Thermo.Active/wwwroot/src/app_modules/machine/components/login.ts @@ -6,7 +6,7 @@ import { Factory, messageService, awaiter } from "@/_base"; import { loginService } from "@/app.modules"; import { DataService } from 'src/services/dataService'; import iziToast, { IziToastSettings } from "izitoast"; -import { store, machineStatusActions } from "@/store"; +import { store, machineStatusActions,appModelActions } from "@/store"; @Component({ name: "login", components: { modal: Modal } }) export default class Login extends Vue { @@ -31,6 +31,10 @@ export default class Login extends Vue { if(!this.checkIfUserIsAuthorized()){ userNotAuthorized = true; } + + if(!this.checkIfUserIsAuthorizedToThermoHood()){ + appModelActions.MainViewLiftDown(this.$store); + } }).catch(() => { this.logginIn = false; this.hasError = !service.isAuthenticated; @@ -67,6 +71,11 @@ export default class Login extends Vue { return machineStatusActions.isAreaVisible(store, this.URLS_TO_FUNCTIONS_BINDING[this.$route.path]); } + checkIfUserIsAuthorizedToThermoHood(): boolean { + return machineStatusActions.isAreaVisible(store, "thermoHood"); + } + + URLS_TO_FUNCTIONS_BINDING = { "/production": "production", "/tooling": "tooling", diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/Assi/components/tables/assi-table/assi-table.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/Assi/components/tables/assi-table/assi-table.vue index 9abfe243..9605e0f9 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/Assi/components/tables/assi-table/assi-table.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/Assi/components/tables/assi-table/assi-table.vue @@ -13,7 +13,7 @@ - + diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/InputOutput/components/tables/outputTab/output-row-item.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/InputOutput/components/tables/outputTab/output-row-item.ts index 9b0deb27..37df6a22 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/InputOutput/components/tables/outputTab/output-row-item.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/InputOutput/components/tables/outputTab/output-row-item.ts @@ -2,6 +2,7 @@ import Component from "vue-class-component"; import Vue from "vue"; import { Prop, Watch } from "vue-property-decorator"; import { underTheHoodService } from "@/services/underTheHoodService"; +import { Modal as modal, ModalHelper } from "@/components/modals"; @Component({}) export default class outputRow extends Vue { @@ -24,7 +25,20 @@ export default class outputRow extends Vue { } async force(value: number) { + + console.log("force",value); await underTheHoodService.forceChannel(this.group, this.item, value); + /* + if(this.item.isForced) + await underTheHoodService.forceChannel(this.group, this.item, value); + else + { + ModalHelper.AskConfirm( this.$options.filters.localize("modal_confirm_title", "Richiesta di conferma"), + this.$options.filters.localize("softkey_confirm", "Confirm?"), + async() => { + await underTheHoodService.forceChannel(this.group, this.item, value); + }, null, "modal"); + }*/ } async reset() { diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/InputOutput/components/tables/outputTab/output-row-item.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/InputOutput/components/tables/outputTab/output-row-item.vue index da7ae59e..11d20dfc 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/InputOutput/components/tables/outputTab/output-row-item.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/InputOutput/components/tables/outputTab/output-row-item.vue @@ -5,7 +5,7 @@ @@ -41,6 +42,7 @@ :id="`output-${group}`" v-for="(item, index) of items[group].filter(i => i.bank == bankid)" :key="`h-${idx}-${idx2}-${index}`" + :class="`back-${index%2}`" > diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/LogCicloAutomatico/components/tables/log-ciclo-automatico-table/log-ciclo-automatico-table.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/LogCicloAutomatico/components/tables/log-ciclo-automatico-table/log-ciclo-automatico-table.vue index 42af9788..0ca3ca14 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/LogCicloAutomatico/components/tables/log-ciclo-automatico-table/log-ciclo-automatico-table.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/sotto-cofano/LogCicloAutomatico/components/tables/log-ciclo-automatico-table/log-ciclo-automatico-table.vue @@ -10,7 +10,7 @@ - +