From a8f1ff26beb917e809a09ead5afd2dca0ebc1cb4 Mon Sep 17 00:00:00 2001 From: Annamaria Sassi Date: Thu, 7 May 2026 16:18:33 +0200 Subject: [PATCH] Modificate modali di eliminazione/conferma azioni --- Lux.API/Lux.API.csproj | 2 +- Lux.UI/Components/Compo/Config/GlassMan.razor | 2 + .../Components/Compo/Config/GlassMan.razor.cs | 20 ++++- .../Components/Compo/Config/ProfileMan.razor | 4 +- .../Compo/Config/ProfileMan.razor.cs | 19 ++++- Lux.UI/Components/Compo/Config/WoodMan.razor | 2 + .../Components/Compo/Config/WoodMan.razor.cs | 17 +++- .../Compo/Generic/GenClassMan.razor | 4 +- .../Compo/Generic/GenClassMan.razor.cs | 17 +++- .../Components/Compo/Generic/GenValMan.razor | 2 + .../Compo/Generic/GenValMan.razor.cs | 16 +++- Lux.UI/Components/Compo/Item/ItemMan.razor | 2 + Lux.UI/Components/Compo/Item/ItemMan.razor.cs | 19 ++++- .../Compo/Item/SellingItemMan.razor | 2 + .../Compo/Item/SellingItemMan.razor.cs | 20 ++++- .../Components/Compo/JobTask/JobStepMan.razor | 4 +- .../Compo/JobTask/JobStepMan.razor.cs | 18 +++- .../Compo/JobTask/JobTaskListMan.razor | 1 + .../Compo/JobTask/JobTaskListMan.razor.cs | 16 +++- .../Compo/JobTask/ResourcesMan.razor | 4 +- .../Compo/JobTask/ResourcesMan.razor.cs | 24 +++++- .../Compo/Offer/OfferRowMan.razor.cs | 39 ++++----- .../Components/Compo/Order/OrderRowMan.razor | 4 +- .../Compo/Order/OrderRowMan.razor.cs | 83 ++++++++++++++++--- .../Compo/Planner/BalanceProgGroup.razor | 4 +- .../Compo/Planner/BalanceProgGroup.razor.cs | 23 +++-- .../Compo/Templates/TemplateList.razor.cs | 25 +++--- .../Compo/Templates/TemplateRowList.razor.cs | 18 ++-- .../Components/Compo/WorkLoad/TimeEstim.razor | 2 +- .../Compo/WorkLoad/TimeEstim.razor.cs | 23 ++++- Lux.UI/Components/Pages/Offers.razor.cs | 4 +- Lux.UI/Components/Pages/Orders.razor.cs | 19 ----- Lux.UI/Components/Pages/WorkLoadBalance.razor | 2 + .../Components/Pages/WorkLoadBalance.razor.cs | 39 ++++++++- Lux.UI/Lux.UI.csproj | 2 +- Lux.UI/wwwroot/css/site.css | 3 + Lux.UI/wwwroot/css/site.less | 4 + Lux.UI/wwwroot/css/site.min.css | 2 +- Resources/ChangeLog.html | 2 +- Resources/VersNum.txt | 2 +- Resources/manifest.xml | 2 +- 41 files changed, 399 insertions(+), 118 deletions(-) diff --git a/Lux.API/Lux.API.csproj b/Lux.API/Lux.API.csproj index d58725e3..0451b5ee 100644 --- a/Lux.API/Lux.API.csproj +++ b/Lux.API/Lux.API.csproj @@ -4,7 +4,7 @@ net8.0 enable enable - 1.1.2605.0609 + 1.1.2605.0716 diff --git a/Lux.UI/Components/Compo/Config/GlassMan.razor b/Lux.UI/Components/Compo/Config/GlassMan.razor index 11b57793..6f154aa0 100644 --- a/Lux.UI/Components/Compo/Config/GlassMan.razor +++ b/Lux.UI/Components/Compo/Config/GlassMan.razor @@ -79,3 +79,5 @@ } + + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/Config/GlassMan.razor.cs b/Lux.UI/Components/Compo/Config/GlassMan.razor.cs index b998b88a..29c0b5e2 100644 --- a/Lux.UI/Components/Compo/Config/GlassMan.razor.cs +++ b/Lux.UI/Components/Compo/Config/GlassMan.razor.cs @@ -1,3 +1,5 @@ +using EgwCoreLib.Razor; + namespace Lux.UI.Components.Compo.Config { public partial class GlassMan @@ -35,8 +37,16 @@ namespace Lux.UI.Components.Compo.Config /// protected async Task DoDelete(GlassModel selRec) { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il record? Dettagli: {selRec.GlassID} | {selRec.Description} | {selRec.Thickness}")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler eliminare il record?\n" + + $"Dettagli: {selRec.GlassID} | {selRec.Description} | {selRec.Thickness}"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; + // esegue eliminazione del record... await CGService.DeleteAsync(selRec); @@ -109,9 +119,15 @@ namespace Lux.UI.Components.Compo.Config private GlassModel? SelRecord = null; private int totalCount = 0; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields -#region Private Properties + #region Private Properties private string searchVal { get; set; } = string.Empty; diff --git a/Lux.UI/Components/Compo/Config/ProfileMan.razor b/Lux.UI/Components/Compo/Config/ProfileMan.razor index f41e344b..0291b095 100644 --- a/Lux.UI/Components/Compo/Config/ProfileMan.razor +++ b/Lux.UI/Components/Compo/Config/ProfileMan.razor @@ -121,4 +121,6 @@ { } -} \ No newline at end of file +} + + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/Config/ProfileMan.razor.cs b/Lux.UI/Components/Compo/Config/ProfileMan.razor.cs index f730880d..03532cc8 100644 --- a/Lux.UI/Components/Compo/Config/ProfileMan.razor.cs +++ b/Lux.UI/Components/Compo/Config/ProfileMan.razor.cs @@ -1,4 +1,6 @@ -namespace Lux.UI.Components.Compo.Config +using EgwCoreLib.Razor; + +namespace Lux.UI.Components.Compo.Config { public partial class ProfileMan : IDisposable { @@ -63,6 +65,12 @@ private int totalCount = 0; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -205,7 +213,14 @@ /// private async Task DoDelete(ProfileModel selRec) { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il record? Dettagli: {selRec.Code} | {selRec.Description}")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler eliminare il record?\n" + + $"Dettagli: {selRec.Code} | {selRec.Description}"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; isLoading = true; diff --git a/Lux.UI/Components/Compo/Config/WoodMan.razor b/Lux.UI/Components/Compo/Config/WoodMan.razor index 546274c0..26285374 100644 --- a/Lux.UI/Components/Compo/Config/WoodMan.razor +++ b/Lux.UI/Components/Compo/Config/WoodMan.razor @@ -79,3 +79,5 @@ } + + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/Config/WoodMan.razor.cs b/Lux.UI/Components/Compo/Config/WoodMan.razor.cs index a31bda47..997be1fa 100644 --- a/Lux.UI/Components/Compo/Config/WoodMan.razor.cs +++ b/Lux.UI/Components/Compo/Config/WoodMan.razor.cs @@ -1,3 +1,5 @@ +using EgwCoreLib.Razor; + namespace Lux.UI.Components.Compo.Config { public partial class WoodMan @@ -26,6 +28,12 @@ namespace Lux.UI.Components.Compo.Config private int totalCount = 0; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -76,7 +84,14 @@ namespace Lux.UI.Components.Compo.Config /// private async Task DoDelete(WoodModel selRec) { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il record? Dettagli: {selRec.WoodID} | {selRec.Description} | Tipo: {selRec.Type}")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler eliminare il record?\n" + + $"Dettagli: {selRec.WoodID} | {selRec.Description} | Tipo: {selRec.Type}"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // esegue eliminazione del record... diff --git a/Lux.UI/Components/Compo/Generic/GenClassMan.razor b/Lux.UI/Components/Compo/Generic/GenClassMan.razor index c35d993e..dc5f9f06 100644 --- a/Lux.UI/Components/Compo/Generic/GenClassMan.razor +++ b/Lux.UI/Components/Compo/Generic/GenClassMan.razor @@ -109,4 +109,6 @@ } - \ No newline at end of file + + + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/Generic/GenClassMan.razor.cs b/Lux.UI/Components/Compo/Generic/GenClassMan.razor.cs index 5315a65d..9dafac63 100644 --- a/Lux.UI/Components/Compo/Generic/GenClassMan.razor.cs +++ b/Lux.UI/Components/Compo/Generic/GenClassMan.razor.cs @@ -1,3 +1,5 @@ +using EgwCoreLib.Razor; + namespace Lux.UI.Components.Compo.Generic { public partial class GenClassMan @@ -46,6 +48,12 @@ namespace Lux.UI.Components.Compo.Generic private int totalCount = 0; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -120,7 +128,14 @@ namespace Lux.UI.Components.Compo.Generic if (selRec.NumChild > 0) return; - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il record? Dettagli: {selRec.ClassCod} | {selRec.Description}")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler eliminare il record?\n" + + $"Dettagli: {selRec.ClassCod} | {selRec.Description}"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // esegue eliminazione del record... diff --git a/Lux.UI/Components/Compo/Generic/GenValMan.razor b/Lux.UI/Components/Compo/Generic/GenValMan.razor index 0d95924c..73fc74bf 100644 --- a/Lux.UI/Components/Compo/Generic/GenValMan.razor +++ b/Lux.UI/Components/Compo/Generic/GenValMan.razor @@ -82,3 +82,5 @@ else } } + + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/Generic/GenValMan.razor.cs b/Lux.UI/Components/Compo/Generic/GenValMan.razor.cs index 093f0735..f769f9ae 100644 --- a/Lux.UI/Components/Compo/Generic/GenValMan.razor.cs +++ b/Lux.UI/Components/Compo/Generic/GenValMan.razor.cs @@ -1,5 +1,6 @@ using EgwCoreLib.Lux.Data.DbModel.Utils; using EgwCoreLib.Lux.Data.Services.Utils; +using EgwCoreLib.Razor; namespace Lux.UI.Components.Compo.Generic { @@ -91,6 +92,12 @@ namespace Lux.UI.Components.Compo.Generic private int totalCount = 0; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -155,7 +162,14 @@ namespace Lux.UI.Components.Compo.Generic /// private async Task DoDelete(GenValueModel selRec) { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il record? Dettagli: {selRec.ClassCod} | {selRec.ValString}")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler eliminare il record?\n" + + $"Dettagli: {selRec.ClassCod} | {selRec.ValString}"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // esegue eliminazione del record... diff --git a/Lux.UI/Components/Compo/Item/ItemMan.razor b/Lux.UI/Components/Compo/Item/ItemMan.razor index a212597a..4ebd15b9 100644 --- a/Lux.UI/Components/Compo/Item/ItemMan.razor +++ b/Lux.UI/Components/Compo/Item/ItemMan.razor @@ -98,3 +98,5 @@ else } } + + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/Item/ItemMan.razor.cs b/Lux.UI/Components/Compo/Item/ItemMan.razor.cs index ab3f8641..5ff52043 100644 --- a/Lux.UI/Components/Compo/Item/ItemMan.razor.cs +++ b/Lux.UI/Components/Compo/Item/ItemMan.razor.cs @@ -1,3 +1,5 @@ +using EgwCoreLib.Razor; + namespace Lux.UI.Components.Compo.Item { public partial class ItemMan @@ -45,6 +47,13 @@ namespace Lux.UI.Components.Compo.Item private int totalCount = 0; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -97,8 +106,16 @@ namespace Lux.UI.Components.Compo.Item /// private async Task DoDelete(ItemModel selRec) { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il record? Dettagli: {selRec.ItemID} | {selRec.CodGroup} | {selRec.ItemType} | {selRec.ExtItemCode}")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler eliminare il record?\n" + + $"Dettagli: { selRec.ItemID} | { selRec.CodGroup} | { selRec.ItemType} | { selRec.ExtItemCode}"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; + //// esegue eliminazione del record... //await CDService.ItemDeleteAsync(selRec); diff --git a/Lux.UI/Components/Compo/Item/SellingItemMan.razor b/Lux.UI/Components/Compo/Item/SellingItemMan.razor index 245b3f46..3a86bdaa 100644 --- a/Lux.UI/Components/Compo/Item/SellingItemMan.razor +++ b/Lux.UI/Components/Compo/Item/SellingItemMan.razor @@ -94,3 +94,5 @@ else } } + + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/Item/SellingItemMan.razor.cs b/Lux.UI/Components/Compo/Item/SellingItemMan.razor.cs index 8ed098ac..a5c3b168 100644 --- a/Lux.UI/Components/Compo/Item/SellingItemMan.razor.cs +++ b/Lux.UI/Components/Compo/Item/SellingItemMan.razor.cs @@ -1,4 +1,6 @@ -namespace Lux.UI.Components.Compo.Item +using EgwCoreLib.Razor; + +namespace Lux.UI.Components.Compo.Item { public partial class SellingItemMan { @@ -70,6 +72,12 @@ private int totalCount = 0; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -140,8 +148,16 @@ /// private async Task DoDelete(SellingItemModel selRec) { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il record? Dettagli: {selRec.SellingItemID} | {selRec.Envir} | {selRec.ExtItemCode} | {selRec.Description}")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler eliminare il record?\n " + + $" Dettagli: {selRec.SellingItemID} | {selRec.Envir} | {selRec.ExtItemCode} | {selRec.Description}"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; + //// esegue eliminazione del record... //await CDService.SellingItemDeleteAsync(selRec); diff --git a/Lux.UI/Components/Compo/JobTask/JobStepMan.razor b/Lux.UI/Components/Compo/JobTask/JobStepMan.razor index 3604eac7..e8ba4fdb 100644 --- a/Lux.UI/Components/Compo/JobTask/JobStepMan.razor +++ b/Lux.UI/Components/Compo/JobTask/JobStepMan.razor @@ -172,4 +172,6 @@ } - \ No newline at end of file + + + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/JobTask/JobStepMan.razor.cs b/Lux.UI/Components/Compo/JobTask/JobStepMan.razor.cs index f6bfb2f8..ac3700fd 100644 --- a/Lux.UI/Components/Compo/JobTask/JobStepMan.razor.cs +++ b/Lux.UI/Components/Compo/JobTask/JobStepMan.razor.cs @@ -1,3 +1,5 @@ +using EgwCoreLib.Razor; + namespace Lux.UI.Components.Compo.JobTask { public partial class JobStepMan @@ -64,6 +66,12 @@ namespace Lux.UI.Components.Compo.JobTask private int totalCount = 0; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -189,8 +197,14 @@ namespace Lux.UI.Components.Compo.JobTask /// /// private async Task DoDelete(JobStepModel rec2del) - { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il record? {rec2del.Description} ({rec2del.JobStepID})")) + {; + mTitle = "Attenzione"; + mMessage = $"Sicuro di voler eliminare il record? {rec2del.Description} ({rec2del.JobStepID})"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // esegue eliminazione del record... diff --git a/Lux.UI/Components/Compo/JobTask/JobTaskListMan.razor b/Lux.UI/Components/Compo/JobTask/JobTaskListMan.razor index 6496a2c2..ae8fbd63 100644 --- a/Lux.UI/Components/Compo/JobTask/JobTaskListMan.razor +++ b/Lux.UI/Components/Compo/JobTask/JobTaskListMan.razor @@ -125,3 +125,4 @@ + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/JobTask/JobTaskListMan.razor.cs b/Lux.UI/Components/Compo/JobTask/JobTaskListMan.razor.cs index 6a8499bd..7062f3c8 100644 --- a/Lux.UI/Components/Compo/JobTask/JobTaskListMan.razor.cs +++ b/Lux.UI/Components/Compo/JobTask/JobTaskListMan.razor.cs @@ -1,3 +1,5 @@ +using EgwCoreLib.Razor; + namespace Lux.UI.Components.Compo.JobTask { public partial class JobTaskListMan @@ -54,6 +56,12 @@ namespace Lux.UI.Components.Compo.JobTask private int totalCount = 0; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -132,7 +140,13 @@ namespace Lux.UI.Components.Compo.JobTask if (rec2del.NumChild > 0) return; - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il record? {rec2del.Description} ({rec2del.JobID})")) + mTitle = "Attenzione"; + mMessage = $"Sicuro di voler eliminare il record? {rec2del.Description} ({rec2del.JobID})"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // esegue eliminazione del record... diff --git a/Lux.UI/Components/Compo/JobTask/ResourcesMan.razor b/Lux.UI/Components/Compo/JobTask/ResourcesMan.razor index 41acacd6..fff847b5 100644 --- a/Lux.UI/Components/Compo/JobTask/ResourcesMan.razor +++ b/Lux.UI/Components/Compo/JobTask/ResourcesMan.razor @@ -69,4 +69,6 @@ } - \ No newline at end of file + + + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/JobTask/ResourcesMan.razor.cs b/Lux.UI/Components/Compo/JobTask/ResourcesMan.razor.cs index c966e12a..97698449 100644 --- a/Lux.UI/Components/Compo/JobTask/ResourcesMan.razor.cs +++ b/Lux.UI/Components/Compo/JobTask/ResourcesMan.razor.cs @@ -1,3 +1,5 @@ +using EgwCoreLib.Razor; + namespace Lux.UI.Components.Compo.JobTask { public partial class ResourcesMan @@ -47,6 +49,12 @@ namespace Lux.UI.Components.Compo.JobTask private int totalCount = 0; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -89,7 +97,13 @@ namespace Lux.UI.Components.Compo.JobTask private async Task DoAdd() { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler aggiungere un nuovo record risorsa?")) + mTitle = "Attenzione"; + mMessage = "Confermi di voler aggiungere un nuovo record risorsa?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; isLoading = true; @@ -108,7 +122,13 @@ namespace Lux.UI.Components.Compo.JobTask private async Task DoDelete(ResourceModel rec2del) { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler eliminare il record {rec2del.Name}?")) + mTitle = "Attenzione"; + mMessage = $"Confermi di voler eliminare il record {rec2del.Name}?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; isLoading = true; diff --git a/Lux.UI/Components/Compo/Offer/OfferRowMan.razor.cs b/Lux.UI/Components/Compo/Offer/OfferRowMan.razor.cs index 2164f1ad..cf7ca8b1 100644 --- a/Lux.UI/Components/Compo/Offer/OfferRowMan.razor.cs +++ b/Lux.UI/Components/Compo/Offer/OfferRowMan.razor.cs @@ -796,7 +796,13 @@ namespace Lux.UI.Components.Compo.Offer /// private async Task DoClone(OfferRowModel rec2clone) { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler duplicare la riga corrente?")) + mTitle = "Attenzione"; + mMessage = "Confermi di voler duplicare la riga corrente?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // calcolo indice riga... @@ -865,7 +871,15 @@ namespace Lux.UI.Components.Compo.Offer /// private async Task DoDelete(OfferRowModel rec2del) { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler eliminare la riga corrente?
Codice: {rec2del.OfferRowUID} | {rec2del.Note} | importo tot: {rec2del.TotalPrice}")) + mTitle = "Attenzione"; + mMessage = "Confermi di voler eliminare la riga corrente?\n" + + $" Codice: {rec2del.OfferRowUID} | {rec2del.Note}\n" + + $"Importo tot: {rec2del.TotalPrice}"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; await ORService.DeleteAsync(rec2del); @@ -920,9 +934,7 @@ namespace Lux.UI.Components.Compo.Offer private async Task DoForceParam(Dictionary writeSet) { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler forzare {writeSet.Count} parametro/i selezionati per l'offerta?")) - // return; - mTitle = "Ricalcolo offerta"; + mTitle = "Attenzione"; mMessage = $"Confermi di voler forzare {writeSet.Count} parametro/i selezionati per l'offerta?"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); @@ -1030,8 +1042,6 @@ namespace Lux.UI.Components.Compo.Offer /// private async Task DoSave(OfferModel updRec) { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler salvare parametri per l'offerta?")) - // return; mTitle = "Salvataggio offerta"; mMessage = "Confermi di voler salvare parametri per l'offerta?"; mMode = BootstrapModal.ModalMode.Confirm; @@ -1217,9 +1227,7 @@ namespace Lux.UI.Components.Compo.Offer /// private async Task OfferUpdateAllCosting() { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler ricalcolare/validare in toto l'offerta?")) - // return; - mTitle = "Ricalcolo offerta"; + mTitle = "Attenzione"; mMessage = "Confermi di voler ricalcolare/validare in toto l'offerta?"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); @@ -1265,9 +1273,7 @@ namespace Lux.UI.Components.Compo.Offer /// private async Task OfferUpdatePrices() { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler ricalcolare a costi correnti offerta?")) - // return; - mTitle = "Ricalcolo offerta"; + mTitle = "Attenzione"; mMessage = "Confermi di voler ricalcolare a costi correnti offerta?"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); @@ -1622,9 +1628,7 @@ namespace Lux.UI.Components.Compo.Offer /// private async Task RequestBom(OfferRowModel currRec) { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler ricalcolare la BOM?")) - // return; - mTitle = "Ricalcolo BOM"; + mTitle = "Attenzione"; mMessage = "Confermi di voler ricalcolare la BOM?"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); @@ -1772,9 +1776,6 @@ namespace Lux.UI.Components.Compo.Offer /// private async Task OfferForceParameters() { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler impostare i parametri selezionati per l'offerta?")) - return; - // recupero obj dizionario x i parametri compresi... ParamDict CurrSel = new ParamDict(CurrRecord.DictPresel); // metto a waiting tutte le righe con bom... diff --git a/Lux.UI/Components/Compo/Order/OrderRowMan.razor b/Lux.UI/Components/Compo/Order/OrderRowMan.razor index 42a47de8..b803c0af 100644 --- a/Lux.UI/Components/Compo/Order/OrderRowMan.razor +++ b/Lux.UI/Components/Compo/Order/OrderRowMan.razor @@ -565,6 +565,4 @@ else if (WorkLoadRecord != null) } *@ } - - - + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/Order/OrderRowMan.razor.cs b/Lux.UI/Components/Compo/Order/OrderRowMan.razor.cs index f4622a1d..af5f9ab3 100644 --- a/Lux.UI/Components/Compo/Order/OrderRowMan.razor.cs +++ b/Lux.UI/Components/Compo/Order/OrderRowMan.razor.cs @@ -1,5 +1,6 @@ using Egw.Window.Data; using EgwCoreLib.Lux.Core.Generic; +using EgwCoreLib.Razor; using Newtonsoft.Json; using WebWindowComplex; using WebWindowComplex.DTO; @@ -296,6 +297,12 @@ namespace Lux.UI.Components.Compo.Order private WorkLoadDetailDTO? WorkLoadRecord = null; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -704,7 +711,13 @@ namespace Lux.UI.Components.Compo.Order /// private async Task DoClone(OrderRowModel rec2clone) { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler duplicare la riga corrente?")) + mTitle = "Attenzione"; + mMessage = "Confermi di voler duplicare la riga corrente?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // calcolo indice riga... @@ -761,7 +774,15 @@ namespace Lux.UI.Components.Compo.Order /// private async Task DoDelete(OrderRowModel rec2del) { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler eliminare la riga corrente?
Codice: {rec2del.OrderRowUID} | {rec2del.Note} | importo tot: {rec2del.TotalPrice}")) + mTitle = "Attenzione"; + mMessage = "Confermi di voler eliminare la riga corrente?\n" + + $"Codice: {rec2del.OrderRowUID} | {rec2del.Note}\n" + + $"Importo tot: {rec2del.TotalPrice}"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; await OrdRService.DeleteAsync(rec2del); @@ -786,8 +807,13 @@ namespace Lux.UI.Components.Compo.Order private async Task DoGenFabbisogni(OrderRowModel curRec) { - - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler generare i fabbisogni per la riga d'ordine indicata?")) + mTitle = "Attenzione"; + mMessage = "Confermi di voler generare i fabbisogni per la riga d'ordine indicata?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // chiamo procedura creazione fabbisogni... @@ -1084,8 +1110,15 @@ namespace Lux.UI.Components.Compo.Order /// private async Task OrderForceParameters() { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler impostare i parametri selezionati per l'Ordine?")) + mTitle = "Attenzione"; + mMessage = "Confermi di voler impostare i parametri selezionati per l'Ordine?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; + // recupero obj dizionario x i parametri compresi... ParamDict CurrSel = new ParamDict(CurrRecord.DictPresel); // metto a waiting tutte le righe con bom... @@ -1130,7 +1163,13 @@ namespace Lux.UI.Components.Compo.Order /// private async Task OrderUpdateAllCosting() { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler ricalcolare/validare in toto l'ordine?")) + mTitle = "Attenzione"; + mMessage = "Confermi di voler ricalcolare/validare in toto l'ordine?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // metto a waiting tutte le righe con bom... @@ -1159,7 +1198,13 @@ namespace Lux.UI.Components.Compo.Order /// private async Task OrderUpdatePrices() { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler ricalcolare Ordine a costi correnti?")) + mTitle = "Attenzione"; + mMessage = "Confermi di voler ricalcolare Ordine a costi correnti?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; await DoRecalcOrder(true); @@ -1492,7 +1537,13 @@ namespace Lux.UI.Components.Compo.Order { if (WorkLoadRecord != null && balData != null && balData.TagList.Count > 0) { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi richiesta bilanciamento carico per {balData.TagList.Count} articoli?")) + mTitle = "Attenzione"; + mMessage = $"Confermi richiesta bilanciamento carico per {balData.TagList.Count} articoli?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // preparo oggetto richiesta @@ -1609,7 +1660,13 @@ namespace Lux.UI.Components.Compo.Order /// private async Task RequestBom(OrderRowModel currRec) { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler ricalcolare la BOM?")) + mTitle = "Attenzione"; + mMessage = "Confermi di voler ricalcolare la BOM?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; await reqBomUpdate(currRec); @@ -1623,7 +1680,13 @@ namespace Lux.UI.Components.Compo.Order { if (WorkLoadRecord != null && SelRecord != null) { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler rimettere in coda il calcolo?")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler rimettere in coda il calcolo?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; string JobCode = $"ORDER:ESTIMATE:{WorkLoadRecord.UID}"; diff --git a/Lux.UI/Components/Compo/Planner/BalanceProgGroup.razor b/Lux.UI/Components/Compo/Planner/BalanceProgGroup.razor index e5542466..d2a4c61f 100644 --- a/Lux.UI/Components/Compo/Planner/BalanceProgGroup.razor +++ b/Lux.UI/Components/Compo/Planner/BalanceProgGroup.razor @@ -154,4 +154,6 @@ -} \ No newline at end of file +} + + \ No newline at end of file diff --git a/Lux.UI/Components/Compo/Planner/BalanceProgGroup.razor.cs b/Lux.UI/Components/Compo/Planner/BalanceProgGroup.razor.cs index 5f9f22aa..a786e5d4 100644 --- a/Lux.UI/Components/Compo/Planner/BalanceProgGroup.razor.cs +++ b/Lux.UI/Components/Compo/Planner/BalanceProgGroup.razor.cs @@ -1,4 +1,5 @@ using EgwCoreLib.Lux.Core.Generic; +using EgwCoreLib.Razor; namespace Lux.UI.Components.Compo.Planner { @@ -149,6 +150,12 @@ namespace Lux.UI.Components.Compo.Planner private ProductionBatchModel? newBatch = null; private bool ShowCreateBatch = false; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -172,11 +179,17 @@ namespace Lux.UI.Components.Compo.Planner var totBars = ListBalancedDet.Sum(x => x.TotalBarQty); var totNumPart = ListBalancedDet.Sum(x => x.TotalNumPart); - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler creare la commessa su ogni impianto?{Environment.NewLine}L'impegno totale è per:" + - $"{Environment.NewLine} - macchine: {numMacc}" + - $"{Environment.NewLine} - parti: {totNumPart}" + - $"{Environment.NewLine} - barre: {totBars}" + - $"{Environment.NewLine} - tempo lavorazioni: {FormatEstTime(BalancedTotalTime)}")) + mTitle = "Attenzione"; + mMessage = $"Sicuro di voler creare la commessa su ogni impianto?\nL'impegno totale è per:\n " + + $"- macchine: {numMacc}\n" + + $"- parti: {totNumPart}\n" + + $"- barre: {totBars}\n" + + $"- tempo lavorazioni: {FormatEstTime(BalancedTotalTime)}"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; BatchCreateInfo newData = new BatchCreateInfo() diff --git a/Lux.UI/Components/Compo/Templates/TemplateList.razor.cs b/Lux.UI/Components/Compo/Templates/TemplateList.razor.cs index cdc11c83..9233371a 100644 --- a/Lux.UI/Components/Compo/Templates/TemplateList.razor.cs +++ b/Lux.UI/Components/Compo/Templates/TemplateList.razor.cs @@ -106,12 +106,10 @@ namespace Lux.UI.Components.Compo.Templates private async Task DoClone(TemplateModel rec2clone) { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler duplicare interamente il Gruppo Template selezionato?{Environment.NewLine}---------------------------{Environment.NewLine}Env: {rec2clone.Envir} | {rec2clone.Name}{Environment.NewLine}{rec2clone.Description}{Environment.NewLine}Articoli: {rec2clone.NumItems}")) - // return; - mTitle = "Clonazione"; - mMessage = $"Confermi di voler duplicare interamente il Gruppo Template selezionato?-----" + - $"Env: {rec2clone.Envir} | {rec2clone.Name} | " + - $"{rec2clone.Description} | " + + mTitle = "Attenzione"; + mMessage = $"Confermi di voler duplicare interamente il Gruppo Template selezionato?\n" + + $"Env: {rec2clone.Envir} | {rec2clone.Name}\n " + + $"{rec2clone.Description}\n " + $"Articoli: {rec2clone.NumItems}"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); @@ -119,7 +117,7 @@ namespace Lux.UI.Components.Compo.Templates modalOpt.Add(false, "No"); if (!await DeleteModal!.ShowAsync()) return; - // clona intera offerta + tutte le righe... + // clona intero template + tutte le righe... rec2clone.Name += " - clone"; rec2clone.Description += $" - cloned {DateTime.Now:yyyy.MM.dd HH:mm:ss}"; await TService.CloneAsync(rec2clone); @@ -135,20 +133,19 @@ namespace Lux.UI.Components.Compo.Templates private async Task DoDelete(TemplateModel curRec) { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler eliminare il Gruppo Template selezionato?{Environment.NewLine}---------------------------{Environment.NewLine}Env: {curRec.Envir} | {curRec.Name}{Environment.NewLine}{curRec.Description}{Environment.NewLine}Articoli: {curRec.NumItems}")) - // return; mTitle = "Eliminazione"; - mMessage = $"Confermi di voler eliminare il Gruppo Template selezionato?-----" + - $"Env: {curRec.Envir} | {curRec.Name} | " + - $"{curRec.Description} | " + - $"Articoli: {curRec.NumItems}"; + mMessage = $"Confermi di voler eliminare il Gruppo Template selezionato?\n" + + $"Env: {curRec.Envir} | {curRec.Name}\n " + + $"{curRec.Description}\n " + + $"Articoli: {curRec.NumItems}"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); modalOpt.Add(true, "Si"); modalOpt.Add(false, "No"); if (!await DeleteModal!.ShowAsync()) return; - // clona intera offerta + tutte le righe... + + // elimina intero template (anche le sue righe) await TService.DeleteAsync(curRec); await ReloadDataAsync(); UpdateTable(); diff --git a/Lux.UI/Components/Compo/Templates/TemplateRowList.razor.cs b/Lux.UI/Components/Compo/Templates/TemplateRowList.razor.cs index 0107fc59..80420e92 100644 --- a/Lux.UI/Components/Compo/Templates/TemplateRowList.razor.cs +++ b/Lux.UI/Components/Compo/Templates/TemplateRowList.razor.cs @@ -485,9 +485,7 @@ namespace Lux.UI.Components.Compo.Templates private async Task DoClone(TemplateRowModel rec2clone) { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler duplicare la riga corrente?")) - // return; - mTitle = "Eliminazione"; + mTitle = "Attenzione"; mMessage = "Confermi di voler duplicare la riga corrente?"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); @@ -554,10 +552,8 @@ namespace Lux.UI.Components.Compo.Templates /// private async Task DoDelete(TemplateRowModel curRec) { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler eliminare il template selezionato?{Environment.NewLine}---------------------------{Environment.NewLine}Env: {curRec.Envir} | {curRec.Name}")) - // return; - mTitle = "Eliminazione"; - mMessage = $"Confermi di voler eliminare il template selezionato?---------------" + + mTitle = "Attenzione"; + mMessage = $"Confermi di voler eliminare il template selezionato?\n" + $"Env: {curRec.Envir} | {curRec.Name}"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); @@ -770,9 +766,7 @@ namespace Lux.UI.Components.Compo.Templates /// private async Task OfferUpdateAllCosting() { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler ricalcolare/validare in toto i Template del gruppo?")) - // return; - mTitle = "Ricalcolo"; + mTitle = "Attenzione"; mMessage = "Confermi di voler ricalcolare/validare in toto i Template del gruppo?"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); @@ -1217,9 +1211,7 @@ namespace Lux.UI.Components.Compo.Templates /// private async Task RequestBom(TemplateRowModel currRec) { - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler ricalcolare la BOM?")) - // return; - mTitle = "Ricalcolo"; + mTitle = "Attenzione"; mMessage = "Confermi di voler ricalcolare la BOM?"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); diff --git a/Lux.UI/Components/Compo/WorkLoad/TimeEstim.razor b/Lux.UI/Components/Compo/WorkLoad/TimeEstim.razor index 0c90e0b5..7da56408 100644 --- a/Lux.UI/Components/Compo/WorkLoad/TimeEstim.razor +++ b/Lux.UI/Components/Compo/WorkLoad/TimeEstim.razor @@ -235,4 +235,4 @@ - + diff --git a/Lux.UI/Components/Compo/WorkLoad/TimeEstim.razor.cs b/Lux.UI/Components/Compo/WorkLoad/TimeEstim.razor.cs index 33a4ceba..e78de605 100644 --- a/Lux.UI/Components/Compo/WorkLoad/TimeEstim.razor.cs +++ b/Lux.UI/Components/Compo/WorkLoad/TimeEstim.razor.cs @@ -1,4 +1,5 @@ using EgwCoreLib.Lux.Core.Generic; +using EgwCoreLib.Razor; namespace Lux.UI.Components.Compo.WorkLoad { @@ -98,7 +99,13 @@ namespace Lux.UI.Components.Compo.WorkLoad /// protected async Task SendUnworkExt(int ProdAssignId) { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi assegnazione Ext/Manual per {DetailRecord.NumKo} articoli?")) + mTitle = "Attenzione"; + mMessage = $"Confermi assegnazione Ext/Manual per {DetailRecord.NumKo} articoli?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; if (OrderRowRecord.OrderRowID > 0 && ProdAssignId > 0) @@ -145,6 +152,12 @@ namespace Lux.UI.Components.Compo.WorkLoad private string selUid = ""; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -190,7 +203,13 @@ namespace Lux.UI.Components.Compo.WorkLoad private async Task ForceResetAssign() { - if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di vole resettare tutte le assegnazioniper gli articoli?")) + mTitle = "Attenzione"; + mMessage = "Confermi di vole resettare tutte le assegnazioni per gli articoli?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; await EC_ResetAssign.InvokeAsync(OrderRowRecord.OrderRowID); diff --git a/Lux.UI/Components/Pages/Offers.razor.cs b/Lux.UI/Components/Pages/Offers.razor.cs index 703258e4..7cb791dc 100644 --- a/Lux.UI/Components/Pages/Offers.razor.cs +++ b/Lux.UI/Components/Pages/Offers.razor.cs @@ -202,7 +202,7 @@ namespace Lux.UI.Components.Pages private async Task DoClone(OfferModel rec2clone) { - mTitle = "Duplicazione offerta"; + mTitle = "Attenzione"; mMessage = "Confermi di voler duplicare interamente l'offerta selezionata?"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); @@ -234,7 +234,7 @@ namespace Lux.UI.Components.Pages private async Task DoEsc() { // chiudo offerta se confermo - mTitle = "Chiusura offerta"; + mTitle = "Chiusura"; mMessage = "Confermi di voler uscire dall'offerta corrente?"; mMode = BootstrapModal.ModalMode.Confirm; modalOpt = new(); diff --git a/Lux.UI/Components/Pages/Orders.razor.cs b/Lux.UI/Components/Pages/Orders.razor.cs index 1768a82d..e42be25d 100644 --- a/Lux.UI/Components/Pages/Orders.razor.cs +++ b/Lux.UI/Components/Pages/Orders.razor.cs @@ -167,10 +167,6 @@ namespace Lux.UI.Components.Pages private async Task DoGenFabbisogni(OrderModel curRec) { - - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler generare i fabbisogni per tutte le righe mancanti?")) - // return; - mTitle = "Attenzione"; mMessage = "Confermi di voler generare i fabbisogni per tutte le righe mancanti?"; mMode = BootstrapModal.ModalMode.Confirm; @@ -224,9 +220,6 @@ namespace Lux.UI.Components.Pages { if (!string.IsNullOrEmpty(JobCode)) { - //if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler rimettere in coda il calcolo?")) - // return; - mTitle = "Attenzione"; mMessage = "Sicuro di voler rimettere in coda il calcolo?"; mMode = BootstrapModal.ModalMode.Confirm; @@ -251,9 +244,6 @@ namespace Lux.UI.Components.Pages /// private async Task ResetHistory(OrderModel currRec) { - //if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler resettare l'history dell'ordine corrente? L'operazione non è revertibile.")) - // return; - mTitle = "Attenzione"; mMessage = "Sicuro di voler resettare l'history dell'ordine corrente? L'operazione non è revertibile."; mMode = BootstrapModal.ModalMode.Confirm; @@ -274,9 +264,6 @@ namespace Lux.UI.Components.Pages /// private async Task ResetRunQueue() { - //if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler resettare la coda di run calcolo? Le richieste verranno riaccodate in waiting.")) - // return; - mTitle = "Attenzione"; mMessage = "Sicuro di voler resettare la coda di run calcolo? Le richieste verranno riaccodate in waiting."; mMode = BootstrapModal.ModalMode.Confirm; @@ -299,9 +286,6 @@ namespace Lux.UI.Components.Pages /// private async Task ResetWaitQueue() { - //if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler resettarela coda di attesa calcolo eliminando le richieste in attesa? L'operazione non è revertibile.")) - // return; - mTitle = "Attenzione"; mMessage = "Sicuro di voler resettarela coda di attesa calcolo eliminando le richieste in attesa? L'operazione non è revertibile."; mMode = BootstrapModal.ModalMode.Confirm; @@ -332,9 +316,6 @@ namespace Lux.UI.Components.Pages * - registra l'history serializzata sul record.. * --------------------------------- */ - //if (!await JSRuntime.InvokeAsync("confirm", $"Confermi di voler inviare una richiesta di stima tempi per l'ordine in oggetto? l'esecuzione non avverà in realtime e sarà accodata per l'esecuzione.")) - // return; - mTitle = "Attenzione"; mMessage = "Confermi di voler inviare una richiesta di stima tempi per l'ordine in oggetto? L'esecuzione non avverà in realtime e sarà accodata per l'esecuzione."; mMode = BootstrapModal.ModalMode.Confirm; diff --git a/Lux.UI/Components/Pages/WorkLoadBalance.razor b/Lux.UI/Components/Pages/WorkLoadBalance.razor index 550df4ec..6ffd96af 100644 --- a/Lux.UI/Components/Pages/WorkLoadBalance.razor +++ b/Lux.UI/Components/Pages/WorkLoadBalance.razor @@ -41,3 +41,5 @@ + + \ No newline at end of file diff --git a/Lux.UI/Components/Pages/WorkLoadBalance.razor.cs b/Lux.UI/Components/Pages/WorkLoadBalance.razor.cs index 57b99a65..d60ae911 100644 --- a/Lux.UI/Components/Pages/WorkLoadBalance.razor.cs +++ b/Lux.UI/Components/Pages/WorkLoadBalance.razor.cs @@ -1,4 +1,5 @@ using EgwCoreLib.Lux.Core.Generic; +using EgwCoreLib.Razor; using Newtonsoft.Json; using static EgwCoreLib.Lux.Core.Enums; using static Lux.UI.Components.Compo.Planner.BalanceProgGroup; @@ -56,6 +57,12 @@ namespace Lux.UI.Components.Pages private EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS SelEnvir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.BEAM; + private BootstrapModal DeleteModal = new(); + private string mTitle = ""; + private string mMessage = ""; + private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND; + private Dictionary modalOpt = new Dictionary(); + #endregion Private Fields #region Private Properties @@ -98,7 +105,13 @@ namespace Lux.UI.Components.Pages private async Task DoBalance(int OrderRowID) { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler Bilanciare la riga d'ordine?")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler Bilanciare la riga d'ordine?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // verifico se mancassero le righe di ProdGroup e rigenero... @@ -137,7 +150,13 @@ namespace Lux.UI.Components.Pages /// private async Task DoCalculateProd(Dictionary> itemAvaiDict) { - if (!await JSRuntime.InvokeAsync("confirm", $"Stai per inviare richiesta di generazione del file di produzione ODL, confermi?")) + mTitle = "Attenzione"; + mMessage = "Stai per inviare richiesta di generazione del file di produzione ODL, confermi?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; if (currOdlAssign != null) @@ -276,7 +295,13 @@ namespace Lux.UI.Components.Pages /// private async Task DoCreateProd(OdlAssignDto odlRec) { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler (ri)creare il file di produzione ODL?")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler (ri)creare il file di produzione ODL?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // preparo oggetto richiesta generazione PROD ODL file all'Engine... @@ -408,7 +433,13 @@ namespace Lux.UI.Components.Pages /// private async Task RemoveBalance(int OrderRowID) { - if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler rimuovere la riga d'ordine dal carico attuale?")) + mTitle = "Attenzione"; + mMessage = "Sicuro di voler rimuovere la riga d'ordine dal carico attuale?"; + mMode = BootstrapModal.ModalMode.Confirm; + modalOpt = new(); + modalOpt.Add(true, "Si"); + modalOpt.Add(false, "No"); + if (!await DeleteModal!.ShowAsync()) return; // resetto riga ordine... diff --git a/Lux.UI/Lux.UI.csproj b/Lux.UI/Lux.UI.csproj index 0f0a29de..f99b856c 100644 --- a/Lux.UI/Lux.UI.csproj +++ b/Lux.UI/Lux.UI.csproj @@ -5,7 +5,7 @@ enable enable aspnet-Lux.UI-a758c101-a2f4-4e38-977d-1c4887dbbd50 - 1.1.2605.0609 + 1.1.2605.0716 diff --git a/Lux.UI/wwwroot/css/site.css b/Lux.UI/wwwroot/css/site.css index 10e586e0..082991be 100644 --- a/Lux.UI/wwwroot/css/site.css +++ b/Lux.UI/wwwroot/css/site.css @@ -87,6 +87,9 @@ a, /*object-fit: cover; object-position: center;*/ } +.modal-body { + white-space: pre-line !important; +} /* Gestione dropdown menu x week planner */ .dropdown { position: relative; diff --git a/Lux.UI/wwwroot/css/site.less b/Lux.UI/wwwroot/css/site.less index a28c8a91..33cdef9b 100644 --- a/Lux.UI/wwwroot/css/site.less +++ b/Lux.UI/wwwroot/css/site.less @@ -93,6 +93,10 @@ a, .btn-link { object-position: center;*/ } +.modal-body { + white-space: pre-line !important; +} + /* Gestione dropdown menu x week planner */ @dropTop: -13.0em; diff --git a/Lux.UI/wwwroot/css/site.min.css b/Lux.UI/wwwroot/css/site.min.css index d44f858f..a188e679 100644 --- a/Lux.UI/wwwroot/css/site.min.css +++ b/Lux.UI/wwwroot/css/site.min.css @@ -1 +1 @@ -h1,h2,h3,h4,h5,h6,b,display-1,display-2,display-3,display-4{font-family:'Lato',sans-serif;}html,body{font-family:'Roboto',sans-serif;line-height:1.3;}.condensed{font-family:'Roboto Condensed',sans-serif;}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;}.image-hover-pop{transition:transform .3s ease,box-shadow .3s ease;position:relative;z-index:1;}.image-hover-pop:hover{transform:scale(1.5);z-index:10;box-shadow:0 8px 16px rgba(0,0,0,.7);border-radius:1rem;}.image-big-hover-pop{transition:transform .3s ease,box-shadow .3s ease;position:relative;z-index:1;}.image-big-hover-pop:hover{transform:scale(1.1);z-index:10;box-shadow:0 8px 16px rgba(0,0,0,.7);border-radius:1rem;}.card-img-fixed{height:12rem;width:100%;object-fit:contain;background-color:#f8f9fa;}.dropdown{position:relative;display:inline-block;}.dropdown:hover .dropdown-content,.dropdown:hover .dropdown-content-top,.dropdown:hover .dropdown-content-left,.dropdown:hover .dropdown-content-top-left{display:block;}.dropdown-content{display:none;position:absolute;left:-10em;min-width:8em;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);z-index:1;}.dropdown-content .a{color:#000;padding:12px 16px;text-decoration:none;display:block;}.dropdown-content .a:hover{background-color:#ddd;}.dropdown-content-top{display:none;position:absolute;min-width:8em;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);z-index:1;top:-13em;left:-10em;}.dropdown-content-top .a{color:#000;padding:12px 16px;text-decoration:none;display:block;}.dropdown-content-top .a:hover{background-color:#ddd;}.dropdown-content-left{display:none;position:absolute;left:-10em;min-width:8em;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);z-index:1;left:-24em;}.dropdown-content-left .a{color:#000;padding:12px 16px;text-decoration:none;display:block;}.dropdown-content-left .a:hover{background-color:#ddd;}.dropdown-content-top-left{display:none;position:absolute;left:-10em;min-width:8em;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);z-index:1;top:-13em;left:-24em;}.dropdown-content-top-left .a{color:#000;padding:12px 16px;text-decoration:none;display:block;}.dropdown-content-top-left .a:hover{background-color:#ddd;}.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.";}.responsive-svg{width:100%;height:40rem;display:block;}.shortcuts{text-align:center;}.shortcuts .shortcut-icon{font-size:2rem;}.shortcuts .shortcut{min-width:10rem;min-height:5rem;display:inline-block;padding:2rem/3 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:1rem/2;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:1rem/4 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:1rem/2;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut-sm:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}.wHead{line-height:1;}@media(max-width:640px){.shortcuts .shortcut{min-width:8rem;min-height:4rem;}body{font-size:.8em;line-height:1.1;}}@media(max-width:1650px){body{font-size:.9em;line-height:1.2;}}.reportPivot{background:#efefef;background-image:url(../images/PivotData.png);background-repeat:no-repeat;background-position:top;background-position:left;min-height:250px;height:100%;width:100%;display:block;position:relative;}.reportOre{background:#efefef;background-image:url(../images/ReportGerarchico.png);background-repeat:no-repeat;background-position:top;background-position:left;min-height:250px;height:100%;width:100%;display:block;position:relative;}.reportFolders{background:#efefef;background-image:url(../images/ReportFolders.png);background-repeat:no-repeat;background-position:top;background-position:left;min-height:250px;height:100%;width:100%;display:block;position:relative;}.reportBadge{background:#efefef;background-image:url(../images/Barcode.png);background-repeat:no-repeat;background-position:top;background-position:left;min-height:250px;height:100%;width:100%;display:block;position:relative;}.areaTesto{white-space:normal;overflow:visible;position:absolute;left:0;right:0;bottom:50%;bottom:0;margin:0;padding:0 20px;min-height:25%;line-height:1.5;color:#fff;background:#333;background:rgba(50,50,50,.9);-webkit-background-clip:padding;background-clip:padding-box;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;}.areaTestoSmall{white-space:normal;overflow:visible;position:absolute;left:0;right:0;bottom:50%;bottom:0;margin:0;padding:0 3px;min-height:50%;line-height:1.5;font-size:7pt;color:#fff;background:#999;background:rgba(160,160,160,.9);-webkit-background-clip:padding;background-clip:padding-box;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;}.reportFoldersSmall{background:#efefef;background-image:url(../images/ReportGerarchico.png);background-repeat:no-repeat;background-position:left top;background-size:60px 60px;min-height:36px;height:100%;width:100%;max-width:100%;display:block;position:relative;} \ No newline at end of file +h1,h2,h3,h4,h5,h6,b,display-1,display-2,display-3,display-4{font-family:'Lato',sans-serif;}html,body{font-family:'Roboto',sans-serif;line-height:1.3;}.condensed{font-family:'Roboto Condensed',sans-serif;}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;}.image-hover-pop{transition:transform .3s ease,box-shadow .3s ease;position:relative;z-index:1;}.image-hover-pop:hover{transform:scale(1.5);z-index:10;box-shadow:0 8px 16px rgba(0,0,0,.7);border-radius:1rem;}.image-big-hover-pop{transition:transform .3s ease,box-shadow .3s ease;position:relative;z-index:1;}.image-big-hover-pop:hover{transform:scale(1.1);z-index:10;box-shadow:0 8px 16px rgba(0,0,0,.7);border-radius:1rem;}.card-img-fixed{height:12rem;width:100%;object-fit:contain;background-color:#f8f9fa;}.modal-body{white-space:pre-line!important;}.dropdown{position:relative;display:inline-block;}.dropdown:hover .dropdown-content,.dropdown:hover .dropdown-content-top,.dropdown:hover .dropdown-content-left,.dropdown:hover .dropdown-content-top-left{display:block;}.dropdown-content{display:none;position:absolute;left:-10em;min-width:8em;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);z-index:1;}.dropdown-content .a{color:#000;padding:12px 16px;text-decoration:none;display:block;}.dropdown-content .a:hover{background-color:#ddd;}.dropdown-content-top{display:none;position:absolute;min-width:8em;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);z-index:1;top:-13em;left:-10em;}.dropdown-content-top .a{color:#000;padding:12px 16px;text-decoration:none;display:block;}.dropdown-content-top .a:hover{background-color:#ddd;}.dropdown-content-left{display:none;position:absolute;left:-10em;min-width:8em;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);z-index:1;left:-24em;}.dropdown-content-left .a{color:#000;padding:12px 16px;text-decoration:none;display:block;}.dropdown-content-left .a:hover{background-color:#ddd;}.dropdown-content-top-left{display:none;position:absolute;left:-10em;min-width:8em;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);z-index:1;top:-13em;left:-24em;}.dropdown-content-top-left .a{color:#000;padding:12px 16px;text-decoration:none;display:block;}.dropdown-content-top-left .a:hover{background-color:#ddd;}.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.";}.responsive-svg{width:100%;height:40rem;display:block;}.shortcuts{text-align:center;}.shortcuts .shortcut-icon{font-size:2rem;}.shortcuts .shortcut{min-width:10rem;min-height:5rem;display:inline-block;padding:2rem/3 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:1rem/2;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:1rem/4 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:1rem/2;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut-sm:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}.wHead{line-height:1;}@media(max-width:640px){.shortcuts .shortcut{min-width:8rem;min-height:4rem;}body{font-size:.8em;line-height:1.1;}}@media(max-width:1650px){body{font-size:.9em;line-height:1.2;}}.reportPivot{background:#efefef;background-image:url(../images/PivotData.png);background-repeat:no-repeat;background-position:top;background-position:left;min-height:250px;height:100%;width:100%;display:block;position:relative;}.reportOre{background:#efefef;background-image:url(../images/ReportGerarchico.png);background-repeat:no-repeat;background-position:top;background-position:left;min-height:250px;height:100%;width:100%;display:block;position:relative;}.reportFolders{background:#efefef;background-image:url(../images/ReportFolders.png);background-repeat:no-repeat;background-position:top;background-position:left;min-height:250px;height:100%;width:100%;display:block;position:relative;}.reportBadge{background:#efefef;background-image:url(../images/Barcode.png);background-repeat:no-repeat;background-position:top;background-position:left;min-height:250px;height:100%;width:100%;display:block;position:relative;}.areaTesto{white-space:normal;overflow:visible;position:absolute;left:0;right:0;bottom:50%;bottom:0;margin:0;padding:0 20px;min-height:25%;line-height:1.5;color:#fff;background:#333;background:rgba(50,50,50,.9);-webkit-background-clip:padding;background-clip:padding-box;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;}.areaTestoSmall{white-space:normal;overflow:visible;position:absolute;left:0;right:0;bottom:50%;bottom:0;margin:0;padding:0 3px;min-height:50%;line-height:1.5;font-size:7pt;color:#fff;background:#999;background:rgba(160,160,160,.9);-webkit-background-clip:padding;background-clip:padding-box;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;}.reportFoldersSmall{background:#efefef;background-image:url(../images/ReportGerarchico.png);background-repeat:no-repeat;background-position:left top;background-size:60px 60px;min-height:36px;height:100%;width:100%;max-width:100%;display:block;position:relative;} \ No newline at end of file diff --git a/Resources/ChangeLog.html b/Resources/ChangeLog.html index 56beedb5..42afe02d 100644 --- a/Resources/ChangeLog.html +++ b/Resources/ChangeLog.html @@ -1,6 +1,6 @@ LUX - Web Windows MES -

Versione: 1.1.2605.0609

+

Versione: 1.1.2605.0716


Note di rilascio:
  • diff --git a/Resources/VersNum.txt b/Resources/VersNum.txt index beac5c16..f1044da5 100644 --- a/Resources/VersNum.txt +++ b/Resources/VersNum.txt @@ -1 +1 @@ -1.1.2605.0609 +1.1.2605.0716 diff --git a/Resources/manifest.xml b/Resources/manifest.xml index e0bc7739..be28d0c6 100644 --- a/Resources/manifest.xml +++ b/Resources/manifest.xml @@ -1,6 +1,6 @@ - 1.1.2605.0609 + 1.1.2605.0716 http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html false