Aggiunta prima vers display QRCode GEN x ADM
This commit is contained in:
@@ -57,6 +57,8 @@
|
||||
<script src="lib/luxon/luxon.js"></script>
|
||||
<script src="lib/chartjs-adapter-luxon/chartjs-adapter-luxon.js"></script>
|
||||
<script src="lib/chartBoot.js"></script>
|
||||
<script type="text/javascript" src="lib/qrcode.js"></script>
|
||||
<script type="text/javascript" src="lib/qrHelper.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
@@ -18,7 +18,12 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-0 d-flex">
|
||||
elenco switch QRCode
|
||||
<span class="input-group-text px-2">
|
||||
<span class="form-check form-switch align-content-center ms-2" title="Mostra QRCode">
|
||||
<input class="form-check-input" type="checkbox" @bind=@ShowQrCode>
|
||||
<label class="form-check-label">QRCode dipendenti</label>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -30,80 +35,105 @@
|
||||
}
|
||||
else if (totalCount == 0)
|
||||
{
|
||||
|
||||
<div class="alert alert-info">Nessun record trovato</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="row">
|
||||
<div class="@mainDivCss">
|
||||
<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)"><i class="fa-solid fa-search"></i></button>
|
||||
@if (SelItem == null)
|
||||
{
|
||||
<button class="btn btn-primary btn-sm mx-1" @onclick="() => DoEdit(item)">
|
||||
<i class="fa-solid fa-edit"></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 ListDipendenti)
|
||||
{
|
||||
<option value="@dip.IdxDipendente">@($"{dip.Cognome} {dip.Nome}")</option>
|
||||
}
|
||||
</select>
|
||||
|
||||
</td>
|
||||
|
||||
@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"></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)"><i class="fa-solid fa-search"></i></button>
|
||||
@if (SelItem == null)
|
||||
{
|
||||
<button class="btn btn-primary btn-sm mx-1" @onclick="() => DoEdit(item)">
|
||||
<i class="fa-solid fa-edit"></i>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<button class="btn btn-secondary btn-sm mx-1" disabled><i class="fa-solid fa-edit"></i></button>
|
||||
}
|
||||
</td>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<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>
|
||||
|
||||
@@ -91,6 +91,7 @@ namespace GPW.CORE.ADM.Components.Compo
|
||||
private DipendentiModel? SelItem = null;
|
||||
private bool ShowInatt = false;
|
||||
|
||||
private bool ShowQrCode = false;
|
||||
private bool sortAsc = true;
|
||||
private string sortField = "";
|
||||
|
||||
@@ -101,15 +102,17 @@ namespace GPW.CORE.ADM.Components.Compo
|
||||
private List<DipendentiModel>? ListDipendenti { get; set; } = null;
|
||||
private List<DipendentiModel>? ListRecords { get; set; } = null;
|
||||
|
||||
private string mainDivCss
|
||||
{
|
||||
get => SelRecord == null ? "col-12" : "col-12 col-lg-9";
|
||||
}
|
||||
|
||||
private List<DipendentiModel>? SearchRecords { get; set; } = null;
|
||||
private DipendentiModel? SelRecord { get; set; } = null;
|
||||
private int totalCount { get; set; } = 0;
|
||||
|
||||
private bool ShowLinkInt = true;
|
||||
|
||||
protected List<DipendentiModel> ListDipendentiOrd
|
||||
{
|
||||
get => ListDipendenti != null ? ListDipendenti.OrderBy(x => x.Cognome).ThenBy(x => x.Nome).ToList() : new List<DipendentiModel>();
|
||||
}
|
||||
|
||||
#endregion Private Properties
|
||||
|
||||
#region Private Methods
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<h3>UserQrCode</h3>
|
||||
<div class="card-body text-center">
|
||||
<div class="img-fluid" id="qrCodeImg_@idxDipendente"></div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
|
||||
}
|
||||
|
||||
@@ -24,6 +24,12 @@ namespace GPW.CORE.ADM.Components.Compo
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected int idxDipendente
|
||||
{
|
||||
get => RecordDip != null ? RecordDip.IdxDipendente : 0;
|
||||
}
|
||||
|
||||
|
||||
protected string getUrlCode(string baseUrl, string authKey)
|
||||
{
|
||||
return $"{baseUrl}jumper?idxDipendente={RecordDip.IdxDipendente}&authKey={authKey}";
|
||||
|
||||
@@ -83,9 +83,9 @@ namespace GPW.CORE.ADM.Components.Layout
|
||||
|
||||
#region Private Properties
|
||||
|
||||
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
|
||||
protected string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
|
||||
|
||||
private string? TextCss => onlyIcon ? "d-none" : "";
|
||||
protected string? TextCss => onlyIcon ? "d-none" : "";
|
||||
|
||||
#endregion Private Properties
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Version>4.1.2506.2314</Version>
|
||||
<Version>4.1.2506.2317</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -80,5 +80,9 @@
|
||||
"AdmApp": {
|
||||
"LinkMal": "https://office.egalware.com/GPW/CORE.ADM/malattia",
|
||||
"LinkRich": "https://office.egalware.com/GPW/CORE.ADM/richiesteDip"
|
||||
},
|
||||
"OptPar": {
|
||||
"UrlLinkInt": "https://office.egalware.com/GPW/CORE.SMART/",
|
||||
"UrlLinkExt": "https://seriate.egalware.com/GPW/CORE.SMART/"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,8 +11,12 @@ function displayQr(elementName, rawData) {
|
||||
qrcode = new QRCode(document.getElementById(elementName),
|
||||
{
|
||||
text: rawData,
|
||||
width: 200,
|
||||
height: 200
|
||||
width: 240,
|
||||
height: 240,
|
||||
correctLevel: QRCode.CorrectLevel.L
|
||||
//correctLevel: QRCode.CorrectLevel.M
|
||||
//correctLevel: QRCode.CorrectLevel.Q
|
||||
//correctLevel: QRCode.CorrectLevel.H
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>GPW - Gestione Presenze Web</i>
|
||||
<h4>Versione: 4.1.2506.2314</h4>
|
||||
<h4>Versione: 4.1.2506.2317</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
4.1.2506.2314
|
||||
4.1.2506.2317
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>4.1.2506.2314</version>
|
||||
<version>4.1.2506.2317</version>
|
||||
<url>http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip</url>
|
||||
<changelog>http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
Reference in New Issue
Block a user