5d72d21fb1
Update gestione paginazione (visibile solo dove serve) + fix calcolo di alcuni intems male filtrati
234 lines
12 KiB
Plaintext
234 lines
12 KiB
Plaintext
@using LiMan.UI.Components
|
|
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<div class="row">
|
|
<div class="col-3">
|
|
<h3>Licenze</h3>
|
|
</div>
|
|
<div class="col-9">
|
|
<div class="d-flex flex-row-reverse justify-content-between">
|
|
@if (UserCanEdit)
|
|
{
|
|
<div class="p-2">
|
|
<button class="btn btn-sm btn-success" @onclick="() => AddNew()" title="Nuovo record">
|
|
<i class="fas fa-plus"></i>
|
|
</button>
|
|
</div>
|
|
}
|
|
<div class="p-2">
|
|
<div class="input-group input-group-sm">
|
|
<span class="input-group-text">
|
|
Installazione
|
|
</span>
|
|
<select @bind="@SelInst" class="form-select">
|
|
<option value="">--- Tutti ---</option>
|
|
@if (ListInstall != null)
|
|
{
|
|
foreach (var item in ListInstall)
|
|
{
|
|
<option value="@item.CodInst">@item.CodInst | @item.Descrizione</option>
|
|
}
|
|
}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="p-2">
|
|
<div class="input-group input-group-sm">
|
|
<span class="input-group-text">
|
|
Applicazione
|
|
</span>
|
|
<select @bind="@SelApp" class="form-select">
|
|
<option value="">--- Tutti ---</option>
|
|
@if (ListApp != null)
|
|
{
|
|
foreach (var item in ListApp)
|
|
{
|
|
<option value="@item.CodApp">@item.CodApp | @item.Descrizione</option>
|
|
}
|
|
}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="p-2">
|
|
<div class="input-group input-group-sm">
|
|
<span class="input-group-text">
|
|
Tipo
|
|
</span>
|
|
<select @bind="@AppTipoSel" class="form-select form-select-sm">
|
|
@if (ListAppType != null)
|
|
{
|
|
foreach (var item in ListAppType)
|
|
{
|
|
<option value="@item.Key">@item.Value</option>
|
|
}
|
|
}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="p-2">
|
|
<div class="input-group input-group-sm">
|
|
<div class="form-check form-switch">
|
|
<input type="checkbox" class="form-check-input" id="togAttivi" title="Solo Attivi / Mostra tutti" @bind-value="@OnlyActive" checked="@OnlyActive" />
|
|
<label class="form-check-label small" for="togAttivi"><sub>solo attivi</sub></label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-body">
|
|
@if (currRecord != null && !(showActivations || showTickets))
|
|
{
|
|
<EditLicenze currItem="@currRecord" DataReset="ResetData" DataUpdated="UpdateActivData"></EditLicenze>
|
|
}
|
|
@if (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 pr-0">
|
|
<table class="table table-sm table-striped table-responsive-lg">
|
|
<thead>
|
|
<tr>
|
|
@if (UserCanEdit)
|
|
{
|
|
<th></th>
|
|
}
|
|
<th>Applicativo</th>
|
|
<th>Installazione</th>
|
|
<th>Scadenza</th>
|
|
<th>Descrizione</th>
|
|
@if (!showActivations)
|
|
{
|
|
<th>Tickets</th>
|
|
}
|
|
|
|
@if (!showTickets)
|
|
{
|
|
<th class="text-end">Attivazioni / Licenze</th>
|
|
}
|
|
@if (!(showActivations || showTickets))
|
|
{
|
|
<th class="text-end">Codice Licenza</th>
|
|
<th class="text-end">Payload</th>
|
|
<th class="text-end">Enigma</th>
|
|
<th class="text-end">Data Enigma</th>
|
|
<th class="text-end"><i class="fas fa-user-lock"></i></th>
|
|
}
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var record in ListRecords)
|
|
{
|
|
<tr class="@checkSelect(record.IdxLic)">
|
|
@if (UserCanEdit)
|
|
{
|
|
<td class="text-nowrap">
|
|
@if (currRecord == null)
|
|
{
|
|
<button class="btn btn-sm btn-info" @onclick="() => Edit(record)" title="Edit record">
|
|
<i class="oi oi-pencil"></i>
|
|
</button>
|
|
}
|
|
else
|
|
{
|
|
<button class="btn btn-sm btn-secondary disabled">
|
|
<i class="oi oi-pencil"></i>
|
|
</button>
|
|
}
|
|
</td>
|
|
}
|
|
<td>
|
|
<b>@record.CodApp</b>
|
|
</td>
|
|
<td>
|
|
<b class="text-secondary">@record.CodInst</b>
|
|
</td>
|
|
<td>
|
|
<span class="@cssScadenza(record.Scadenza)">@($"{record.Scadenza:yyyy.MM.dd}")</span>
|
|
</td>
|
|
<td>
|
|
<span>@record.Descrizione</span>
|
|
</td>
|
|
@if (!showActivations)
|
|
{
|
|
<td title="Tickets">
|
|
<div class="input-group input-group-sm">
|
|
<button class="btn btn-sm btn-success" @onclick="() => Select(record, detailType.tickets)" title="Elenco Tickets">
|
|
<i class="oi oi-magnifying-glass"></i>
|
|
</button>
|
|
<span class="form-control bg-secondary bg-opacity-10" disabled>@record.Tickets.Count</span>
|
|
</div>
|
|
</td>
|
|
}
|
|
@if (!showTickets)
|
|
{
|
|
<td class="text-end" title="Attivazioni / Num Licenze">
|
|
<div class="input-group input-group-sm">
|
|
<button class="btn btn-sm btn-info" @onclick="() => Select(record, detailType.attivazioni)" title="Dettaglio Attivazioni">
|
|
<i class="oi oi-magnifying-glass"></i>
|
|
</button>
|
|
<span class="form-control bg-secondary bg-opacity-10" disabled>@record.Attivazioni.Count / @record.NumLicenze</span>
|
|
</div>
|
|
</td>
|
|
}
|
|
@if (!(showActivations || showTickets))
|
|
{
|
|
<td class="text-end" title="@record.Chiave">
|
|
<CopyToClipboard Text="@record.Chiave" ShowText="false" />
|
|
</td>
|
|
<td class="text-end">
|
|
<CopyToClipboard Text="@record.Payload" ShowText="false" />
|
|
</td>
|
|
<td class="text-end">
|
|
<CopyToClipboard Text="@record.Enigma" ShowText="false" />
|
|
</td>
|
|
<td class="text-end">
|
|
<span>@($"{record.DataEnigma:yyyy.MM.dd}")</span>
|
|
</td>
|
|
<td class="text-end">
|
|
@if (record.Locked)
|
|
{
|
|
<span aria-hidden="true" title="Licenza Bloccata"><i class="fas fa-lock text-danger"></i></span>
|
|
}
|
|
else
|
|
{
|
|
<span aria-hidden="true" title="Licenza Libera"><i class="fas fa-unlock-alt text-success"></i></span>
|
|
}
|
|
</td>
|
|
}
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
@if (showActivations)
|
|
{
|
|
<div class="col small table-info p-1">
|
|
<Activations MasterLicence="@currRecord" DataReset="ResetData" DataUpdated="UpdateActivData" CanEdit="@UserCanEdit"></Activations>
|
|
</div>
|
|
}
|
|
else if (showTickets)
|
|
{
|
|
<div class="col small table-info p-1">
|
|
<TicketsHP MasterLicence="@currRecord" DataReset="ResetData" DataUpdated="UpdateTicketData"></TicketsHP>
|
|
</div>
|
|
}
|
|
</div>
|
|
}
|
|
</div>
|
|
<div class="card-footer">
|
|
@if (totalCount > numRecord)
|
|
{
|
|
<DataPager PageSize="numRecord" currPage="currPage" numRecordChanged="SetNumRec" numPageChanged="SetNumPage" totalCount="totalCount" showLoading="isLoading" />
|
|
}
|
|
</div>
|
|
</div> |