Merge branch 'Release/MpTab_DP_01'
This commit is contained in:
@@ -2,6 +2,7 @@ using global::Microsoft.AspNetCore.Components;
|
||||
using MP.Data.DbModels;
|
||||
using MP.Data.Services;
|
||||
using MP_TAB3.Shared;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Reflection.Metadata;
|
||||
|
||||
@@ -61,47 +62,56 @@ namespace MP_TAB3.Components
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
private static Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
// inizilamente riporto machcina corrente da MSE
|
||||
if (RecMSE == null)
|
||||
try
|
||||
{
|
||||
IdxMaccSel = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(idxMaccSel))
|
||||
// inizilamente riporto macchina corrente da MSE
|
||||
if (RecMSE == null)
|
||||
{
|
||||
// verifico se la macchina sia configurata tra le MSFD...
|
||||
if (SMServ.DictMacchMulti.ContainsKey(RecMSE.IdxMacchina))
|
||||
IdxMaccSel = "";
|
||||
Log.Error("Impossibile selezionare: recMSE è nullo");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(idxMaccSel))
|
||||
{
|
||||
isMulti = SMServ.DictMacchMulti[RecMSE.IdxMacchina] == 1;
|
||||
}
|
||||
if (isMulti)
|
||||
{
|
||||
|
||||
var listMulti = await TDataService.VMSFDGetAll();
|
||||
ListMacchine = listMulti
|
||||
.Where(x => x.IdxMacchina.Contains($"{RecMSE.IdxMacchina}#"))
|
||||
.ToDictionary(x => x.IdxMacchina, x => x.CodMaccArticolo);
|
||||
|
||||
if (ListMacchine.Count > 0)
|
||||
// verifico se la macchina sia configurata tra le MSFD...
|
||||
if (SMServ.DictMacchMulti.ContainsKey(RecMSE.IdxMacchina))
|
||||
{
|
||||
// cerco se ho in storage la macchina selezionata...
|
||||
var idxMSel = MsgServ.UserPrefGet(idxMaccCurr);
|
||||
if (!string.IsNullOrEmpty(idxMSel))
|
||||
isMulti = SMServ.DictMacchMulti[RecMSE.IdxMacchina] == 1;
|
||||
}
|
||||
if (isMulti)
|
||||
{
|
||||
|
||||
var listMulti = await TDataService.VMSFDGetAll();
|
||||
ListMacchine = listMulti
|
||||
.Where(x => x.IdxMacchina.Contains($"{RecMSE.IdxMacchina}#"))
|
||||
.ToDictionary(x => x.IdxMacchina, x => x.CodMaccArticolo);
|
||||
|
||||
if (ListMacchine.Count > 0)
|
||||
{
|
||||
IdxMaccSel = idxMSel;
|
||||
}
|
||||
else
|
||||
{
|
||||
IdxMaccSel = ListMacchine.FirstOrDefault().Key;
|
||||
// cerco se ho in storage la macchina selezionata...
|
||||
var idxMSel = MsgServ.UserPrefGet(idxMaccCurr);
|
||||
if (!string.IsNullOrEmpty(idxMSel))
|
||||
{
|
||||
IdxMaccSel = idxMSel;
|
||||
}
|
||||
else
|
||||
{
|
||||
IdxMaccSel = ListMacchine.FirstOrDefault().Key;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Errore in MachSel.OnParametersSetAsync{Environment.NewLine}{exc}");
|
||||
}
|
||||
await Task.Delay(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -160,14 +160,16 @@ else
|
||||
<div class="px-0">
|
||||
Cicli Prod
|
||||
</div>
|
||||
@if (datiProdAct != null)
|
||||
{
|
||||
<div class="px-0">@($"{datiProdAct.PzTotODL}")</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="px-0">@($"{CRecMSE.PezziProd}")</div>
|
||||
}
|
||||
<div class="px-0 fs-4">
|
||||
@if (datiProdAct != null)
|
||||
{
|
||||
@($"{datiProdAct.PzTotODL}")
|
||||
}
|
||||
else
|
||||
{
|
||||
@($"{CRecMSE.PezziProd}")
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
@if (datiProdAct != null)
|
||||
{
|
||||
@@ -177,7 +179,7 @@ else
|
||||
<div class="px-0">
|
||||
Da Conferm.
|
||||
</div>
|
||||
<div class="px-0">
|
||||
<div class="px-0 fs-5">
|
||||
@($"{datiProdAct.Pz2RecTot}")
|
||||
</div>
|
||||
</div>
|
||||
@@ -188,7 +190,7 @@ else
|
||||
<div class="px-0">
|
||||
Da Conferm.
|
||||
</div>
|
||||
<div class="px-0">
|
||||
<div class="px-0 fs-5">
|
||||
@($"{datiProdAct.Pz2RecTot}")
|
||||
</div>
|
||||
</div>
|
||||
@@ -199,17 +201,18 @@ else
|
||||
<div class="px-0">
|
||||
Scarti Versati
|
||||
</div>
|
||||
<div class="px-0">
|
||||
<div class="px-0 fs-5">
|
||||
@($"{NumScartiConf}")
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else{
|
||||
else
|
||||
{
|
||||
<div class="fs-5 text-end text-secondary d-flex justify-content-between">
|
||||
<div class="px-0">
|
||||
Scarti Versati
|
||||
</div>
|
||||
<div class="px-0">
|
||||
<div class="px-0 fs-5">
|
||||
@($"{NumScartiConf}")
|
||||
</div>
|
||||
</div>
|
||||
@@ -220,7 +223,7 @@ else
|
||||
<div class="px-0">
|
||||
Rilav Versati
|
||||
</div>
|
||||
<div class="px-0">
|
||||
<div class="px-0 fs-5">
|
||||
@($"{datiProdAct.PzConfRilav}")
|
||||
</div>
|
||||
</div>
|
||||
@@ -231,7 +234,7 @@ else
|
||||
<div class="px-0">
|
||||
Rilav Versati
|
||||
</div>
|
||||
<div class="px-0">
|
||||
<div class="px-0 fs-5">
|
||||
@($"{datiProdAct.PzConfRilav}")
|
||||
</div>
|
||||
</div>
|
||||
@@ -240,7 +243,7 @@ else
|
||||
<div class="px-0">
|
||||
Buoni Vers.
|
||||
</div>
|
||||
<div class="px-0">
|
||||
<div class="px-0 fs-5">
|
||||
@($"{datiProdAct.PzConfBuoni}")
|
||||
</div>
|
||||
</div>
|
||||
@@ -251,7 +254,7 @@ else
|
||||
<div class="px-0">
|
||||
Extra
|
||||
</div>
|
||||
<div class="px-0">@($"{CRecMSE.extraVal}")</div>
|
||||
<div class="px-0 fs-5">@($"{CRecMSE.extraVal}")</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<Version>6.16.2503.1009</Version>
|
||||
<Version>6.16.2503.1309</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<RootNamespace>MP_TAB3</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MAPOSPEC </i>
|
||||
<h4>Versione: 6.16.2503.1009</h4>
|
||||
<h4>Versione: 6.16.2503.1309</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2503.1009
|
||||
6.16.2503.1309
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2503.1009</version>
|
||||
<version>6.16.2503.1309</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
@@ -136,11 +136,19 @@ article {
|
||||
}
|
||||
/* gestione override font size */
|
||||
* {
|
||||
font-size: 16px;
|
||||
font-size: 15px;
|
||||
}
|
||||
@media (max-width: 639.98px) {
|
||||
@media (max-width: 450.98) {
|
||||
* {
|
||||
font-size: 12px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.longStopListNotes {
|
||||
max-height: 120px;
|
||||
}
|
||||
}
|
||||
@media (max-width: 601.98px) {
|
||||
* {
|
||||
font-size: 16px;
|
||||
}
|
||||
.longStopListNotes {
|
||||
max-height: 120px;
|
||||
@@ -148,7 +156,7 @@ article {
|
||||
}
|
||||
@media (max-width: 800px) {
|
||||
* {
|
||||
font-size: 14px;
|
||||
font-size: 18px;
|
||||
}
|
||||
.top-row:not(.auth) {
|
||||
display: none;
|
||||
|
||||
@@ -155,12 +155,23 @@ a, .btn-link {
|
||||
|
||||
/* gestione override font size */
|
||||
* {
|
||||
font-size: 16px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
@media (max-width: 639.98px) {
|
||||
@media (max-width: 450.98) {
|
||||
* {
|
||||
font-size: 12px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.longStopListNotes {
|
||||
max-height: 120px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 601.98px) {
|
||||
* {
|
||||
font-size: 16px;
|
||||
}
|
||||
.longStopListNotes {
|
||||
max-height: 120px;
|
||||
@@ -169,7 +180,7 @@ a, .btn-link {
|
||||
|
||||
@media (max-width: 800px) {
|
||||
* {
|
||||
font-size: 14px;
|
||||
font-size: 18px;
|
||||
}
|
||||
.top-row:not(.auth) {
|
||||
display: none;
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');html,body{font-family:'Open Sans Condensed',sans-serif;background-color:#151321;color:#ededed;}.cardObj{border-radius:.375rem;background:linear-gradient(121deg,rgba(255,255,255,.2) -.71%,rgba(255,255,255,.05) 97.66%);box-shadow:0 4px 24px -1px rgba(0,0,0,.25);flex-shrink:0;}.cardObjNoBL{border-radius:.375rem 0 0 .375rem;background:linear-gradient(121deg,rgba(255,255,255,.2) -.71%,rgba(255,255,255,.05) 97.66%);box-shadow:0 4px 24px -1px rgba(0,0,0,.25);flex-shrink:0;}.cardFullHeight{border-radius:.375rem;background:linear-gradient(121deg,rgba(255,255,255,.2) -.71%,rgba(255,255,255,.05) 97.66%);box-shadow:0 4px 24px -1px rgba(0,0,0,.25);flex-shrink:0;height:100%;}.longStopListNotes{height:100%;}.borderStd{border-radius:.375rem;}.table-dark{--bs-table-color:#fff;--bs-table-bg:transparent;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color);}h1:focus{outline:0;}a,.btn-link{color:#0071c1;}.btn-primary{color:#fff;background-color:#1b6ec2;border-color:#1861ac;}.content{padding-top:1.1rem;}.valid.modified:not([type=checkbox]){outline:1px solid #26b050;}.invalid{outline:1px solid #f00;}.validation-message{color:#f00;}#blazor-error-ui{background:#ffffe0;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);display:none;left:0;padding:.6rem 1.25rem .7rem 1.25rem;position:fixed;width:100%;z-index:1000;}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:.75rem;top:.5rem;}.blazor-error-boundary{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem,#b32121;padding:1rem 1rem 1rem 3.7rem;color:#fff;}.blazor-error-boundary::after{content:"An error has occurred.";}.top-row{background-color:#05173d;justify-content:flex-end;height:3.5rem;display:flex;align-items:center;}.top-row ::deep a,.top-row ::deep .btn-link{white-space:nowrap;text-decoration:none;}.top-row ::deep a:hover,.top-row ::deep .btn-link:hover{text-decoration:underline;}.top-row ::deep a:first-child{overflow:hidden;text-overflow:ellipsis;}.top-row{position:sticky;top:0;z-index:1;}.top-row.auth ::deep a:first-child{flex:1;text-align:right;width:0;}.top-row,article{padding-left:1rem!important;padding-right:.5rem!important;}*{font-size:16px;}@media(max-width:639.98px){*{font-size:12px;}.longStopListNotes{max-height:120px;}}@media(max-width:800px){*{font-size:14px;}.top-row:not(.auth){display:none;}#mainBody{width:100%;}.top-row.auth{justify-content:space-between;}.top-row ::deep a,.top-row ::deep .btn-link{margin-left:0;}}
|
||||
@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');html,body{font-family:'Open Sans Condensed',sans-serif;background-color:#151321;color:#ededed;}.cardObj{border-radius:.375rem;background:linear-gradient(121deg,rgba(255,255,255,.2) -.71%,rgba(255,255,255,.05) 97.66%);box-shadow:0 4px 24px -1px rgba(0,0,0,.25);flex-shrink:0;}.cardObjNoBL{border-radius:.375rem 0 0 .375rem;background:linear-gradient(121deg,rgba(255,255,255,.2) -.71%,rgba(255,255,255,.05) 97.66%);box-shadow:0 4px 24px -1px rgba(0,0,0,.25);flex-shrink:0;}.cardFullHeight{border-radius:.375rem;background:linear-gradient(121deg,rgba(255,255,255,.2) -.71%,rgba(255,255,255,.05) 97.66%);box-shadow:0 4px 24px -1px rgba(0,0,0,.25);flex-shrink:0;height:100%;}.longStopListNotes{height:100%;}.borderStd{border-radius:.375rem;}.table-dark{--bs-table-color:#fff;--bs-table-bg:transparent;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color);}h1:focus{outline:0;}a,.btn-link{color:#0071c1;}.btn-primary{color:#fff;background-color:#1b6ec2;border-color:#1861ac;}.content{padding-top:1.1rem;}.valid.modified:not([type=checkbox]){outline:1px solid #26b050;}.invalid{outline:1px solid #f00;}.validation-message{color:#f00;}#blazor-error-ui{background:#ffffe0;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);display:none;left:0;padding:.6rem 1.25rem .7rem 1.25rem;position:fixed;width:100%;z-index:1000;}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:.75rem;top:.5rem;}.blazor-error-boundary{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem,#b32121;padding:1rem 1rem 1rem 3.7rem;color:#fff;}.blazor-error-boundary::after{content:"An error has occurred.";}.top-row{background-color:#05173d;justify-content:flex-end;height:3.5rem;display:flex;align-items:center;}.top-row ::deep a,.top-row ::deep .btn-link{white-space:nowrap;text-decoration:none;}.top-row ::deep a:hover,.top-row ::deep .btn-link:hover{text-decoration:underline;}.top-row ::deep a:first-child{overflow:hidden;text-overflow:ellipsis;}.top-row{position:sticky;top:0;z-index:1;}.top-row.auth ::deep a:first-child{flex:1;text-align:right;width:0;}.top-row,article{padding-left:1rem!important;padding-right:.5rem!important;}*{font-size:15px;}@media(max-width:450.98){*{font-size:14px;}.longStopListNotes{max-height:120px;}}@media(max-width:601.98px){*{font-size:16px;}.longStopListNotes{max-height:120px;}}@media(max-width:800px){*{font-size:18px;}.top-row:not(.auth){display:none;}#mainBody{width:100%;}.top-row.auth{justify-content:space-between;}.top-row ::deep a,.top-row ::deep .btn-link{margin-left:0;}}
|
||||
@@ -1,8 +1,10 @@
|
||||
<div class="row text-light">
|
||||
<div class="col-5 pe-0 text-left">
|
||||
<div class="d-flex justify-content-between text-light">
|
||||
<div class="px-1">
|
||||
<b>Mapo MON @(DateTime.Today.Year)</b> | <span class="small">v.@version</span>
|
||||
|
|
||||
<small class="fontSmall">@Width x @Height</small>
|
||||
</div>
|
||||
<div class="col-7 ps-0 text-end">
|
||||
<div class="px-2">
|
||||
<span class="small">@($"{DateTime.Now:HH:mm:ss}")</span> | <a class="text-light" href="https://www.egalware.com/" target="_blank"><img class="img-fluid" width="16" src="images/LogoEgw.png" /> Egalware </a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.JSInterop;
|
||||
using NLog;
|
||||
using System;
|
||||
|
||||
namespace MP.Mon.Components
|
||||
{
|
||||
public partial class CmpFooter:IDisposable
|
||||
public partial class CmpFooter : IDisposable
|
||||
{
|
||||
#region Public Methods
|
||||
|
||||
@@ -36,8 +39,46 @@ namespace MP.Mon.Components
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Public Classes
|
||||
|
||||
public class WindowDimension
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
public int Height { get; set; }
|
||||
public int Width { get; set; }
|
||||
|
||||
#endregion Public Properties
|
||||
}
|
||||
|
||||
#endregion Public Classes
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
[Inject]
|
||||
protected IJSRuntime JSRuntime { get; set; } = null!;
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected async Task getWDim()
|
||||
{
|
||||
var dimension = await JSRuntime.InvokeAsync<WindowDimension>("getWindowDimensions");
|
||||
Height = dimension.Height;
|
||||
Width = dimension.Width;
|
||||
}
|
||||
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (firstRender)
|
||||
{
|
||||
await getWDim();
|
||||
StateHasChanged();
|
||||
Log.Debug($"Dimensioni schermo: {Width}x{Height}");
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
var currAssembly = typeof(Program).Assembly.GetName();
|
||||
@@ -54,5 +95,13 @@ namespace MP.Mon.Components
|
||||
private Version version = null!;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Properties
|
||||
|
||||
private int Height { get; set; } = 0;
|
||||
|
||||
private int Width { get; set; } = 0;
|
||||
|
||||
#endregion Private Properties
|
||||
}
|
||||
}
|
||||
@@ -4,76 +4,140 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="card mb-3 border border-dark rounded rounded-3 shadow">
|
||||
<div class="card-body @cssStatus(CurrRecord.Semaforo) bg-gradient text-white p-1">
|
||||
<div class="card-title text-uppercase text-center fs-4 mb-0">@CurrRecord.Nome</div>
|
||||
<div class="bg-light bg-gradient text-dark px-1 rounded shadow small lh-sm py-1">
|
||||
<div class="card-text d-flex justify-content-between small">
|
||||
<div class="px-1">
|
||||
ART:
|
||||
</div>
|
||||
<div class="px-1">
|
||||
@if (showArt == "CodArticolo")
|
||||
{
|
||||
<span>@CurrRecord.CodArticolo</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(CurrRecord.Disegno))
|
||||
{
|
||||
<span>[@CurrRecord.CodArticolo]</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>@CurrRecord.Disegno</span>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
<div class="card mb-1 border border-dark rounded rounded-3 shadow bg-dark">
|
||||
<div class="card-body @cssStatus(CurrRecord.Semaforo, doAnimate) bg-gradient text-white p-1">
|
||||
<div class="bg-dark text-white opacity-75 px-1 rounded shadow small lh-sm py-0 my-0">
|
||||
<div class="card-title text-uppercase bg-dark text-center py-0 my-0 fs-3 text-truncate">
|
||||
@CurrRecord.Nome
|
||||
</div>
|
||||
<div class="card-text d-flex justify-content-between small">
|
||||
<div class="px-1">
|
||||
PODL:
|
||||
</div>
|
||||
<div class="px-1">
|
||||
@(CurrRecord.IdxPOdl > 0 ? $"{CurrRecord.IdxPOdl:00000000}" : "-")
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-text d-flex justify-content-between small">
|
||||
<div class="px-1">
|
||||
ODL:
|
||||
</div>
|
||||
<div class="px-1">
|
||||
@(CurrRecord.IdxOdl > 0 ? $"{CurrRecord.IdxOdl:00000000}" : "-")
|
||||
</div>
|
||||
<div class="bg-dark text-white opacity-100 bg-gradient px-1 rounded shadow small lh-sm py-0">
|
||||
@if (hasRow(1))
|
||||
{
|
||||
<div class="card-text d-flex justify-content-between small lh-sm">
|
||||
@foreach (var item in rowValues(1))
|
||||
{
|
||||
<div class="px-0 @item.TagCss">@item.TagName: <b>@currVal(item.TagLocation)</b></div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="card-text d-flex justify-content-between small lh-sm">
|
||||
<div class="px-1">
|
||||
ART:
|
||||
</div>
|
||||
<div class="px-1">
|
||||
@if (showArt == "CodArticolo")
|
||||
{
|
||||
<span>@CurrRecord.CodArticolo</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(CurrRecord.Disegno))
|
||||
{
|
||||
<span>[@CurrRecord.CodArticolo]</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>@CurrRecord.Disegno</span>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@if (hasRow(2))
|
||||
{
|
||||
<div class="d-flex ui-subtitle justify-content-between py-0 px-1">
|
||||
@foreach (var item in rowValues(2))
|
||||
{
|
||||
<div class="px-1 @item.TagCss">@item.TagName: <b>@currVal(item.TagLocation)</b></div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="card-text d-flex justify-content-between small lh-sm">
|
||||
<div class="px-1">
|
||||
PODL:
|
||||
</div>
|
||||
<div class="px-1">
|
||||
@(CurrRecord.IdxPOdl > 0 ? $"{CurrRecord.IdxPOdl:00000000}" : "-")
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-text d-flex justify-content-between small lh-sm">
|
||||
<div class="px-1">
|
||||
ODL:
|
||||
</div>
|
||||
<div class="px-1">
|
||||
@(CurrRecord.IdxOdl > 0 ? $"{CurrRecord.IdxOdl:00000000}" : "-")
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@if (hasRow(3))
|
||||
{
|
||||
<div class="d-flex justify-content-between small lh-sm">
|
||||
@foreach (var item in rowValues(4))
|
||||
{
|
||||
<div class="px-1 @item.TagCss">@item.TagName: <b>@currVal(item.TagLocation)</b></div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="d-flex justify-content-between small lh-sm">
|
||||
<div class="px-1 pe-0">TC. Act</div>
|
||||
<div class="px-1 ps-0">@getMinSec(@CurrRecord.TCLavRT) <small>[@getMinSec(@CurrRecord.TCAssegnato)]</small></div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-text text-light bg-dark bg-gradient rounded py-1 shadow my-1">
|
||||
<div class=" d-flex justify-content-between text-warning small">
|
||||
<div class="px-1 text-uppercase">@CurrRecord.DescrizioneStato</div>
|
||||
<div class="px-1">@getMinSec(getDecimal(@CurrRecord.Durata))</div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-around fs-5">
|
||||
<div class="px-1">
|
||||
@CurrRecord.PezziProd / @CurrRecord.NumPezzi
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@* <div class="shadow bg-light rounded p-1">
|
||||
<div class="progress bg-secondary " role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="height: 10px">
|
||||
<div class="progress-bar progress-bar-striped progress-bar-animated bg-success" style="width: 50%"></div>
|
||||
<div class="progress-bar progress-bar-striped progress-bar-animated bg-warning" style="width: 25%"></div>
|
||||
</div>
|
||||
</div> *@
|
||||
</div>
|
||||
<div class="card-footer p-0 text-opacity-50 small" style="font-size: 0.7rem;">
|
||||
<div class="d-flex justify-content-between @cssComStatus(CurrRecord.Semaforo, CurrRecord.LastUpdate)">
|
||||
@if (showComErr(CurrRecord.LastUpdate))
|
||||
<div class="card-text text-light bg-dark bg-gradient rounded py-1 shadow mt-1 mb-0">
|
||||
@if (hasRow(4))
|
||||
{
|
||||
<div class="px-1 text-warning">
|
||||
<b>C.101</b>
|
||||
<div class="d-flex justify-content-between py-0 mt-1 px-1">
|
||||
@foreach (var item in rowValues(3))
|
||||
{
|
||||
<div class="px-1 @item.TagCss">@item.TagName: <b>@currVal(item.TagLocation)</b></div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
<div class="px-1 text-end text-light">
|
||||
else
|
||||
{
|
||||
<div class=" d-flex justify-content-between text-warning small w-100">
|
||||
<div class="px-1 text-uppercase d-inline-block @textCss(@CurrRecord.DescrizioneStato)">
|
||||
<span>@CurrRecord.DescrizioneStato</span>
|
||||
</div>
|
||||
<div class="px-1">@getMinSec(getDecimal(@CurrRecord.Durata))</div>
|
||||
</div>
|
||||
}
|
||||
@if (hasRow(5))
|
||||
{
|
||||
<div class="d-flex justify-content-between py-0 px-1">
|
||||
@foreach (var item in rowValues(5))
|
||||
{
|
||||
<div class="px-1 @item.TagCss">@item.TagName: <b>@currVal(item.TagLocation)</b></div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="d-flex justify-content-around fs-5">
|
||||
<div class="px-1">
|
||||
<span class="text-light">@CurrRecord.PezziProd</span> / <span class="text-light">@CurrRecord.NumPezzi</span>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer px-1 pb-1 pt-0 small @cssStatus(CurrRecord.Semaforo, false)" style="font-size: 0.7rem;">
|
||||
<div class="d-flex text-white justify-content-between @cssComStatus(CurrRecord.Semaforo, CurrRecord.LastUpdate)">
|
||||
<div class="px-1 @textC101(CurrRecord.LastUpdate)">
|
||||
@if (showComErr(CurrRecord.LastUpdate))
|
||||
{
|
||||
<b>C.101</b>
|
||||
}
|
||||
</div>
|
||||
<div class="px-1 text-end text-light text-truncate">
|
||||
@CurrRecord.LastUpdate
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Components;
|
||||
using MP.Data.Conf;
|
||||
using MP.Data.DbModels;
|
||||
using Org.BouncyCastle.Asn1;
|
||||
using static Org.BouncyCastle.Math.EC.ECCurve;
|
||||
|
||||
namespace MP.Mon.Components
|
||||
{
|
||||
@@ -40,23 +41,135 @@ namespace MP.Mon.Components
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
[Inject]
|
||||
protected IConfiguration config { get; set; } = null!;
|
||||
|
||||
protected bool dataLoaded { get; set; } = true;
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Private Methods
|
||||
#region Protected Methods
|
||||
|
||||
private decimal getDecimal(object? rawData)
|
||||
/// <summary>
|
||||
/// restituisce il valore data la tagLocation
|
||||
/// </summary>
|
||||
/// <param name="tagLocation"></param>
|
||||
/// <returns></returns>
|
||||
protected string currVal(string tagLocation)
|
||||
{
|
||||
decimal answ = 0;
|
||||
if (rawData != null)
|
||||
string answ = "";
|
||||
if (currTagVal.ContainsKey(tagLocation))
|
||||
{
|
||||
decimal.TryParse($"{rawData}", out answ);
|
||||
answ = currTagVal[tagLocation];
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
private string cssStatus(string codSemaforo)
|
||||
/// <summary>
|
||||
/// Verifica se ci sia un override per la riga indicata
|
||||
/// </summary>
|
||||
/// <param name="numRow"></param>
|
||||
/// <returns></returns>
|
||||
protected bool hasRow(int numRow)
|
||||
{
|
||||
bool answ = false;
|
||||
if (currTagConf != null)
|
||||
{
|
||||
if (currTagConf.Count > 0)
|
||||
{
|
||||
var currVals = rowValues(numRow);
|
||||
answ = currVals.Count > 0;
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
maxChar4Scroll = config.GetValue<int>("ServerConf:maxChar4Scroll");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce (se presenti) valori di override per la riga indicata
|
||||
/// </summary>
|
||||
/// <param name="numRow"></param>
|
||||
/// <returns></returns>
|
||||
protected List<TagData> rowValues(int numRow)
|
||||
{
|
||||
List<TagData>? rowVals = null;
|
||||
if (currTagConf != null)
|
||||
{
|
||||
if (currTagConf.Count > 0)
|
||||
{
|
||||
//cerco solo la riga corrente...
|
||||
rowVals = currTagConf.Where(x => x.RowNum == numRow).ToList();
|
||||
}
|
||||
}
|
||||
if (rowVals == null)
|
||||
{
|
||||
rowVals = new List<TagData>();
|
||||
}
|
||||
return rowVals;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CSS class x testo (se descr lunga scorre...)
|
||||
/// </summary>
|
||||
protected string textCss(string currText)
|
||||
{
|
||||
string answ = "text-nowrap2 text-truncate w-100";
|
||||
if (currText.Length > maxChar4Scroll)
|
||||
{
|
||||
// calcolo delta... a-b-c con 5-10-oltre
|
||||
int delta = currText.Length - maxChar4Scroll;
|
||||
if (delta < 5)
|
||||
{
|
||||
answ = " scroll-left-a";
|
||||
}
|
||||
else if (delta < 10)
|
||||
{
|
||||
answ = " scroll-left-b";
|
||||
}
|
||||
else
|
||||
{
|
||||
answ = " scroll-left-c";
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
private int maxChar4Scroll = 20;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private string cssComStatus(string semaforo, DateTime? lastUpdateN)
|
||||
{
|
||||
DateTime lastUpdate = lastUpdateN.HasValue ? (DateTime)lastUpdateN : DateTime.Now.AddHours(-1);
|
||||
string answ = "bg-dark opacity-75"; cssStatus(semaforo, false);
|
||||
if (DateTime.Now.Subtract(lastUpdate).TotalSeconds > (keepAliveMin * kaFactor))
|
||||
{
|
||||
answ = $"bg-danger";
|
||||
// blink se secondo pari...
|
||||
#if false
|
||||
DateTime adesso = DateTime.Now;
|
||||
int resto = 0;
|
||||
Math.DivRem(adesso.Second, 2, out resto);
|
||||
if (resto == 0)
|
||||
{
|
||||
answ += " opacity-100";
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
private string cssStatus(string codSemaforo, bool animate)
|
||||
{
|
||||
string answ = "";
|
||||
// se vuoto --> mostra nero!
|
||||
@@ -69,51 +182,49 @@ namespace MP.Mon.Components
|
||||
{
|
||||
case "sVe":
|
||||
answ = "bg-success";
|
||||
doAnimate = false;
|
||||
animate = false;
|
||||
break;
|
||||
|
||||
case "sGi":
|
||||
answ = "bg-warning";
|
||||
break;
|
||||
|
||||
case "sGr":
|
||||
answ = "bg-dark opacity-75";
|
||||
doAnimate = false;
|
||||
answ = "bg-dark opacity-50";
|
||||
animate = false;
|
||||
break;
|
||||
|
||||
case "sRo":
|
||||
answ = "bg-danger";
|
||||
break;
|
||||
|
||||
case "sBl":
|
||||
answ = "bg-primary";
|
||||
break;
|
||||
|
||||
case "sNe":
|
||||
answ = "bg-dark";
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (doAnimate)
|
||||
if (animate)
|
||||
{
|
||||
if (doBlink)
|
||||
{
|
||||
answ += " opacity-75";
|
||||
answ += " opacity-50";
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
private string cssComStatus(string semaforo, DateTime? lastUpdateN)
|
||||
|
||||
private decimal getDecimal(object? rawData)
|
||||
{
|
||||
DateTime lastUpdate = lastUpdateN.HasValue ? (DateTime)lastUpdateN : DateTime.Now.AddHours(-1);
|
||||
string answ = cssStatus(semaforo);
|
||||
if (DateTime.Now.Subtract(lastUpdate).TotalSeconds > (keepAliveMin * kaFactor))
|
||||
decimal answ = 0;
|
||||
if (rawData != null)
|
||||
{
|
||||
answ = $"bg-danger";
|
||||
// blink se secondo pari...
|
||||
DateTime adesso = DateTime.Now;
|
||||
int resto = 0;
|
||||
Math.DivRem(adesso.Second, 2, out resto);
|
||||
if (resto == 0)
|
||||
{
|
||||
answ += " opacity-75";
|
||||
}
|
||||
decimal.TryParse($"{rawData}", out answ);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
@@ -132,7 +243,7 @@ namespace MP.Mon.Components
|
||||
}
|
||||
else
|
||||
{
|
||||
answ = $"{tSpan.TotalHours:N0}h {tSpan:mm}:{tSpan:ss}";
|
||||
answ = $"{tSpan.TotalHours:00}:{tSpan:mm}:{tSpan:ss}";
|
||||
}
|
||||
}
|
||||
catch
|
||||
@@ -151,6 +262,25 @@ namespace MP.Mon.Components
|
||||
return answ;
|
||||
}
|
||||
|
||||
private string textC101(DateTime? lastUpdateN)
|
||||
{
|
||||
DateTime lastUpdate = lastUpdateN.HasValue ? (DateTime)lastUpdateN : DateTime.Now.AddHours(-1);
|
||||
string answ = "text-light";
|
||||
if (DateTime.Now.Subtract(lastUpdate).TotalSeconds > (keepAliveMin * kaFactor))
|
||||
{
|
||||
// blink se secondo pari...
|
||||
DateTime adesso = DateTime.Now;
|
||||
int resto = 0;
|
||||
Math.DivRem(adesso.Second, 2, out resto);
|
||||
if (resto == 1)
|
||||
{
|
||||
answ = $"text-danger";
|
||||
//answ += " opacity-100";
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
/* gestione scroll testo A: 100% */
|
||||
.scroll-left,
|
||||
.scroll-left-a,
|
||||
.scroll-left-b,
|
||||
.scroll-left-c {
|
||||
height: 1.5em;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.scroll-left span,
|
||||
.scroll-left-a span,
|
||||
.scroll-left-b span,
|
||||
.scroll-left-c span {
|
||||
/*display: inline-block;*/
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
line-height: 1.5em;
|
||||
/* Starting position */
|
||||
-moz-transform: translateX(0%);
|
||||
-webkit-transform: translateX(0%);
|
||||
transform: translateX(0%);
|
||||
}
|
||||
/* gestione scroll testo A: 90% */
|
||||
.scroll-left-a span {
|
||||
/* Apply animation to this element */
|
||||
-moz-animation: scroll-left-a 10s ease infinite;
|
||||
-webkit-animation: scroll-left-a 10s ease infinite;
|
||||
animation: scroll-left-a 10s ease infinite;
|
||||
}
|
||||
/* Move it (define the animation) */
|
||||
@keyframes scroll-left-a {
|
||||
0% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
30% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
90% {
|
||||
transform: translateX(-90%);
|
||||
}
|
||||
}
|
||||
/* gestione scroll testo B: 100% */
|
||||
.scroll-left-b span {
|
||||
/* Apply animation to this element */
|
||||
-moz-animation: scroll-left-b 10s ease infinite;
|
||||
-webkit-animation: scroll-left-b 10s ease infinite;
|
||||
animation: scroll-left-b 10s ease infinite;
|
||||
}
|
||||
/* Move it (define the animation) */
|
||||
@keyframes scroll-left-b {
|
||||
0% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
30% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
90% {
|
||||
transform: translateX(-120%);
|
||||
}
|
||||
}
|
||||
/* gestione scroll testo C: 150% */
|
||||
.scroll-left-c span {
|
||||
/* Apply animation to this element */
|
||||
-moz-animation: scroll-left-c 10s ease infinite;
|
||||
-webkit-animation: scroll-left-c 10s ease infinite;
|
||||
animation: scroll-left-c 10s ease infinite;
|
||||
}
|
||||
/* Move it (define the animation) */
|
||||
@keyframes scroll-left-c {
|
||||
0% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
30% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
90% {
|
||||
transform: translateX(-150%);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
|
||||
/* gestione scroll testo A: 100% */
|
||||
.scroll-left {
|
||||
height: 1.5em;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.scroll-left span {
|
||||
/*display: inline-block;*/
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
line-height: 1.5em;
|
||||
/* Starting position */
|
||||
-moz-transform: translateX(0%);
|
||||
-webkit-transform: translateX(0%);
|
||||
transform: translateX(0%);
|
||||
}
|
||||
|
||||
|
||||
/* gestione scroll testo A: 90% */
|
||||
.scroll-left-a {
|
||||
&:extend(.scroll-left);
|
||||
}
|
||||
|
||||
.scroll-left-a span {
|
||||
&:extend(.scroll-left span);
|
||||
/* Apply animation to this element */
|
||||
-moz-animation: scroll-left-a 10s ease infinite;
|
||||
-webkit-animation: scroll-left-a 10s ease infinite;
|
||||
animation: scroll-left-a 10s ease infinite;
|
||||
}
|
||||
/* Move it (define the animation) */
|
||||
@keyframes scroll-left-a {
|
||||
0% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translateX(-90%);
|
||||
}
|
||||
}
|
||||
|
||||
/* gestione scroll testo B: 100% */
|
||||
.scroll-left-b {
|
||||
&:extend(.scroll-left);
|
||||
}
|
||||
|
||||
.scroll-left-b span {
|
||||
&:extend(.scroll-left span);
|
||||
/* Apply animation to this element */
|
||||
-moz-animation: scroll-left-b 10s ease infinite;
|
||||
-webkit-animation: scroll-left-b 10s ease infinite;
|
||||
animation: scroll-left-b 10s ease infinite;
|
||||
}
|
||||
/* Move it (define the animation) */
|
||||
@keyframes scroll-left-b {
|
||||
0% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translateX(-120%);
|
||||
}
|
||||
}
|
||||
|
||||
/* gestione scroll testo C: 150% */
|
||||
.scroll-left-c {
|
||||
&:extend(.scroll-left);
|
||||
}
|
||||
|
||||
.scroll-left-c span {
|
||||
&:extend(.scroll-left span);
|
||||
/* Apply animation to this element */
|
||||
-moz-animation: scroll-left-c 10s ease infinite;
|
||||
-webkit-animation: scroll-left-c 10s ease infinite;
|
||||
animation: scroll-left-c 10s ease infinite;
|
||||
}
|
||||
/* Move it (define the animation) */
|
||||
@keyframes scroll-left-c {
|
||||
0% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translateX(-150%);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
.scroll-left,.scroll-left-a,.scroll-left-b,.scroll-left-c{height:1.5em;overflow:hidden;position:relative;width:100%;white-space:nowrap;}.scroll-left span,.scroll-left-a span,.scroll-left-b span,.scroll-left-c span{position:absolute;width:100%;height:100%;margin:0;line-height:1.5em;-moz-transform:translateX(0%);-webkit-transform:translateX(0%);transform:translateX(0%);}.scroll-left-a span{-moz-animation:scroll-left-a 10s ease infinite;-webkit-animation:scroll-left-a 10s ease infinite;animation:scroll-left-a 10s ease infinite;}@keyframes scroll-left-a{0%{transform:translateX(0%);}30%{transform:translateX(0%);}90%{transform:translateX(-90%);}}.scroll-left-b span{-moz-animation:scroll-left-b 10s ease infinite;-webkit-animation:scroll-left-b 10s ease infinite;animation:scroll-left-b 10s ease infinite;}@keyframes scroll-left-b{0%{transform:translateX(0%);}30%{transform:translateX(0%);}90%{transform:translateX(-120%);}}.scroll-left-c span{-moz-animation:scroll-left-c 10s ease infinite;-webkit-animation:scroll-left-c 10s ease infinite;animation:scroll-left-c 10s ease infinite;}@keyframes scroll-left-c{0%{transform:translateX(0%);}30%{transform:translateX(0%);}90%{transform:translateX(-150%);}}
|
||||
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Version>6.16.2503.1207</Version>
|
||||
<Version>6.16.2503.1306</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
+12
-35
@@ -35,13 +35,18 @@ else
|
||||
mseIdx++;
|
||||
if (currMse != null)
|
||||
{
|
||||
<div class="col p-0">
|
||||
<DetailMSE CurrRecord="@currMse" currTagConf="@getIobTag(currMse.IdxMacchina)" currTagVal="@getTagVal(currMse.IdxMacchina)" doAnimate="@doAnimate" keepAliveMin="@keepAliveMin" showArt="@showArt" doBlink="@doBlink"></DetailMSE>
|
||||
</div>
|
||||
|
||||
@* <div class="col p-0">
|
||||
<DetailViewMSE CurrRecord="@currMse" currTagConf="@getIobTag(currMse.IdxMacchina)" currTagVal="@getTagVal(currMse.IdxMacchina)" doAnimate="@doAnimate" keepAliveMin="@keepAliveMin" showArt="@showArt" doBlink="@doBlink"></DetailViewMSE>
|
||||
</div> *@
|
||||
if (newDisplay)
|
||||
{
|
||||
<div class="col p-0">
|
||||
<DetailViewMSE CurrRecord="@currMse" currTagConf="@getIobTag(currMse.IdxMacchina)" currTagVal="@getTagVal(currMse.IdxMacchina)" doAnimate="@doAnimate" keepAliveMin="@keepAliveMin" showArt="@showArt" doBlink="@doBlink"></DetailViewMSE>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="col p-0">
|
||||
<DetailMSE CurrRecord="@currMse" currTagConf="@getIobTag(currMse.IdxMacchina)" currTagVal="@getTagVal(currMse.IdxMacchina)" doAnimate="@doAnimate" keepAliveMin="@keepAliveMin" showArt="@showArt" doBlink="@doBlink"></DetailMSE>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -51,32 +56,4 @@ else
|
||||
</div>
|
||||
}
|
||||
|
||||
@* <div class="row statusMap mx-1 my-1">
|
||||
@{
|
||||
int currIdx = 0;
|
||||
foreach (var recordIob in ListMSE)
|
||||
{
|
||||
<div class="col machBlock ">
|
||||
<DetailMSE CurrRecord="@recordIob" currTagConf="@getIobTag(recordIob.IdxMacchina)" currTagVal="@getTagVal(recordIob.IdxMacchina)" doAnimate="@doAnimate" keepAliveMin="@keepAliveMin" showArt="@showArt" doBlink="@doBlink"></DetailMSE>
|
||||
</div>
|
||||
currIdx++;
|
||||
if (currIdx >= maxCol)
|
||||
{
|
||||
currIdx = 0;
|
||||
@((MarkupString)"</div><div class=\"row statusMap mx-1 my-1\">")
|
||||
;
|
||||
}
|
||||
}
|
||||
// controllo se devo "chiudere riga...
|
||||
int currNum = (currIdx % maxCol);
|
||||
while (currNum < (maxCol))
|
||||
{
|
||||
@((MarkupString)"<div class=\"col machBlock\"> </div>")
|
||||
;
|
||||
currNum++;
|
||||
|
||||
}
|
||||
}
|
||||
</div> *@
|
||||
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ namespace MP.Mon.Pages
|
||||
protected int fastRefreshMs = 1000;
|
||||
protected int keepAliveMin = 1;
|
||||
protected int maxCol = 6;
|
||||
protected bool newDisplay = true;
|
||||
protected string showArt = "";
|
||||
protected int slowRefreshSec = 300;
|
||||
|
||||
@@ -117,6 +118,26 @@ namespace MP.Mon.Pages
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera il valore e se trovato aggiorna
|
||||
/// </summary>
|
||||
/// <param name="chiave">Valore da cercare</param>
|
||||
/// <returns></returns>
|
||||
protected bool getConfValBool(string chiave)
|
||||
{
|
||||
bool answ = false;
|
||||
if (CurrConfig != null && CurrConfig.Count > 0)
|
||||
{
|
||||
// sistemo i parametri opzionali...
|
||||
ConfigModel? risultato = CurrConfig.FirstOrDefault(x => x.Chiave == chiave);
|
||||
if (risultato != null)
|
||||
{
|
||||
bool.TryParse(risultato.Valore, out answ);
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupera il valore e se trovato aggiorna
|
||||
/// </summary>
|
||||
@@ -317,6 +338,7 @@ namespace MP.Mon.Pages
|
||||
// sistemo i parametri opzionali...
|
||||
getConfValInt("keepAliveMin", ref keepAliveMin);
|
||||
getConfValInt("MON_maxCol", ref maxCol);
|
||||
newDisplay = getConfValBool("MON_newDisplay");
|
||||
int intDoAnim = 0;
|
||||
getConfValInt("doAnimate", ref intDoAnim);
|
||||
doAnimate = intDoAnim == 1;
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
});
|
||||
</script> *@
|
||||
|
||||
<script src="lib/WindowSize.js"></script>
|
||||
<script src="_framework/blazor.server.js" autostart="false"></script>
|
||||
<script>
|
||||
Blazor.start({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MON MAPO</i>
|
||||
<h4>Versione: 6.16.2503.1207</h4>
|
||||
<h4>Versione: 6.16.2503.1306</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2503.1207
|
||||
6.16.2503.1306
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2503.1207</version>
|
||||
<version>6.16.2503.1306</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/MP.Mon.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
@@ -58,6 +58,6 @@
|
||||
"ServerConf": {
|
||||
"maxAge": "2000",
|
||||
"cssOverlayOff": "bg-dark text-light bg-opacity-50",
|
||||
"maxChar4Scroll": 20
|
||||
"maxChar4Scroll": 15
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,5 +10,9 @@
|
||||
{
|
||||
"outputFile": "Components/DetailMSE.razor.css",
|
||||
"inputFile": "Components/DetailMSE.razor.less"
|
||||
},
|
||||
{
|
||||
"outputFile": "Components/DetailViewMSE.razor.css",
|
||||
"inputFile": "Components/DetailViewMSE.razor.less"
|
||||
}
|
||||
]
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+64
-40
@@ -40,7 +40,7 @@ a,
|
||||
border-color: #1861ac;
|
||||
}
|
||||
.content {
|
||||
padding-top: 1.1rem;
|
||||
padding-top: 1.1rrem;
|
||||
}
|
||||
.valid.modified:not([type=checkbox]) {
|
||||
outline: 1px solid #26b050;
|
||||
@@ -74,46 +74,46 @@ a,
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 5rem;
|
||||
width: 5rrem;
|
||||
}
|
||||
.max10Char {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 10rem;
|
||||
width: 10rrem;
|
||||
}
|
||||
.max20Char {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 20rem;
|
||||
width: 20rrem;
|
||||
}
|
||||
.max30Char {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 30rem;
|
||||
width: 30rrem;
|
||||
}
|
||||
.max40Char {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 40rem;
|
||||
width: 40rrem;
|
||||
}
|
||||
.max50Char {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 50rem;
|
||||
width: 50rrem;
|
||||
}
|
||||
.max100Char {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: 100rem;
|
||||
width: 100rrem;
|
||||
}
|
||||
.footer {
|
||||
line-height: 1.8em;
|
||||
line-height: 1.8rem;
|
||||
}
|
||||
#blazor-error-ui {
|
||||
background: lightyellow;
|
||||
@@ -121,7 +121,7 @@ a,
|
||||
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||
display: none;
|
||||
left: 0;
|
||||
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||
padding: 0.6rem 1.25rem 0.7rem 1.25rrem;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
@@ -129,12 +129,12 @@ a,
|
||||
#blazor-error-ui .dismiss {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 0.75rem;
|
||||
top: 0.5rem;
|
||||
right: 0.75rrem;
|
||||
top: 0.5rrem;
|
||||
}
|
||||
.blazor-error-boundary {
|
||||
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
|
||||
padding: 1rem 1rem 1rem 3.7rem;
|
||||
padding: 1rem 1rem 1rem 3.7rrem;
|
||||
color: white;
|
||||
}
|
||||
.blazor-error-boundary::after {
|
||||
@@ -143,24 +143,24 @@ a,
|
||||
/* Gestione specifica oggetti MON*/
|
||||
/* MAIN: gestione layout dinamico mappa... */
|
||||
.fontSmall {
|
||||
font-size: 0.75em;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
.fontSmaller {
|
||||
font-size: 0.6em;
|
||||
font-size: 0.6rem;
|
||||
}
|
||||
.statusMap .ui-title,
|
||||
.statusMap .ui-li-aside {
|
||||
/*font-weight: 200;*/
|
||||
text-transform: uppercase;
|
||||
font-size: 1.5em;
|
||||
line-height: 1.1em;
|
||||
font-size: 1.5rem;
|
||||
line-height: 1.1rem;
|
||||
color: #DEDEDE;
|
||||
text-shadow: 2px 2px 4px #000;
|
||||
text-align: center;
|
||||
background: linear-gradient(270deg, rgba(20, 20, 20, 0.7), rgba(100, 100, 100, 0.7), rgba(20, 20, 20, 0.7));
|
||||
}
|
||||
.statusMap .ui-subtitle {
|
||||
line-height: 1.1em;
|
||||
line-height: 1.1rem;
|
||||
color: #DEDEDE;
|
||||
text-shadow: 2px 2px 4px #000;
|
||||
text-align: center;
|
||||
@@ -176,37 +176,37 @@ a,
|
||||
@media all and (min-width: 320px) {
|
||||
.statusMap .ui-title,
|
||||
.statusMap .ui-li-aside {
|
||||
font-size: 1.5em;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 800px) {
|
||||
.statusMap .ui-title,
|
||||
.statusMap .ui-li-aside {
|
||||
font-size: 1.6em;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 1024px) {
|
||||
.statusMap .ui-title,
|
||||
.statusMap .ui-li-aside {
|
||||
font-size: 1.7em;
|
||||
font-size: 1.7rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 1440px) {
|
||||
.statusMap .ui-title,
|
||||
.statusMap .ui-li-aside {
|
||||
font-size: 1.8em;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 1980px) {
|
||||
.statusMap .ui-title,
|
||||
.statusMap .ui-li-aside {
|
||||
font-size: 1.9em;
|
||||
font-size: 1.9rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 3960px) {
|
||||
.statusMap .ui-title,
|
||||
.statusMap .ui-li-aside {
|
||||
font-size: 2em;
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
/* END: gestione layout dinamico mappa... */
|
||||
@@ -348,14 +348,19 @@ a,
|
||||
/* Gestione size caratteri */
|
||||
.mainHead,
|
||||
.logoImg {
|
||||
height: 1.6em;
|
||||
height: 1.6rem;
|
||||
}
|
||||
@media all and (max-width: 425px) {
|
||||
body {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 425px) {
|
||||
.mainHead {
|
||||
font-size: 1.3em;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
body {
|
||||
font-size: 0.8em;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.logoImg {
|
||||
height: 30px;
|
||||
@@ -363,52 +368,71 @@ a,
|
||||
}
|
||||
@media all and (min-width: 768px) {
|
||||
.mainHead {
|
||||
font-size: 1.4em;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
body {
|
||||
font-size: 1em;
|
||||
font-size: 1rem;
|
||||
}
|
||||
.logoImg {
|
||||
height: 35px;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 800px) {
|
||||
.mainHead {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
body {
|
||||
font-size: 0.6em;
|
||||
font-size: 0.6rem;
|
||||
}
|
||||
.logoImg {
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 1024px) {
|
||||
.mainHead {
|
||||
font-size: 1rem;
|
||||
}
|
||||
body {
|
||||
font-size: 0.7em;
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 1280px) {
|
||||
.mainHead {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
body {
|
||||
font-size: 0.8em;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 1440px) {
|
||||
.mainHead {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
body {
|
||||
font-size: 1em;
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 1680px) {
|
||||
.mainHead {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
body {
|
||||
font-size: 1.1em;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 1920px) {
|
||||
.mainHead {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
body {
|
||||
font-size: 1.3em;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 2560px) {
|
||||
body {
|
||||
font-size: 3em;
|
||||
.mainHead {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
}
|
||||
@media all and (max-width: 425px) {
|
||||
body {
|
||||
font-size: 0.7em;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
}
|
||||
@@ -35,7 +35,7 @@ a, .btn-link {
|
||||
}
|
||||
|
||||
.content {
|
||||
padding-top: 1.1rem;
|
||||
padding-top: 1.1rrem;
|
||||
}
|
||||
|
||||
.valid.modified:not([type=checkbox]) {
|
||||
@@ -77,42 +77,42 @@ a, .btn-link {
|
||||
|
||||
.max5Char {
|
||||
.maxChar;
|
||||
width: 5rem;
|
||||
width: 5rrem;
|
||||
}
|
||||
|
||||
.max10Char {
|
||||
.maxChar;
|
||||
width: 10rem;
|
||||
width: 10rrem;
|
||||
}
|
||||
|
||||
.max20Char {
|
||||
.maxChar;
|
||||
width: 20rem;
|
||||
width: 20rrem;
|
||||
}
|
||||
|
||||
.max30Char {
|
||||
.maxChar;
|
||||
width: 30rem;
|
||||
width: 30rrem;
|
||||
}
|
||||
|
||||
.max40Char {
|
||||
.maxChar;
|
||||
width: 40rem;
|
||||
width: 40rrem;
|
||||
}
|
||||
|
||||
.max50Char {
|
||||
.maxChar;
|
||||
width: 50rem;
|
||||
width: 50rrem;
|
||||
}
|
||||
|
||||
|
||||
.max100Char {
|
||||
.maxChar;
|
||||
width: 100rem;
|
||||
width: 100rrem;
|
||||
}
|
||||
|
||||
.footer {
|
||||
line-height: 1.8em;
|
||||
line-height: 1.8rem;
|
||||
}
|
||||
|
||||
#blazor-error-ui {
|
||||
@@ -121,7 +121,7 @@ a, .btn-link {
|
||||
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||
display: none;
|
||||
left: 0;
|
||||
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||
padding: 0.6rem 1.25rem 0.7rem 1.25rrem;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
@@ -130,13 +130,13 @@ a, .btn-link {
|
||||
#blazor-error-ui .dismiss {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 0.75rem;
|
||||
top: 0.5rem;
|
||||
right: 0.75rrem;
|
||||
top: 0.5rrem;
|
||||
}
|
||||
|
||||
.blazor-error-boundary {
|
||||
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
|
||||
padding: 1rem 1rem 1rem 3.7rem;
|
||||
padding: 1rem 1rem 1rem 3.7rrem;
|
||||
color: white;
|
||||
}
|
||||
|
||||
@@ -146,18 +146,18 @@ a, .btn-link {
|
||||
/* Gestione specifica oggetti MON*/
|
||||
/* MAIN: gestione layout dinamico mappa... */
|
||||
.fontSmall {
|
||||
font-size: 0.75em;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.fontSmaller {
|
||||
font-size: 0.6em;
|
||||
font-size: 0.6rem;
|
||||
}
|
||||
|
||||
.statusMap .ui-title, .statusMap .ui-li-aside {
|
||||
/*font-weight: 200;*/
|
||||
text-transform: uppercase;
|
||||
font-size: 1.5em;
|
||||
line-height: 1.1em;
|
||||
font-size: 1.5rem;
|
||||
line-height: 1.1rem;
|
||||
color: #DEDEDE;
|
||||
text-shadow: 2px 2px 4px #000;
|
||||
text-align: center;
|
||||
@@ -165,7 +165,7 @@ a, .btn-link {
|
||||
}
|
||||
|
||||
.statusMap .ui-subtitle {
|
||||
line-height: 1.1em;
|
||||
line-height: 1.1rem;
|
||||
color: #DEDEDE;
|
||||
text-shadow: 2px 2px 4px #000;
|
||||
text-align: center;
|
||||
@@ -186,37 +186,37 @@ a, .btn-link {
|
||||
|
||||
@media all and (min-width: 320px) {
|
||||
.statusMap .ui-title, .statusMap .ui-li-aside {
|
||||
font-size: 1.5em;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 800px) {
|
||||
.statusMap .ui-title, .statusMap .ui-li-aside {
|
||||
font-size: 1.6em;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1024px) {
|
||||
.statusMap .ui-title, .statusMap .ui-li-aside {
|
||||
font-size: 1.7em;
|
||||
font-size: 1.7rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1440px) {
|
||||
.statusMap .ui-title, .statusMap .ui-li-aside {
|
||||
font-size: 1.8em;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media all and (min-width: 1980px) {
|
||||
.statusMap .ui-title, .statusMap .ui-li-aside {
|
||||
font-size: 1.9em;
|
||||
font-size: 1.9rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 3960px) {
|
||||
.statusMap .ui-title, .statusMap .ui-li-aside {
|
||||
font-size: 2.0em;
|
||||
font-size: 2.0rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -382,16 +382,22 @@ a, .btn-link {
|
||||
/* Gestione size caratteri */
|
||||
.mainHead,
|
||||
.logoImg {
|
||||
height: 1.6em;
|
||||
height: 1.6rem;
|
||||
}
|
||||
|
||||
|
||||
@media all and (max-width: 425px) {
|
||||
body {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
}
|
||||
@media all and (min-width: 425px) {
|
||||
.mainHead {
|
||||
font-size: 1.3em;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 0.8em;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.logoImg {
|
||||
@@ -401,11 +407,11 @@ a, .btn-link {
|
||||
|
||||
@media all and (min-width: 768px) {
|
||||
.mainHead {
|
||||
font-size: 1.4em;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 1em;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.logoImg {
|
||||
@@ -414,49 +420,68 @@ a, .btn-link {
|
||||
}
|
||||
|
||||
@media all and (min-width: 800px) {
|
||||
.mainHead {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
body {
|
||||
font-size: 0.6em;
|
||||
font-size: 0.6rem;
|
||||
}
|
||||
|
||||
.logoImg {
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1024px) {
|
||||
.mainHead {
|
||||
font-size: 1.0rem;
|
||||
}
|
||||
body {
|
||||
font-size: 0.7em;
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1280px) {
|
||||
.mainHead {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
body {
|
||||
font-size: 0.8em;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1440px) {
|
||||
.mainHead {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
body {
|
||||
font-size: 1.0em;
|
||||
font-size: 1.0rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1680px) {
|
||||
.mainHead {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
body {
|
||||
font-size: 1.1em;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1920px) {
|
||||
.mainHead {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
body {
|
||||
font-size: 1.3em;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 2560px) {
|
||||
.mainHead {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
body {
|
||||
font-size: 3.0em;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 425px) {
|
||||
body {
|
||||
font-size: 0.7em;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
|
||||
window.getWindowDimensions = function () {
|
||||
return {
|
||||
width: window.innerWidth,
|
||||
height: window.innerHeight
|
||||
};
|
||||
};
|
||||
@@ -4,8 +4,8 @@
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RootNamespace>MP.Stats</RootNamespace>
|
||||
<UserSecretsId>826e877c-ba70-4253-84cb-d0b1cafd4440</UserSecretsId>
|
||||
<Version>6.16.2503.1207</Version>
|
||||
<Version>6.16.2503.1207</Version>
|
||||
<Version>6.16.2503.1210</Version>
|
||||
<Version>6.16.2503.1210</Version>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<NoWarn>$(NoWarn);1591</NoWarn>
|
||||
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo statistiche MAPO</i>
|
||||
<h4>Versione: 6.16.2503.1207</h4>
|
||||
<h4>Versione: 6.16.2503.1210</h4>
|
||||
<br />
|
||||
Note di rilascio:
|
||||
<ul>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2503.1207
|
||||
6.16.2503.1210
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2503.1207</version>
|
||||
<version>6.16.2503.1210</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/MP.Stats.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
Reference in New Issue
Block a user