122 lines
5.7 KiB
Plaintext
122 lines
5.7 KiB
Plaintext
|
|
<div class="card shadow">
|
|
<div class="card-header">
|
|
<div class="d-flex justify-content-between">
|
|
<div class="px-0">
|
|
<h3>Approvazione Timbrature</h3>
|
|
</div>
|
|
<div class="px-0">
|
|
<select @bind="@IdxDipSel" class="form-select form-select-sm" @bind:after=ReloadData>
|
|
<option value="0">--- Selezionare ---</option>
|
|
@foreach (var item in ListDipendenti)
|
|
{
|
|
<option value="@item.IdxDipendente">@($"{item.Cognome} {item.Nome}")</option>
|
|
}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-body p-1 small">
|
|
|
|
<table class="table table-striped table-sm text-start">
|
|
<thead>
|
|
<tr class="">
|
|
<th>
|
|
@if (legacyMode)
|
|
{
|
|
<button class="mx-1 btn btn-info btn-sm" @onclick="SelectAll"><i class="fa-solid fa-circle"></i></button>
|
|
<button class="btn btn-secondary opacity-50 btn-sm" @onclick="() => ForceReload(true)"><i class="fa-solid fa-circle"></i></button>
|
|
}
|
|
else
|
|
{
|
|
@if (allSel)
|
|
{
|
|
<i class="fa-solid fa-toggle-on text-primary fs-5" @onclick="ToggleSelection"></i>
|
|
}
|
|
else
|
|
{
|
|
<i class="fa-solid fa-toggle-off text-secondary fs-5" @onclick="ToggleSelection"></i>
|
|
}
|
|
}
|
|
@if ((legacyMode && ListUidSel.Count > 0) || (!legacyMode && HasRowSelected))
|
|
{
|
|
<button class="mx-1 btn btn-success btn-sm" @onclick="() => DoApproveSel()"><i class="fa-solid fa-thumbs-up"></i> Approva Sel</button>
|
|
}
|
|
</th>
|
|
<th>Dipendente <Sorter ParamName="Dipendente" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
|
|
<th>DataOra <Sorter ParamName="DataOra" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
|
|
<th class="text-center">IN</th>
|
|
<th class="text-center"></th>
|
|
<th class="text-center">OUT</th>
|
|
<th class="text-end"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@if (ListRecords == null || isLoading)
|
|
{
|
|
<tr class="align-middle">
|
|
<td colspan="8">
|
|
<EgwCoreLib.Razor.LoadingData></EgwCoreLib.Razor.LoadingData>
|
|
</td>
|
|
</tr>
|
|
}
|
|
else if (totalCount == 0)
|
|
{
|
|
<tr class="align-middle">
|
|
<td colspan="8">
|
|
<div class="alert alert-info mb-0">Nessun record trovato</div>
|
|
</td>
|
|
</tr>
|
|
}
|
|
else
|
|
{
|
|
@foreach (var item in ListRecords)
|
|
{
|
|
<tr class="align-middle">
|
|
<td>
|
|
@if (legacyMode)
|
|
{
|
|
<button class="mx-1 btn @CssCheckSel(item.UID) btn-sm" @onclick="() => ToggleUid(item.UID)"><i class="fa-solid @IconCheckSel(item.UID)"></i></button>
|
|
}
|
|
else
|
|
{
|
|
<input class="form-check-input" type="checkbox" @bind="item.Selected"></input>
|
|
}
|
|
<button class="btn btn-success btn-sm ms-1" @onclick="() => DoApprove(item)"><i class="fa-solid fa-thumbs-up"></i></button>
|
|
</td>
|
|
<td>
|
|
@item.DipNav.Abbrev
|
|
</td>
|
|
<td>
|
|
@item.DataOra
|
|
</td>
|
|
<td class="text-center">
|
|
@if (item.Entrata ?? false)
|
|
{
|
|
<i class="fa-solid fa-xmark"></i>
|
|
}
|
|
</td>
|
|
<td class="text-center">
|
|
<button class="btn btn-warning btn-sm" @onclick="() => DoExchange(item)"><i class="fa-solid fa-arrow-right-arrow-left"></i></button>
|
|
</td>
|
|
<td class="text-center">
|
|
@if (!item.Entrata ?? false)
|
|
{
|
|
<i class="fa-solid fa-xmark"></i>
|
|
}
|
|
</td>
|
|
<td class="text-end">
|
|
<button class="btn btn-danger btn-sm" @onclick="() => DoDelete(item)"><i class="fa-solid fa-trash"></i></button>
|
|
</td>
|
|
</tr>
|
|
}
|
|
}
|
|
</tbody>
|
|
</table>
|
|
|
|
</div>
|
|
<div class="card-footer">
|
|
<EgwCoreLib.Razor.DataPager PageSize="@numRecord" currPage="@currPage" numRecordChanged="SetNumRec" numPageChanged="SetPage" totalCount="@totalCount" showLoading="@isLoading"></EgwCoreLib.Razor.DataPager>
|
|
</div>
|
|
</div>
|