Aggiunto cloning lingua
This commit is contained in:
@@ -42,6 +42,16 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
// creo nuova lingua se non esistesse...
|
||||
var recLang = await dbCtx.DbSetLingua.FirstOrDefaultAsync(x => x.Lingua == linguaDest);
|
||||
if (recLang == null)
|
||||
{
|
||||
recLang = new LinguaModel() { Lingua = linguaDest, Note = $"Cloned from {linguaOrig}" };
|
||||
|
||||
await dbCtx.DbSetLingua.AddAsync(recLang);
|
||||
await dbCtx.SaveChangesAsync();
|
||||
}
|
||||
|
||||
// 2. Proietto nei nuovi record...
|
||||
var listNew = listOrig.Select(x => new VocabolarioModel()
|
||||
{
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
Lingua
|
||||
</div>
|
||||
<div class="px-1">
|
||||
<div class="input-group input-group-sm" title="ricerca">
|
||||
<select class="form-select" @bind="@selLingua" @bind:after="FiltLingua">
|
||||
@if (string.IsNullOrEmpty(selLingua))
|
||||
{
|
||||
@@ -13,7 +14,12 @@
|
||||
{
|
||||
<option value="@item.Lingua">@item.Lingua</option>
|
||||
}
|
||||
</select>
|
||||
</select>
|
||||
@if (!string.IsNullOrEmpty(selLingua))
|
||||
{
|
||||
<button class="btn btn-info" @onclick="DoClone"><i class="fa-solid fa-wand-magic-sparkles"></i></button>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
@@ -12,6 +12,9 @@ namespace Lux.UI.Components.Compo.Admin
|
||||
[Parameter]
|
||||
public EventCallback<VocabolarioModel> EC_Updated { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<string> EC_ReqClone { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public List<LinguaModel> ListLingue { get; set; } = null!;
|
||||
|
||||
@@ -31,6 +34,12 @@ namespace Lux.UI.Components.Compo.Admin
|
||||
}
|
||||
}
|
||||
|
||||
private async Task DoClone()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(selLingua))
|
||||
await EC_ReqClone.InvokeAsync(selLingua);
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Fields
|
||||
|
||||
@@ -39,10 +39,10 @@
|
||||
{
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<VocabMan ListLingue="@ListLingue" AllRecord="FullVocab" SearchVal="@SearchVal" EC_Updated="UpdateRec"></VocabMan>
|
||||
<VocabMan ListLingue="@ListLingue" AllRecord="FullVocab" SearchVal="@SearchVal" EC_Updated="UpdateRec" EC_ReqClone="DoCloneLang"></VocabMan>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<VocabMan ListLingue="@ListLingue" AllRecord="FullVocab" SearchVal="@SearchVal" EC_Updated="UpdateRec"></VocabMan>
|
||||
<VocabMan ListLingue="@ListLingue" AllRecord="FullVocab" SearchVal="@SearchVal" EC_Updated="UpdateRec" EC_ReqClone="DoCloneLang"></VocabMan>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@@ -50,4 +50,5 @@
|
||||
</div>
|
||||
|
||||
|
||||
<BootstrapModal @ref=Modal Title=@mTitle Message=@mMessage Mode="BootstrapModal.ModalMode.Confirm" UserOptions=@modalOpt></BootstrapModal>
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using EgwCoreLib.Lux.Data.DbModel.Admin;
|
||||
using EgwCoreLib.Razor;
|
||||
|
||||
namespace Lux.UI.Components.Pages
|
||||
{
|
||||
@@ -86,6 +87,30 @@ namespace Lux.UI.Components.Pages
|
||||
await ReloadDataAsync();
|
||||
}
|
||||
|
||||
private async Task DoCloneLang(string origLang)
|
||||
{
|
||||
mTitle = "Attenzione";
|
||||
mMessage = "Sicuro di voler duplicare il vocabolario della lingua selezionata?\n" +
|
||||
$"Sorgente: {origLang}";
|
||||
mMode = BootstrapModal.ModalMode.Confirm;
|
||||
modalOpt = new();
|
||||
modalOpt.Add(true, "Si");
|
||||
modalOpt.Add(false, "No");
|
||||
if (!await Modal!.ShowAsync<bool>())
|
||||
return;
|
||||
|
||||
// dovrebbe chiedere nuova lingua...
|
||||
string destLang = "FR";
|
||||
// ora duplica...
|
||||
await VService.CloneAsync(origLang, destLang);
|
||||
await ReloadDataAsync();
|
||||
}
|
||||
private BootstrapModal Modal = new();
|
||||
private string mTitle = "";
|
||||
private string mMessage = "";
|
||||
private BootstrapModal.ModalMode mMode = BootstrapModal.ModalMode.ND;
|
||||
private Dictionary<bool, string> modalOpt = new Dictionary<bool, string>();
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user