Files
2023-04-03 17:28:45 +02:00

153 lines
7.1 KiB
Plaintext

@using MP.Data.MgModels;
@if (isLoading)
{
<LoadingData></LoadingData>
}
else
{
<div class="card shadow p-0 mb-5 bg-body rounded">
<div class="card-header">
<div class="d-flex justify-content-between">
<div>
<h4>Testata Ricetta</h4>
</div>
<div>
<a href="api/Recipe/GetRecipeXML?idxPODL=@IdxPODL" target="_blank" class="btn btn-sm btn-success">XML <i class="fa-solid fa-file-export"></i></a>
<a href="api/Recipe/GetRecipe?idxPODL=@IdxPODL" target="_blank" class="btn btn-sm btn-success">json <i class="fa-solid fa-file-export"></i></a>
@if (!showHead)
{
<span class="px-2"><b>@CurrRecipe?.HeadVal.Count</b> par</span>
}
@if (needSave)
{
<button class="btn btn-sm btn-success" @onclick="() => SaveHeadData()"><i class="fa-regular fa-floppy-disk"></i> Save</button>
<button class="btn btn-sm btn-warning" @onclick="() => CancelHeadData()"><i class="fa-solid fa-xmark"></i> Cancel</button>
}
<button class="btn btn-sm btn-outline-dark" @onclick="toggleHead">
@if (showHead)
{
<i class="fa-solid fa-chevron-up"></i>
}
else
{
<i class="fa-solid fa-chevron-down"></i>
}
</button>
</div>
</div>
@if (showHead && CurrRecipe?.HeadVal != null)
{
<div class="row g-1">
@foreach (var item in CurrRecipe.HeadVal)
{
<div class="col-3">
<div class="form-floating">
@if (item.Type == RecipeModel.Element.KeyType.Fixed || item.Type == RecipeModel.Element.KeyType.Calc)
{
<input type="text" class="form-control" @bind="@item.Value" disabled>
}
else if (item.Type == MP.Data.MgModels.RecipeModel.Element.KeyType.Enum)
{
<select class="form-select" @bind="@item.Value">
@foreach (var enumItem in GetHeadListByType(item.EnumType))
{
<option value="@enumItem.Key">@enumItem.Value</option>
}
</select>
}
else
{
<input type="text" class="form-control" placeholder="@item.Key" @bind="@item.Value">
}
<label>@item.Key</label>
</div>
</div>
}
</div>
}
</div>
<div class="card-body">
<div class="d-flex justify-content-between">
<div>
<h5>Righe Ricetta</h5>
</div>
<div>
<button class="btn btn-sm btn-success" @onclick="addRow" title="Aggiunta Nuova Riga"><i class="fa-solid fa-plus"></i> Add</button>
<button class="btn btn-sm btn-outline-dark" @onclick="toggleRows">
@if (showAllRows)
{
<i class="fa-solid fa-chevron-up"></i>
}
else
{
<i class="fa-solid fa-chevron-down"></i>
}
</button>
</div>
</div>
@if (CurrRecipe?.RowsVal != null)
{
int rowTot = CurrRecipe.RowsVal.Count;
int rowNum = 0;
@foreach (var riga in CurrRecipe.RowsVal)
{
rowNum++;
<div class="d-flex justify-content-between">
<div>
# <b>@riga.Key</b>
</div>
<div>
@if (rowNum == rowTot)
{
<button class="btn btn-sm btn-danger" @onclick="() => deleteRow(riga.Key)" title="Rimuovi Ultima Riga"><i class="fa-solid fa-minus"></i></button>
}
<button class="btn btn-sm" @onclick="() => toggleRow(riga.Key)">
@if (showRows[riga.Key])
{
<i class="fa-solid fa-chevron-up"></i>
}
else
{
<i class="fa-solid fa-chevron-down"></i>
}
</button>
</div>
</div>
@if (showRows[riga.Key])
{
<div class="row g-1">
@foreach (var item in riga.Value)
{
<div class="col-3">
<div class="form-floating">
@if (item.Type == RecipeModel.Element.KeyType.Fixed || item.Type == RecipeModel.Element.KeyType.Calc)
{
<input type="text" class="form-control" @bind="@item.Value" disabled>
}
else if (item.Type == MP.Data.MgModels.RecipeModel.Element.KeyType.Enum)
{
<select class="form-select" @bind="@item.Value">
@foreach (var enumItem in GetRowListByType(item.EnumType))
{
<option value="@enumItem.Key">@enumItem.Value</option>
}
</select>
}
else
{
<input type="text" class="form-control" placeholder="@item.Key" @bind="@item.Value">
}
<label>@item.Key</label>
</div>
</div>
}
</div>
}
}
}
</div>
</div>
}