Files

227 lines
14 KiB
Plaintext

@if (RecordEdit != null)
{
<div class="modal fade show" tabindex="-1" style="display:block; background-color: rgba(10,10,10,.6);" aria-modal="true" role="dialog" data-keyboard="true">
<div class="modal-dialog @modalSize">
<div class="modal-content">
<div class="modal-header d-flex justify-content-between">
<div class="px-1 fs-4 modal-title">
<b>@RecordEdit.Cognome</b> @RecordEdit.Nome
@if (CtrlMode == DipendentiEdit.EditMode.FullEdit)
{
<span>| Modifica Record @RecordEdit.IdxDipendente</span>
}
else if (CtrlMode == DipendentiEdit.EditMode.ResetRequest)
{
<span>| Sblocco Licenza</span>
}
</div>
<div class="px-1">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" @onclick=ForceReload></button>
</div>
</div>
<div class="modal-body p-1 small">
<DipendentiEdit CurrMode="CtrlMode" CurrRecord="RecordEdit" EC_update="ForceReload" EC_Activate="DoActivate" EC_Release="ReleaseLicense" ListDipendenti="@ListDipendentiAttiviOrd" ListOrari="@ListOrari"></DipendentiEdit>
</div>
</div>
</div>
</div>
}
<div class="card shadow">
<div class="card-header">
<div class="d-flex justify-content-between">
<div class="px-0 d-flex">
<div class="px-2">
<h4>Dipendenti</h4>
</div>
<div class="px-2">
<div class="px-1 py-2">
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" @bind=@ShowInatt @bind:after=ForceReload>
<label class="form-check-label">Mostra Inattivi</label>
</div>
</div>
</div>
<div class="px-2">
<button class="btn btn-success" @onclick=CreateNew tooltip="Add New"><i class="fa-solid fa-plus"></i> Add New</button>
</div>
</div>
<div class="px-0 d-flex">
<div class="d-flex">
<div class="px-1 align-content-center">
<div class="input-group input-group-sm">
<span class="input-group-text">
Mostra QRCode
<span class="form-check form-switch align-content-center ms-2" title="Mostra QRCode">
<input class="form-check-input" type="checkbox" @bind=@ShowQrCode>
</span>
</span>
</div>
</div>
@if (ShowQrCode)
{
<div class="ps-1 pe-0 align-content-center">
<div class="input-group input-group-sm">
<span class="input-group-text">
@TextQrLinkInt
<span class="form-check form-switch align-content-center ms-2" title="@TextQrLinkInt">
<input class="form-check-input" type="checkbox" @bind=@ShowLinkInt>
</span>
</span>
</div>
</div>
<div class="ps-0 pe-1 align-content-center">
<div class="input-group input-group-sm">
<span class="input-group-text">
@TextQrLinkCore
<span class="form-check form-switch align-content-center ms-2" title="@TextQrLinkCore">
<input class="form-check-input" type="checkbox" @bind=@ShowLinkCore>
</span>
</span>
</div>
</div>
}
</div>
</div>
</div>
<div class="d-flex bg-dark bg-gradient text-light p-1">
<div class="px-2 mx-1 border border-2 border-info rounded rounded-3 align-content-center g-1"><i class="fa-solid fa-database"></i> Licenze Locali: disponibili <b>@NumLicDispLocal</b> / utenti attivi <b>@NumLicActLocal</b></div>
<div class="px-2 mx-1 border border-2 border-success rounded rounded-3 align-content-center g-1"><i class="fa-solid fa-cloud"></i> Licenze Online: disponibili <b>@NumLicDispOnline</b> / utenti attivi <b>@NumLicActOnline</b></div>
<button class="mx-1 btn btn-success" @onclick="DoRefresh"><i class="fa-solid fa-cloud-arrow-down g-1"></i> Refresh Status Online</button>
@if (NeedAllocation)
{
<button class="mx-1 btn btn-primary" @onclick="DoFixMissing"><i class="fa-solid fa-cloud-arrow-up g-1"></i> Allocazione Licenze</button>
}
else
{
<button class="mx-1 btn btn-secondary disabled" disabled><i class="fa-solid fa-cloud-arrow-up g-1"></i> Allocazione Licenze</button>
}
<button class="mx-1 btn btn-outline-secondary"><i class="fa-solid fa-ticket g-1"></i> Ticket Aperti <b>@NumTicket</b></button>
<button class="mx-1 btn btn-warning g-1"><i class="fa-solid fa-key"></i> Rigenera AuthKey</button>
</div>
</div>
<div class="card-body p-1 small">
@if (ListRecords == null || isLoading)
{
<EgwCoreLib.Razor.LoadingData></EgwCoreLib.Razor.LoadingData>
}
else if (totalCount == 0)
{
<div class="alert alert-info">Nessun record trovato</div>
}
else
{
<div class="row">
@if (ShowQrCode)
{
@foreach (var item in ListRecords)
{
<div class="col-12 col-md-6 col-lg-4 col-xl-3 mb-2">
<div class="card shadow">
<div class="card-header p-0">
<UserQrCode LinkInt="ShowLinkInt" RecordDip="item" LinkCore="ShowLinkCore"></UserQrCode>
</div>
<div class="card-body py-1">
<div class="fs-1 fw-bold">@item.Cognome</div>
<div class="fs-4">@item.Nome</div>
</div>
<div class="card-footer d-flex justify-content-between">
<div class="px-1"><img src="images/logoegw.png" class="imf-fluid" width="32" /> <span class="fs-6">Egalware</span></div>
<div class="px-1 fs-6 align-content-center"><i>SMART a-link</i></div>
</div>
</div>
</div>
}
}
else
{
<div class="col-12">
<table class="table table-striped table-sm text-start">
<thead>
<tr>
<th>
<button class="btn btn-primary btn-sm" @onclick="() => ForceReload()"><i class="fa-solid fa-rotate"></i></button>
</th>
<th>Cognome <Sorter ParamName="Cognome" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>Nome <Sorter ParamName="Nome" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>Matricola <Sorter ParamName="Matricola" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>Profilo <Sorter ParamName="Profilo" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>Dominio <Sorter ParamName="Dominio" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>Utente <Sorter ParamName="Utente" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>Email <Sorter ParamName="Email" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>CF <Sorter ParamName="CF" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>CodeHw <Sorter ParamName="CodeHw" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>Dati anagrafici <Sorter ParamName="DatiAnag" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>Gruppo <Sorter ParamName="Gruppo" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th>Stato licenza <Sorter ParamName="StatoLic" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
<th class="text-end">Responsabile <Sorter ParamName="Responsabile" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
</tr>
</thead>
<tbody>
@foreach (var item in ListRecords)
{
<tr class="@CheckSel(item)">
<td class="text-nowrap">
<button class="btn btn-info btn-sm" @onclick="() => DoSelect(item)" title="Dettaglio Record"><i class="fa-solid fa-search"></i></button>
@if (RecordEdit == null)
{
if (CheckFreeEdit(item.IdxDipendente))
{
<button class="btn btn-primary btn-sm mx-1" @onclick="() => DoEdit(item)" title="Modifica record">
<i class="fa-solid fa-edit"></i>
</button>
}
else
{
<button class="btn btn-warning btn-sm mx-1" @onclick="() => RequestReset(item)" title="Richiesta sblocco Licenza">
<i class="fa-solid fa-question-circle"></i>
</button>
}
}
else
{
<button class="btn btn-secondary btn-sm mx-1" disabled><i class="fa-solid fa-edit"></i></button>
}
</td>
<td class="text-start">@item.Cognome</td>
<td class="text-start">@item.Nome</td>
<td class="text-start">@item.Matricola</td>
<td class="text-start">@item.CodOrario</td>
<td class="text-start">@item.Dominio</td>
<td class="text-start">@item.Utente</td>
<td class="text-start">@item.Email</td>
<td class="text-start">@item.Cf</td>
<td class="text-start">@item.CodHw</td>
<td class="text-start">@($"{item.LuogoNascita}") - @($"{item.ProvNascita}") - @($"{item.NazNascita}") - @($"{item.DataNascita:dd/MM/yyyy}")</td>
<td class="text-start">@item.Gruppo</td>
<td class="text-start">@($"{item.DataAssunzione:dd/MM/yyyy}") - @($"{item.DataCessazione:dd/MM/yyyy}")</td>
<td class="text-end">
<select @bind="@item.idxResp" class="form-select form-select-sm disabled" disabled style="min-width: 12rem;">
<option value="0">--- Selezionare ---</option>
@foreach (var dip in ListDipendentiOrd)
{
<option value="@dip.IdxDipendente">@($"{dip.Cognome} {dip.Nome}")</option>
}
</select>
</td>
</tr>
}
</tbody>
</table>
</div>
}
</div>
}
</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>