Files
2025-04-16 17:49:25 +02:00

96 lines
2.8 KiB
Plaintext

@inject ListSelectDataSrv MDataService
<div class="nav-scrollable">
<div class="bg-dark text-center py-2">
<i class="fa-solid fa-link"></i> &nbsp; <span class="fw-bold">Link diretti</span>
</div>
<nav class="flex-column">
@if (MenuItems != null && MenuItems.Count > 0)
{
foreach (var item in MenuItems)
{
<div class="nav-item px-2">
@if (@linkActive(item.NavigateUrl))
{
<NavLink class="nav-link px-2 active" @onclick="()=>SetPage(item.NavigateUrl)">
<i class="fa fa-lg @item.Icona pe-2" aria-hidden="true"></i> @item.Testo
</NavLink>
}
else
{
if (IsManual && item.Ordine > 20)
{
<NavLink class="nav-link px-2 disabled text-secondary">
<i class="fa fa-lg @item.Icona pe-2" aria-hidden="true"></i> @item.Testo
</NavLink>
}
else
{
<NavLink class="nav-link px-2" @onclick="()=>SetPage(item.NavigateUrl)">
<i class="fa fa-lg @item.Icona pe-2" aria-hidden="true"></i> @item.Testo
</NavLink>
}
}
</div>
}
}
</nav>
</div>
@code {
[Parameter]
public List<LinkMenuModel> MenuItems { get; set; } = new List<LinkMenuModel>();
[Inject]
protected MessageService MsgServ { get; set; } = null!;
[Inject]
protected SharedMemService MStor { get; set; } = null!;
[Inject]
protected NavigationManager NavMan { get; set; } = null!;
protected bool linkActive(string objUrl)
{
bool answ = false;
if (NavMan.Uri.Contains(objUrl))
{
answ = true;
}
return answ;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
idxMaccSel = await MsgServ.IdxMaccGet();
if (!string.IsNullOrEmpty(idxMaccSel) && MStor.DictMacchManual.ContainsKey(idxMaccSel))
{
IsManual = MStor.DictMacchManual[idxMaccSel];
}
else
{
IsManual = false;
}
}
protected async Task SetPage(string tgtUrl)
{
if (tgtUrl.Contains("status-map"))
{
await MsgServ.IdxMaccSet("");
}
await MsgServ.LastOpenedPageSet(tgtUrl);
// navManager.NavigateTo(tgtUrl, true);
NavMan.NavigateTo(tgtUrl, false);
}
private string idxMaccSel = "";
private bool IsManual = false;
}