diff --git a/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor b/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor index b312176..dff4e57 100644 --- a/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor +++ b/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor @@ -1,30 +1,65 @@ - + @if (listValuesFname != null) { - + @foreach (var folder in listValuesFname) + { + + } + } + +
+ Template + @if (listValuesFiles != null && listValuesFiles.Count > 0) + { + + } + else + { + + } +
+ @foreach (var item in currVal) + { + @if (item.Key != "folder" && item.Key != "template") + { + if (isCombo(item.Key)) + { +
+ @translate(item.Key) + +
+ } + else + { +
+ @translate(item.Key) + +
+ } } } - -
- Template - @if (listValuesFiles != null && listValuesFiles.Count > 0) - { - - } - else - { - - } -
- -@foreach (var graph in getGraphicParams()) +} +@*@foreach (var graph in getGraphicParams()) { @foreach (var graphParam in graph.Value) { @@ -49,12 +84,13 @@ } } -} +}*@ +
-
+
Cancel
-
\ No newline at end of file +
diff --git a/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor.cs b/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor.cs index 2ee4204..8af040b 100644 --- a/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor.cs +++ b/WebDoorCreator.UI/Components/Hardware/HwSingleInstance.razor.cs @@ -1,5 +1,4 @@ using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Identity; using Newtonsoft.Json; using WebDoorCreator.Data.DbModels; using WebDoorCreator.UI.Data; @@ -23,21 +22,51 @@ namespace WebDoorCreator.UI.Components.Hardware #region Public Methods - public Dictionary>> getGraphicParams() + public void setupCurrValues() { - var deserialized = JsonConvert.DeserializeObject>>>(DoorOpInst.JsoncConfigVal!); + //currVal = new Dictionary(); + if (!string.IsNullOrEmpty(DoorOpInst.JsoncActVal)) + { + var deserialized = JsonConvert.DeserializeObject>(DoorOpInst.JsoncActVal!); + if (deserialized != null) + { + currVal = deserialized; + } + } + } + + public void setupGraphicParams() + { + var deserialized = JsonConvert.DeserializeObject>>(DoorOpInst.JsoncConfigVal!); if (deserialized != null) { graphicParams = deserialized; } - return graphicParams; } #endregion Public Methods #region Protected Properties - protected string _folderName { get; set; } = ""; + //public Dictionary>> getGraphicParams() + //{ + // var deserialized = JsonConvert.DeserializeObject>>>(DoorOpInst.JsoncConfigVal!); + // if (deserialized != null) + // { + // graphicParams = deserialized; + // } + // return graphicParams; + //} + protected string _folderName + { + get => currVal != null ? currVal["folder"] : ""; + set => currVal["folder"] = value; + } + + /// + /// Array dati + /// + protected Dictionary currVal { get; set; } = null!; protected string folderName { @@ -52,7 +81,13 @@ namespace WebDoorCreator.UI.Components.Hardware } } - protected Dictionary>> graphicParams { get; set; } = null!; + protected string templateName + { + get => currVal != null ? currVal["template"] : ""; + set => currVal["template"] = value; + } + + protected Dictionary> graphicParams { get; set; } = null!; protected List? listValuesFiles { get; set; } = null!; protected List? listValuesFname { get; set; } = null!; @@ -67,9 +102,44 @@ namespace WebDoorCreator.UI.Components.Hardware #region Protected Methods + protected bool isCombo(string pKey) + { + bool answ = false; + if (graphicParams.ContainsKey(pKey)) + { + answ = graphicParams[pKey].Count > 1; + } + return answ; + } + + protected List comboSet(string pKey) + { + List answ = new List(); + if (graphicParams.ContainsKey(pKey)) + { + answ = graphicParams[pKey].ToList(); + } + return answ; + } + + + protected async Task doSave() + { + // ri-serializzo i graphics parameters... + string serVal = JsonConvert.SerializeObject(currVal); + DoorOpInst.JsoncActVal = serVal; + // salvo! + await WDCService.DoorOpUpdate(DoorOpInst); + } + + protected async Task doCancel() + { + await FullReloadData(true); + } + protected override async Task OnParametersSetAsync() { - await ReloadData(true); + await FullReloadData(true); } protected string translate(string lemma) @@ -81,10 +151,18 @@ namespace WebDoorCreator.UI.Components.Hardware return answ; } + + #endregion Protected Methods #region Private Methods + private async Task FullReloadData(bool isFirst) + { + setupCurrValues(); + setupGraphicParams(); + await ReloadData(isFirst); + } private async Task ReloadData(bool isFirst) { var tempListVal = await WDCService.ListValuesGetAll(HwCode, "Folder"); @@ -107,15 +185,6 @@ namespace WebDoorCreator.UI.Components.Hardware } } - protected async Task doSave() - { - // ri-serializzo i graphics parameters... - string serVal = JsonConvert.SerializeObject(graphicParams); - DoorOpInst.JsoncActVal = serVal; - // salvo! - await WDCService.DoorOpUpdate(DoorOpInst); - } - #endregion Private Methods } } \ No newline at end of file diff --git a/WebDoorCreator.UI/Data/WDCVocabularyService.cs b/WebDoorCreator.UI/Data/WDCVocabularyService.cs index fca3140..0988903 100644 --- a/WebDoorCreator.UI/Data/WDCVocabularyService.cs +++ b/WebDoorCreator.UI/Data/WDCVocabularyService.cs @@ -73,7 +73,7 @@ namespace WebDoorCreator.UI.Data public string Traduci(string lingua, string lemma) { - string answ = $"[{lemma}]"; + string answ = lemma; if (VocabularyLemmas != null && VocabularyLemmas.ContainsKey(lingua)) {