diff --git a/MP.Data/Services/StatusData.cs b/MP.Data/Services/StatusData.cs index 143f2a1f..951a0123 100644 --- a/MP.Data/Services/StatusData.cs +++ b/MP.Data/Services/StatusData.cs @@ -119,6 +119,28 @@ namespace MP.Data.Services redisDb = null; } + /// + /// Pulizia cache Redis (tutta) + /// + /// + public async Task FlushCache() + { + RedisValue pattern = new RedisValue($"{redisBaseKey}:*"); + bool answ = await ExecFlushRedisPattern(pattern); + return answ; + } + + /// + /// Pulizia cache Redis per chiave specifica (da redisBaseKey...) + /// + /// + public async Task FlushCache(string KeyReq) + { + RedisValue pattern = new RedisValue($"{redisBaseKey}:{KeyReq}:*"); + bool answ = await ExecFlushRedisPattern(pattern); + return answ; + } + /// /// Elenco setup dei tag conf correnti /// @@ -375,6 +397,32 @@ namespace MP.Data.Services #region Private Methods + /// + /// Esegue flush memoria redis dato pattern + /// + /// + /// + private async Task ExecFlushRedisPattern(RedisValue pattern) + { + bool answ = false; + var listEndpoints = redisConn.GetEndPoints(); + foreach (var endPoint in listEndpoints) + { + //var server = redisConnAdmin.GetServer(listEndpoints[0]); + var server = redisConn.GetServer(endPoint); + if (server != null) + { + var keyList = server.Keys(redisDb.Database, pattern); + foreach (var item in keyList) + { + await redisDb.KeyDeleteAsync(item); + } + answ = true; + } + } + return answ; + } + /// /// Prova a caricare da file la conf degli IOB se presente /// diff --git a/MP.Mon/Components/DetailMSE.razor b/MP.Mon/Components/DetailMSE.razor index 8a655bf8..bc653ef3 100644 --- a/MP.Mon/Components/DetailMSE.razor +++ b/MP.Mon/Components/DetailMSE.razor @@ -1,4 +1,4 @@ -
+
@if (CurrRecord == null || !dataLoaded) { @@ -7,24 +7,24 @@ {
-
+
@CurrRecord.Nome
@if (hasRow(1)) { -
+
@foreach (var item in rowValues(1)) { -
@item.TagName: @currVal(item.TagLocation)
+
@item.TagName: @currVal(item.TagLocation)
}
} else { -
-
Art
-
+
+
Art
+
@if (showArt == "CodArticolo") { @CurrRecord.CodArticolo @@ -45,7 +45,7 @@ } @if (hasRow(2)) { -
+
@foreach (var item in rowValues(2)) {
@item.TagName: @currVal(item.TagLocation)
@@ -54,9 +54,13 @@ } else { -
-
@(CurrRecord.IdxPOdl > 0 ? $"PODL{CurrRecord.IdxPOdl:00000000}" : "-")
-
@(CurrRecord.IdxOdl > 0 ? $"ODL{CurrRecord.IdxOdl:00000000}" : "-")
+
+
PODL
+
@(CurrRecord.IdxPOdl > 0 ? $"{CurrRecord.IdxPOdl:00000000}" : "-")
+
+
+
ODL
+
@(CurrRecord.IdxOdl > 0 ? $"{CurrRecord.IdxOdl:00000000}" : "-")
} @if (hasRow(3)) @@ -70,8 +74,8 @@ } else { -
-
@CurrRecord.DescrizioneStato
+
+
@CurrRecord.DescrizioneStato
@getMinSec(getDecimal(@CurrRecord.Durata))
} @@ -86,10 +90,10 @@ } else { -
-
TCiclo
-
std: @getMinSec(@CurrRecord.TCAssegnato)
-
act: @getMinSec(@CurrRecord.TCLavRT)
+
+
TC.
+
std @getMinSec(@CurrRecord.TCAssegnato)
+
act @getMinSec(@CurrRecord.TCLavRT)
} @if (hasRow(5)) @@ -103,7 +107,7 @@ } else { -
+
Pezzip/o
@CurrRecord.PezziProd / @CurrRecord.NumPezzi
diff --git a/MP.Mon/Components/DetailMSE.razor.cs b/MP.Mon/Components/DetailMSE.razor.cs index 10e6cd1e..6a93ab2b 100644 --- a/MP.Mon/Components/DetailMSE.razor.cs +++ b/MP.Mon/Components/DetailMSE.razor.cs @@ -115,10 +115,10 @@ namespace MP.Mon.Components /// /// CSS class x testo (se descr lunga scorre...) /// - protected string textDescrCss(string currText) + protected string textDescrCss(string currText, int maxChar) { string answ = "text-nowrap"; - if (currText.Length > maxChar4Scroll) + if (currText.Length > maxChar) { answ = " scroll-left"; } diff --git a/MP.Mon/MP.Mon.csproj b/MP.Mon/MP.Mon.csproj index 3f659728..e7137af1 100644 --- a/MP.Mon/MP.Mon.csproj +++ b/MP.Mon/MP.Mon.csproj @@ -4,7 +4,7 @@ net6.0 enable enable - 6.16.2411.1209 + 6.16.2503.1118 diff --git a/MP.Mon/Pages/ForceReload.razor b/MP.Mon/Pages/ForceReload.razor new file mode 100644 index 00000000..c8d12255 --- /dev/null +++ b/MP.Mon/Pages/ForceReload.razor @@ -0,0 +1,6 @@ +@page "/ForceReload" +@page "/force-reload" + +

ForceReload

+ + diff --git a/MP.Mon/Pages/ForceReload.razor.cs b/MP.Mon/Pages/ForceReload.razor.cs new file mode 100644 index 00000000..a2b9e740 --- /dev/null +++ b/MP.Mon/Pages/ForceReload.razor.cs @@ -0,0 +1,22 @@ +using Microsoft.AspNetCore.Components; +using MP.Data.Services; + +namespace MP.Mon.Pages +{ + public partial class ForceReload + { + + + [Inject] + protected MonDataFeeder MMDataService { get; set; } = null!; + [Inject] + protected NavigationManager NavMan { get; set; } = null!; + + protected override async Task OnInitializedAsync() + { + await MMDataService.FlushCache(); + await Task.Delay(100); + NavMan.NavigateTo("/", true); + } + } +} \ No newline at end of file diff --git a/MP.Mon/Pages/Index.razor b/MP.Mon/Pages/Index.razor index 29bdbd95..75638978 100644 --- a/MP.Mon/Pages/Index.razor +++ b/MP.Mon/Pages/Index.razor @@ -4,41 +4,75 @@ MP MON -
- @if (listMSE == null) - { +@if (ListMSE == null) +{ +
- } - else if (listMSE.Count == 0) - { +
+} +else if (ListMSE.Count == 0) +{ + +
No data found
- } - else +
+} +else +{ + int mseIdx = 0; + for (int i = 0; i < mapNRow; i++) { - int currIdx = 0; - foreach (var recordIob in listMSE) - { - - currIdx++; - if (currIdx >= maxCol) +
+ @for (int j = 0; j < maxCol; j++) { - currIdx = 0; - @((MarkupString)"
"); + var currMse = MseById(mseIdx); + mseIdx++; + if (currMse != null) + { +
+ +
+ } + else + { +
 
+ } + } +
+ } + +@*
+ @{ + int currIdx = 0; + foreach (var recordIob in ListMSE) + { +
+ +
+ currIdx++; + if (currIdx >= maxCol) + { + currIdx = 0; + @((MarkupString)"
") + ; + } + } + // controllo se devo "chiudere riga... + int currNum = (currIdx % maxCol); + while (currNum < (maxCol)) + { + @((MarkupString)"
 
") + ; + currNum++; + } } - // controllo se devo "chiudere riga... - int currNum = (currIdx % maxCol); - while (currNum < (maxCol)) - { - @((MarkupString)"
 
"); - currNum++; +
*@ - } - } -
+} diff --git a/MP.Mon/Pages/Index.razor.cs b/MP.Mon/Pages/Index.razor.cs index af3b1c78..6174712b 100644 --- a/MP.Mon/Pages/Index.razor.cs +++ b/MP.Mon/Pages/Index.razor.cs @@ -24,7 +24,7 @@ namespace MP.Mon.Pages public async void ElapsedSlowTimer(object? source, System.Timers.ElapsedEventArgs e) { - listMSE = null; + ListMSE = null; await Task.Delay(10); Log.Info("Elapsed Slow Timer --> full page reload"); // dispongo i vari timers... @@ -58,9 +58,26 @@ namespace MP.Mon.Pages #region Protected Properties + /// + /// Numero righe mappa: calcolato da num elementi e numMax x riga... + /// + protected int mapNRow + { + get + { + int answ = 1; + int numElems = ListMSE != null ? ListMSE.Count : 1; + answ = (int)Math.Ceiling((double)numElems / maxCol); + return answ; + } + } + [Inject] protected MonDataFeeder MMDataService { get; set; } = null!; + [Inject] + protected NavigationManager NavMan { get; set; } = null!; + [Inject] protected NavigationManager NavManager { get; set; } = null!; @@ -159,7 +176,20 @@ namespace MP.Mon.Pages return answ; } - private string CodGruppo = ""; + /// + /// restituisce MSE dato indice + /// + /// Indice MSE richiesto + /// + protected MappaStatoExpl? MseById(int mseIdx) + { + MappaStatoExpl? answ = null; + if (ListMSE != null && ListMSE.Count > mseIdx) + { + answ = ListMSE[mseIdx]; + } + return answ; + } protected override async Task OnInitializedAsync() { @@ -179,10 +209,11 @@ namespace MP.Mon.Pages private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); private static System.Timers.Timer slowTimer = new System.Timers.Timer(300000); + private string CodGruppo = ""; private List? CurrConfig = null; private bool doBlink = false; - private List? listMSE = null; private List listMacchine = new List(); + private List? ListMSE = null; private Random rnd = new Random(); #endregion Private Fields @@ -247,18 +278,18 @@ namespace MP.Mon.Pages } } dataList = listaFilt; - } + } #if DEBUG // hack: legge 3 volte i dati x stressare sistema var singleData = dataList; - listMSE = new List(); + ListMSE = new List(); for (int i = 0; i < 3; i++) { - listMSE.AddRange(singleData); + ListMSE.AddRange(singleData); } #else - listMSE = dataList; + ListMSE = dataList; #endif } } @@ -267,11 +298,6 @@ namespace MP.Mon.Pages } InvokeAsync(() => { -#if false - // attesa random 0-50ms... - Random rnd = new Random(); - Task.Delay(rnd.Next(5, 50)); -#endif StateHasChanged(); }); } @@ -289,7 +315,6 @@ namespace MP.Mon.Pages if (CurrConfig != null && CurrConfig.Count > 0) { // sistemo i parametri opzionali... - getConfValInt("keepAliveMin", ref keepAliveMin); getConfValInt("MON_maxCol", ref maxCol); int intDoAnim = 0; @@ -308,9 +333,6 @@ namespace MP.Mon.Pages } } - [Inject] - protected NavigationManager NavMan { get; set; } = null!; - #endregion Private Methods } } \ No newline at end of file diff --git a/MP.Mon/Resources/ChangeLog.html b/MP.Mon/Resources/ChangeLog.html index 8c06e1df..a82ee8ed 100644 --- a/MP.Mon/Resources/ChangeLog.html +++ b/MP.Mon/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MON MAPO -

Versione: 6.16.2411.1209

+

Versione: 6.16.2503.1118


Note di rilascio:
  • diff --git a/MP.Mon/Resources/VersNum.txt b/MP.Mon/Resources/VersNum.txt index b33ab69a..a198130d 100644 --- a/MP.Mon/Resources/VersNum.txt +++ b/MP.Mon/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2411.1209 +6.16.2503.1118 diff --git a/MP.Mon/Resources/manifest.xml b/MP.Mon/Resources/manifest.xml index e1ea8be7..d410b3d0 100644 --- a/MP.Mon/Resources/manifest.xml +++ b/MP.Mon/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2411.1209 + 6.16.2503.1118 https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/MP.Mon.zip https://nexus.steamware.net/repository/SWS/MP-MON/stable/LAST/ChangeLog.html false diff --git a/MP.Mon/wwwroot/css/site.css b/MP.Mon/wwwroot/css/site.css index ffae3d0d..bf3c7f30 100644 --- a/MP.Mon/wwwroot/css/site.css +++ b/MP.Mon/wwwroot/css/site.css @@ -148,14 +148,11 @@ a, .fontSmaller { font-size: 0.6em; } -.statusMap { - /*background: rgba(0,0,0,0.3);*/ -} .statusMap .ui-title, .statusMap .ui-li-aside { - font-weight: 400; + /*font-weight: 200;*/ text-transform: uppercase; - font-size: 2.5em; + font-size: 1.5em; line-height: 1.1em; color: #DEDEDE; text-shadow: 2px 2px 4px #000; @@ -176,6 +173,42 @@ a, .machBlock { padding: 0 2px 0 2px; } +@media all and (min-width: 320px) { + .statusMap .ui-title, + .statusMap .ui-li-aside { + font-size: 1.6em; + } +} +@media all and (min-width: 800px) { + .statusMap .ui-title, + .statusMap .ui-li-aside { + font-size: 1.7em; + } +} +@media all and (min-width: 1024px) { + .statusMap .ui-title, + .statusMap .ui-li-aside { + font-size: 1.8em; + } +} +@media all and (min-width: 1440px) { + .statusMap .ui-title, + .statusMap .ui-li-aside { + font-size: 1.9em; + } +} +@media all and (min-width: 1980px) { + .statusMap .ui-title, + .statusMap .ui-li-aside { + font-size: 2em; + } +} +@media all and (min-width: 3960px) { + .statusMap .ui-title, + .statusMap .ui-li-aside { + font-size: 2.1em; + } +} /* END: gestione layout dinamico mappa... */ /* area semafori*/ .semBlinkVe, diff --git a/MP.Mon/wwwroot/css/site.less b/MP.Mon/wwwroot/css/site.less index 21ca609f..e667e451 100644 --- a/MP.Mon/wwwroot/css/site.less +++ b/MP.Mon/wwwroot/css/site.less @@ -153,14 +153,10 @@ a, .btn-link { font-size: 0.6em; } -.statusMap { - /*background: rgba(0,0,0,0.3);*/ -} - .statusMap .ui-title, .statusMap .ui-li-aside { - font-weight: 400; + /*font-weight: 200;*/ text-transform: uppercase; - font-size: 2.5em; + font-size: 1.5em; line-height: 1.1em; color: #DEDEDE; text-shadow: 2px 2px 4px #000; @@ -168,7 +164,7 @@ a, .btn-link { 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{ +.statusMap .ui-subtitle { line-height: 1.1em; color: #DEDEDE; text-shadow: 2px 2px 4px #000; @@ -187,6 +183,44 @@ a, .btn-link { .machBlock { padding: 0 2px 0 2px; } + +@media all and (min-width: 320px) { + .statusMap .ui-title, .statusMap .ui-li-aside { + font-size: 1.6em; + } +} + +@media all and (min-width: 800px) { + .statusMap .ui-title, .statusMap .ui-li-aside { + font-size: 1.7em; + } +} + +@media all and (min-width: 1024px) { + .statusMap .ui-title, .statusMap .ui-li-aside { + font-size: 1.8em; + } +} + +@media all and (min-width: 1440px) { + .statusMap .ui-title, .statusMap .ui-li-aside { + font-size: 1.9em; + } + +} + +@media all and (min-width: 1980px) { + .statusMap .ui-title, .statusMap .ui-li-aside { + font-size: 2.0em; + } +} +@media all and (min-width: 3960px) { + .statusMap .ui-title, .statusMap .ui-li-aside { + font-size: 2.1em; + } +} + + /* END: gestione layout dinamico mappa... */ /* area semafori*/ .semBlinkVe, @@ -345,7 +379,6 @@ a, .btn-link { color: Yellow; } - /* Gestione size caratteri */ .mainHead, .logoImg { @@ -426,4 +459,4 @@ a, .btn-link { body { font-size: 0.7em; } -} \ No newline at end of file +} diff --git a/MP.Mon/wwwroot/css/site.min.css b/MP.Mon/wwwroot/css/site.min.css index 805ba6f5..219bdbfe 100644 --- a/MP.Mon/wwwroot/css/site.min.css +++ b/MP.Mon/wwwroot/css/site.min.css @@ -1 +1 @@ -@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');@import url('fonts.min.css');h1,h2,h3,h4,h5,h6,b,display-1,display-2,display-3,display-4{font-family:'Lato',sans-serif;}html,body{height:100%;}html,body{font-family:'Roboto Condensed',sans-serif;line-height:1.25;background-image:linear-gradient(180deg,#010816 20%,#3aa6ff 90%);background-size:auto 100%;background-repeat:no-repeat;}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;}.regionnotclicked{fill:white;}.regionclicked{fill:red;}.striked{text-decoration:line-through;}.textTrim{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.maxChar{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.max5Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:5rem;}.max10Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:10rem;}.max20Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:20rem;}.max30Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:30rem;}.max40Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:40rem;}.max50Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:50rem;}.max100Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100rem;}.footer{line-height:1.8em;}#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.";}.fontSmall{font-size:.75em;}.fontSmaller{font-size:.6em;}.statusMap .ui-title,.statusMap .ui-li-aside{font-weight:400;text-transform:uppercase;font-size:2.5em;line-height:1.1em;color:#dedede;text-shadow:2px 2px 4px #000;text-align:center;background:linear-gradient(270deg,rgba(20,20,20,.7),rgba(100,100,100,.7),rgba(20,20,20,.7));}.statusMap .ui-subtitle{line-height:1.1em;color:#dedede;text-shadow:2px 2px 4px #000;text-align:center;background:linear-gradient(270deg,rgba(0,0,0,.4),rgba(100,100,100,.4),rgba(0,0,0,.4));}.statusMap .ui-footer{color:#cdcdcd;background:linear-gradient(270deg,rgba(10,10,10,.7),rgba(80,80,80,.7),rgba(10,10,10,.7));}.machBlock{padding:0 2px 0 2px;}.semBlinkVe,.semFixVe,.semFixVe_b,.semVe,.semVe_b{background:#009036;background:rgba(0,255,80,.6);color:#ffa;}.semBlinkGr,.semFixGr,.semFixGr_b,.semGr,.semGr_b{background-color:#bcbcbc;background:rgba(180,180,180,.6);}.semGi{text-align:left;background:#8a8d27;background:rgba(230,210,0,.6);padding:0 4px 0 4px;color:#000;}.semGi_b,.semFixGi,.semFixGi_b{text-align:left;background:#f9ff18;background:rgba(255,255,0,.8);padding:0 4px 0 4px;color:#333;}.semBl{text-align:left;background:#000e7a;background:rgba(0,5,200,.6);padding:0 4px 0 4px;color:#959500;}.semBl_b,.semFixBl,.semFixBl_b{text-align:left;background:#243fff;background:rgba(60,80,255,.8);padding:0 4px 0 4px;color:#ffff32;}.semRo{text-align:left;background-color:#7a000e;background:rgba(200,0,5,.6);padding:0 4px 0 4px;color:#959500;}.semRo_b,.semFixRo,.semFixRo_b{text-align:left;background-color:#ff243f;background:rgba(255,60,80,.8);padding:0 4px 0 4px;color:#ffff32;}.no-cpu{-moz-transform:translateZ(0);-o-transform:translateZ(0);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);}@-webkit-keyframes blinkBack{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}@-moz-keyframes blinkBack{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}@-o-keyframes blinkBack{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}@keyframes blinkBack{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}.semBlinkGi{background:linear-gradient(270deg,#8a8d27,#f9ff18);background-size:400% 400%;-webkit-animation:blinkBack 2s ease infinite;-moz-animation:blinkBack 2s ease infinite;-o-animation:blinkBack 2s ease infinite;animation:blinkBack 2s ease infinite;}.semBlinkRo{background:linear-gradient(270deg,#7a000e,#ff243f);background-size:400% 400%;-webkit-animation:blinkBack 2s ease infinite;-moz-animation:blinkBack 2s ease infinite;-o-animation:blinkBack 2s ease infinite;animation:blinkBack 2s ease infinite;color:#ff0;}.mainHead,.logoImg{height:1.6em;}@media all and (min-width:425px){.mainHead{font-size:1.3em;}body{font-size:.8em;}.logoImg{height:30px;}}@media all and (min-width:768px){.mainHead{font-size:1.4em;}body{font-size:1em;}.logoImg{height:35px;}}@media all and (min-width:800px){body{font-size:.6em;}}@media all and (min-width:1024px){body{font-size:.7em;}}@media all and (min-width:1280px){body{font-size:.8em;}}@media all and (min-width:1440px){body{font-size:1em;}}@media all and (min-width:1680px){body{font-size:1.1em;}}@media all and (min-width:1920px){body{font-size:1.3em;}}@media all and (min-width:2560px){body{font-size:3em;}}@media all and (max-width:425px){body{font-size:.7em;}} \ No newline at end of file +@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');@import url('fonts.min.css');h1,h2,h3,h4,h5,h6,b,display-1,display-2,display-3,display-4{font-family:'Lato',sans-serif;}html,body{height:100%;}html,body{font-family:'Roboto Condensed',sans-serif;line-height:1.25;background-image:linear-gradient(180deg,#010816 20%,#3aa6ff 90%);background-size:auto 100%;background-repeat:no-repeat;}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;}.regionnotclicked{fill:white;}.regionclicked{fill:red;}.striked{text-decoration:line-through;}.textTrim{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.maxChar{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.max5Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:5rem;}.max10Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:10rem;}.max20Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:20rem;}.max30Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:30rem;}.max40Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:40rem;}.max50Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:50rem;}.max100Char{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100rem;}.footer{line-height:1.8em;}#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.";}.fontSmall{font-size:.75em;}.fontSmaller{font-size:.6em;}.statusMap .ui-title,.statusMap .ui-li-aside{text-transform:uppercase;font-size:1.5em;line-height:1.1em;color:#dedede;text-shadow:2px 2px 4px #000;text-align:center;background:linear-gradient(270deg,rgba(20,20,20,.7),rgba(100,100,100,.7),rgba(20,20,20,.7));}.statusMap .ui-subtitle{line-height:1.1em;color:#dedede;text-shadow:2px 2px 4px #000;text-align:center;background:linear-gradient(270deg,rgba(0,0,0,.4),rgba(100,100,100,.4),rgba(0,0,0,.4));}.statusMap .ui-footer{color:#cdcdcd;background:linear-gradient(270deg,rgba(10,10,10,.7),rgba(80,80,80,.7),rgba(10,10,10,.7));}.machBlock{padding:0 2px 0 2px;}@media all and (min-width:320px){.statusMap .ui-title,.statusMap .ui-li-aside{font-size:1.6em;}}@media all and (min-width:800px){.statusMap .ui-title,.statusMap .ui-li-aside{font-size:1.7em;}}@media all and (min-width:1024px){.statusMap .ui-title,.statusMap .ui-li-aside{font-size:1.8em;}}@media all and (min-width:1440px){.statusMap .ui-title,.statusMap .ui-li-aside{font-size:1.9em;}}@media all and (min-width:1980px){.statusMap .ui-title,.statusMap .ui-li-aside{font-size:2em;}}@media all and (min-width:3960px){.statusMap .ui-title,.statusMap .ui-li-aside{font-size:2.1em;}}.semBlinkVe,.semFixVe,.semFixVe_b,.semVe,.semVe_b{background:#009036;background:rgba(0,255,80,.6);color:#ffa;}.semBlinkGr,.semFixGr,.semFixGr_b,.semGr,.semGr_b{background-color:#bcbcbc;background:rgba(180,180,180,.6);}.semGi{text-align:left;background:#8a8d27;background:rgba(230,210,0,.6);padding:0 4px 0 4px;color:#000;}.semGi_b,.semFixGi,.semFixGi_b{text-align:left;background:#f9ff18;background:rgba(255,255,0,.8);padding:0 4px 0 4px;color:#333;}.semBl{text-align:left;background:#000e7a;background:rgba(0,5,200,.6);padding:0 4px 0 4px;color:#959500;}.semBl_b,.semFixBl,.semFixBl_b{text-align:left;background:#243fff;background:rgba(60,80,255,.8);padding:0 4px 0 4px;color:#ffff32;}.semRo{text-align:left;background-color:#7a000e;background:rgba(200,0,5,.6);padding:0 4px 0 4px;color:#959500;}.semRo_b,.semFixRo,.semFixRo_b{text-align:left;background-color:#ff243f;background:rgba(255,60,80,.8);padding:0 4px 0 4px;color:#ffff32;}.no-cpu{-moz-transform:translateZ(0);-o-transform:translateZ(0);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);}@-webkit-keyframes blinkBack{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}@-moz-keyframes blinkBack{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}@-o-keyframes blinkBack{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}@keyframes blinkBack{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}.semBlinkGi{background:linear-gradient(270deg,#8a8d27,#f9ff18);background-size:400% 400%;-webkit-animation:blinkBack 2s ease infinite;-moz-animation:blinkBack 2s ease infinite;-o-animation:blinkBack 2s ease infinite;animation:blinkBack 2s ease infinite;}.semBlinkRo{background:linear-gradient(270deg,#7a000e,#ff243f);background-size:400% 400%;-webkit-animation:blinkBack 2s ease infinite;-moz-animation:blinkBack 2s ease infinite;-o-animation:blinkBack 2s ease infinite;animation:blinkBack 2s ease infinite;color:#ff0;}.mainHead,.logoImg{height:1.6em;}@media all and (min-width:425px){.mainHead{font-size:1.3em;}body{font-size:.8em;}.logoImg{height:30px;}}@media all and (min-width:768px){.mainHead{font-size:1.4em;}body{font-size:1em;}.logoImg{height:35px;}}@media all and (min-width:800px){body{font-size:.6em;}}@media all and (min-width:1024px){body{font-size:.7em;}}@media all and (min-width:1280px){body{font-size:.8em;}}@media all and (min-width:1440px){body{font-size:1em;}}@media all and (min-width:1680px){body{font-size:1.1em;}}@media all and (min-width:1920px){body{font-size:1.3em;}}@media all and (min-width:2560px){body{font-size:3em;}}@media all and (max-width:425px){body{font-size:.7em;}} \ No newline at end of file diff --git a/MP.Stats/Components/ChartTrends.razor.cs b/MP.Stats/Components/ChartTrends.razor.cs index 451e8e9f..db2bfb6f 100644 --- a/MP.Stats/Components/ChartTrends.razor.cs +++ b/MP.Stats/Components/ChartTrends.razor.cs @@ -386,10 +386,10 @@ namespace MP.Stats.Components private string CssBtn(PeriodoSel reqMode) { - string answ = "btn-outline-dark"; + string answ = "btn-outline-primary"; if (reqMode == pSel) { - answ = "btn-dark text-light"; + answ = "btn-primary text-light"; } return answ; } diff --git a/MP.Stats/MP.Stats.csproj b/MP.Stats/MP.Stats.csproj index f4201016..d64f6818 100644 --- a/MP.Stats/MP.Stats.csproj +++ b/MP.Stats/MP.Stats.csproj @@ -4,8 +4,8 @@ net6.0 MP.Stats 826e877c-ba70-4253-84cb-d0b1cafd4440 - 6.16.2503.1019 - 6.16.2503.1019 + 6.16.2503.1116 + 6.16.2503.1116 true $(NoWarn);1591 en diff --git a/MP.Stats/Resources/ChangeLog.html b/MP.Stats/Resources/ChangeLog.html index bd38fc2e..c83e58b2 100644 --- a/MP.Stats/Resources/ChangeLog.html +++ b/MP.Stats/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo statistiche MAPO -

    Versione: 6.16.2503.1019

    +

    Versione: 6.16.2503.1116


    Note di rilascio:
      diff --git a/MP.Stats/Resources/VersNum.txt b/MP.Stats/Resources/VersNum.txt index 502b1e44..fc6ae71e 100644 --- a/MP.Stats/Resources/VersNum.txt +++ b/MP.Stats/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2503.1019 +6.16.2503.1116 diff --git a/MP.Stats/Resources/manifest.xml b/MP.Stats/Resources/manifest.xml index a89a1b90..00d77763 100644 --- a/MP.Stats/Resources/manifest.xml +++ b/MP.Stats/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2503.1019 + 6.16.2503.1116 https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/MP.Stats.zip https://nexus.steamware.net/repository/SWS/MP-STATS/stable/LAST/ChangeLog.html false