Files
2025-07-09 14:37:28 +02:00

191 lines
12 KiB
Plaintext

@page "/IobList"
<div class="row">
<div class="col-12">
<div class="card shadow">
<div class="card-header text-center">
<div class="row">
<div class="col-4">
<div class="input-group">
<span class="input-group-text">Ricerca</span>
<input type="text" class="form-control" placeholder="alt-/" @bind="SearchValue" accesskey="/">
<button class="btn @BtnResetCss" @onclick="ResetSearch"><i class="fa-solid fa-rotate-right"></i></button>
</div>
</div>
<div class="col-4">
<h2>@Titolo</h2>
</div>
<div class="col-4">
<div class="d-flex justify-content-between">
<div class="input-group-text">
<span class="form-check form-switch small align-content-center">
<input class="form-check-input" type="checkbox" role="switch" title="Mostra / Nascondi Accessori/Extra (es PING e ENR)" @bind-value="@ShowExtra" checked="@ShowExtra">
<label class="form-check-label">IOB Extra</label>
</span>
</div>
@if (IsSuperAdmin)
{
<div class="input-group-text">
<span class="form-check form-switch small align-content-center me-1">
<input class="form-check-input" type="checkbox" role="switch" title="Mostra / Nascondi senza locazione" @bind-value="@ShowEmptyLoc" checked="@ShowEmptyLoc">
<label class="form-check-label">No Loc.</label>
</span>
@if (showEmptyLoc)
{
<span class="form-check form-switch small align-content-center">
<input class="form-check-input" type="checkbox" role="switch" title="Mostra / Nascondi multi (es Tavole)" @bind-value="@ShowMulti" checked="@ShowMulti">
<label class="form-check-label">Multi</label>
</span>
}
else
{
<span class="form-check form-switch small align-content-center">
<input class="form-check-input" type="checkbox" role="switch" title="Mostra / Nascondi multi (es Tavole)" @bind-value="@ShowMulti" checked="@ShowMulti" disabled>
<label class="form-check-label">Multi</label>
</span>
}
</div>
}
else
{
<div class="badge rounded-pill bg-dark px-4 py-2">
<div class="px-1">
<a class="text-light" href="https://www.egalware.com/" target="_blank">powered by&nbsp;EgalWare <img width="24" class="img-fluid" src="img/LogoEgalware.svg" /></a>
</div>
</div>
}
</div>
</div>
</div>
</div>
<div class="card-body">
@if (isLoading || ListRecords == null)
{
<LoadingData></LoadingData>
}
else if (totalCount == 0)
{
<div class="alert alert-warning text-center display-4">Nessun record trovato</div>
}
else
{
<div class="row">
<div class="col-12">
<table class="table table-sm table-striped">
<thead>
<tr>
<th>IdxMacc <Sorter ParamName="IdxMacc" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>Nome <Sorter ParamName="Nome" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
@if (IsSuperAdmin)
{
<th>Descr <Sorter ParamName="Descr" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
}
<th>OS <Sorter ParamName="OS" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th><i class="fa-solid fa-computer"></i> PC IOB <Sorter ParamName="IobName" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th><i class="fa-solid fa-laptop-code"></i> Adapter <Sorter ParamName="AdapName" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th class="text-end"><i class="fa-solid fa-network-wired"></i> CNC/PLC <Sorter ParamName="TargetIp" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th class="text-end">Conf</th>
</tr>
</thead>
<tbody>
@foreach (var item in ListRecords)
{
<tr class="@checkSelect(item)">
<td class="fs-4 fw-bold">@item.IdxMacchina</td>
<td>
<div>
@item.Nome
</div>
<div class="small">
@item.CodMacchina
</div>
</td>
@if (IsSuperAdmin)
{
<td>
<div>
@item.Descrizione
</div>
<div class="small">
@item.Note
</div>
</td>
}
<td>@item.OS</td>
<td>
@if (!string.IsNullOrEmpty(item.IobName))
{
<div class="fw-bold">
@item.IobName
</div>
<div class="small d-flex justify-content-between">
<div class="px-0">
@item.IobIpv4
</div>
<div class="px-0">
@item.IobMac
</div>
</div>
}
else
{
<div>-</div>
}
</td>
<td>
@if (!string.IsNullOrEmpty(item.AdapName))
{
<div class="fw-bold">
@item.AdapName
</div>
<div class="small d-flex justify-content-between">
<div class="px-0">
<span><i class="fa-solid fa-arrow-right"></i> @item.AdapType</span>
</div>
<div class="px-0">
@item.AdapVers
</div>
</div>
}
else
{
<div>-</div>
}
</td>
<td class="text-end">
@if (!string.IsNullOrEmpty(item.TargetIp))
{
<b>@item.TargetIp</b>
<div class="small">
port: @item.TargetPort
</div>
}
else
{
<div>-</div>
}
</td>
<td class="text-end">
<a class="btn btn-primary btn-sm" target="_blank" href="@($"ConfDetail?idxMacc={item.IdxMacchina}")"><i class="fa-solid fa-gear"></i></a>
</td>
</tr>
}
</tbody>
<tfoot>
<tr>
<td colspan="8">
<DataPager PageSize="numRecord" currPage="currPage" numRecordChanged="SetNumRec" numPageChanged="SetPage" totalCount="totalCount" showLoading="isLoading" />
</td>
</tr>
</tfoot>
</table>
</div>
</div>
}
</div>
@* <div class="card-footer py-1">
</div> *@
</div>
</div>
</div>