- FIx Yaml
- Approvazione in massa
- fix bs-5 vari
- aggiunta componenti da lib Razor EGW
This commit is contained in:
Samuele Locatelli
2024-10-21 16:01:21 +02:00
parent 9613a7f2a1
commit be16c2ec56
11 changed files with 88 additions and 354 deletions
+2 -2
View File
@@ -52,8 +52,8 @@ variables:
if (($env:DEST -ne 'install')) {
$srcFile="$env:APP_NAME/appsettings.Production-office.json"
}
echo "Copy-Item -Path $srcFile -Destination $dstFile"
Copy-Item -Path $srcFile -Destination $dstFile
echo "Copy-Item -Path $srcFile -Destination $dstFile -force"
Copy-Item -Path $srcFile -Destination $dstFile -force
echo "Completata copia file appsettings.json corretto"
# helper creazione hash files x IIS
+1 -1
View File
@@ -2,7 +2,7 @@
<div class="col-5 pr-0 text-left">
MP.Prog <span class="small">v.@version</span>
</div>
<div class="col-7 pl-0 text-right">
<div class="col-7 ps-0 text-end">
<span class="small">@adesso</span>
<a class="text-light" href="https://www.egalware.com/" target="_blank">Egalware<img class="img-fluid" width="16" src="img/LogoBlu.svg" /></a>
</div>
-56
View File
@@ -1,56 +0,0 @@
<div class="row">
<div class="col-12 col-lg-9 text-left">
<div class="row">
<div class="col-12 small">
@if (totalCount > 0)
{
<ul class="pagination pagination-sm mb-1">
<li class="page-item"><button class="page-link" @onclick="() => PaginationItemClick(1)"><i class="fas fa-angle-double-left"></i></button></li>
<li class="page-item"><button class="page-link" @onclick="() => PaginationItemClick(prevBlock)"><i class="fas fa-angle-left"></i></button></li>
@for (int i = @startPage; i <= endPage; ++i)
{
var pageNum = i;
<li class="page-item @cssActive(pageNum)"><button class="page-link" @onclick="() => PaginationItemClick(pageNum)">@pageNum</button></li>
}
<li class="page-item"><button class="page-link" @onclick="() => PaginationItemClick(nextBlock)"><i class="fas fa-angle-right"></i></button></li>
<li class="page-item"><button class="page-link" @onclick="() => PaginationItemClick(LastPage)"><i class="fas fa-angle-double-right"></i></button></li>
</ul>
}
</div>
</div>
<div class="row">
<div class="col-12 small">
@if (showLoading)
{
<div class="progress" style="height: 10px;">
<div class="progress-bar progress-bar-striped progress-bar-animated" style="width:@percLoading%;"></div>
</div>
}
</div>
</div>
</div>
<div class="col-12 col-lg-3">
<div class="d-flex">
<div class="p-1 flex-fill text-right">
@if (!showLoading)
{
<span>@totalCount records</span>
}
</div>
<div class="p-1 flex-fill text-right small">
@if (totalCount > 0)
{
<div class="input-group input-group-sm">
<select @bind="@PageSize" class="form-control form-control-sm">
<option value="5">5</option>
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
</div>
}
</div>
</div>
</div>
</div>
-189
View File
@@ -1,189 +0,0 @@
using Microsoft.AspNetCore.Components;
using System;
using System.Threading.Tasks;
namespace MP.Prog.Components
{
public partial class DataPager : ComponentBase
{
#region Protected Fields
protected bool _showLoading = false;
#endregion Protected Fields
#region Private Properties
private int endPage
{
get
{
int answ = (int)(currPage / numPages) * numPages + numPages;
answ = answ < LastPage ? answ : LastPage;
return answ;
}
}
private int LastPage
{
get
{
return Math.Max((int)Math.Ceiling(totalCount / (double)PageSize), 1);
}
}
private int nextBlock
{
get
{
int answ = currPage + numPages;
answ = answ < LastPage ? answ : LastPage;
return answ;
}
}
private int numPages { get; set; } = 10;
private int prevBlock
{
get
{
int answ = currPage - numPages;
answ = answ > 0 ? answ : 1;
return answ;
}
}
// calcola un set 1 .. numPages centrato sulla pagina corrente...
private int startPage
{
get
{
int answ = (int)(currPage / numPages) * numPages;
answ = answ > 0 ? answ : 1;
return answ;
}
}
#endregion Private Properties
#region Protected Properties
protected int _numPage { get; set; } = 1;
protected int _numRecord { get; set; } = 10;
protected int percLoading { get; set; } = 0;
#endregion Protected Properties
#region Public Properties
[Parameter]
public int currPage
{
get
{
return _numPage;
}
set
{
bool doReport = !_numPage.Equals(value);
if (doReport)
{
_numPage = value;
reportChangePage();
}
}
}
[Parameter]
public EventCallback<int> numPageChanged { get; set; }
[Parameter]
public EventCallback<int> numRecordChanged { get; set; }
[Parameter]
public int PageSize
{
get
{
return _numRecord;
}
set
{
bool doReport = !_numRecord.Equals(value);
if (doReport)
{
_numRecord = value;
reportChange();
}
}
}
[Parameter]
public bool showLoading
{
get
{
return _showLoading;
}
set
{
if (value)
{
Random random = new Random();
percLoading = random.Next(30, 90);
}
else
{
percLoading = 5;
}
_showLoading = value;
}
}
[Parameter]
public int totalCount { get; set; } = 0;
#endregion Public Properties
#region Private Methods
private void reportChange()
{
numRecordChanged.InvokeAsync(PageSize);
}
private void reportChangePage()
{
numPageChanged.InvokeAsync(currPage);
}
#endregion Private Methods
#region Protected Methods
protected string cssActive(int numPage)
{
string answ = "";
if (numPage == currPage)
{
answ = "active";
}
return answ;
}
protected override async Task OnInitializedAsync()
{
await Task.Run(() => showLoading = false);
}
protected void PaginationItemClick(int page)
{
currPage = page;
}
#endregion Protected Methods
}
}
+3 -3
View File
@@ -10,8 +10,8 @@
</div>
<div class="col-4">
</div>
<div class="col-4 text-right">
<input @bind="@pHeight" class="text-right" width="20" inputmode="numeric" /> <i class="fas fa-arrows-alt-v"></i>
<div class="col-4 text-end">
<input @bind="@pHeight" class="text-end" width="20" inputmode="numeric" /> <i class="fas fa-arrows-alt-v"></i>
</div>
</div>
</div>
@@ -22,7 +22,7 @@
</div>
<div class="col-4">
</div>
<div class="col-4 text-right p-2">
<div class="col-4 text-end p-2">
<span class="border border-danger table-danger py-1 px-2"><b>@numChanges</b> modifiche</span>
</div>
</div>
+1 -1
View File
@@ -32,7 +32,7 @@
</div>
<div class="col-2">
</div>
<div class="col-2 text-right">
<div class="col-2 text-end">
<button type="button" class="btn btn-light btn-lg w-100" value="Cancel" @onclick="cancelUpdate" title="Chiudi">Chiudi <i class="fas fa-window-close"></i></button>
</div>
</div>
+36 -53
View File
@@ -2,38 +2,25 @@
@using MP.Prog.Components
<div class="card">
<div class="card shadow">
<div class="card-header table-primary">
<div class="d-flex justify-content-between">
<div class="px-2">
<div class="d-flex">
<div class="px-2">
<h3>Elenco Programmi</h3>
</div>
<div class="px-2">
<div class="form-group mb-0">
<button id="btnForceCheck" class="btn btn-warning btn-sm" @onclick="() => ForceCheck(30)" title="Analisi Modifiche ultimi 30gg">
<i class="fas fa-sync-alt"></i> Update (30gg) <i class="far fa-folder-open"></i>
</button>
</div>
</div>
<div class="px-0">
<h4>Elenco Programmi</h4>
<div class="form-group mb-0">
<button id="btnForceCheck" class="btn btn-warning btn-sm" @onclick="() => ForceCheck(30)" title="Analisi Modifiche ultimi 30gg">
<i class="fas fa-sync-alt"></i> Update (30gg) <i class="far fa-folder-open"></i>
</button>
</div>
</div>
<div class="px-2 text-end">
<div class="px-0 text-end">
<div class="d-flex flex-row-reverse">
<div class="px-2">
<div class="form-group mb-0">
<button id="btnReset" class="btn btn-info btn-sm" @onclick="() => ResetFilter()" title="Reset Filter"><span class="oi oi-loop-circular"></span></button>
</div>
</div>
<div class="px-2">
<div class="px-0">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<span class="fas fa-industry" aria-hidden="true"></span>
</span>
</div>
<select @bind="@SelIdxMacc" class="form-control form-control-sm">
<span class="input-group-text">
<span class="fas fa-industry" aria-hidden="true"></span>
</span>
<select @bind="@SelIdxMacc" class="form-select form-select-sm">
@if (MacList != null)
{
foreach (var item in MacList)
@@ -42,41 +29,37 @@
}
}
</select>
<button id="btnReset" class="btn btn-info btn-sm" @onclick="() => ResetFilter()" title="Reset Filter"><span class="oi oi-loop-circular"></span></button>
</div>
</div>
<div class="px-2">
<div class="input-group input-group-sm">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="togModificati" title="Solo Aperti / Mostra tutti" @bind-value="@OnlyMod" checked="@OnlyMod" />
<label class="custom-control-label" for="togModificati"><sub>Mod</sub></label>
</div>
<div class="px-1">
<div class="form-check form-switch small">
<input class="form-check-input" type="checkbox" role="switch" title="Solo Aperti / Mostra tutti" @bind-value="@OnlyMod" checked="@OnlyMod">
<label class="form-check-label">Mod</label>
</div>
</div>
<div class="px-2">
<div class="input-group input-group-sm">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="togAttivi" title="Solo Attivi / Mostra tutti" @bind-value="@OnlyActive" checked="@OnlyActive" />
<label class="custom-control-label" for="togAttivi"><sub>Attivi</sub></label>
</div>
<div class="px-1">
<div class="form-check form-switch small">
<input class="form-check-input" type="checkbox" role="switch" title="Solo Attivi / Mostra tutti" @bind-value="@OnlyActive" checked="@OnlyActive">
<label class="form-check-label">Attivi</label>
</div>
</div>
<div class="px-2">
<div class="input-group input-group-sm">
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="togNoTag" title="Solo senza Tag / Mostra tutti" @bind-value="@OnlyNoTag" checked="@OnlyNoTag" />
<label class="custom-control-label" for="togNoTag"><sub>No Tag</sub></label>
</div>
<div class="px-1">
<div class="form-check form-switch small">
<input class="form-check-input" type="checkbox" role="switch" title="Solo Senza Tag / Mostra tutti" @bind-value="@OnlyNoTag" checked="@OnlyNoTag">
<label class="form-check-label">No Tag</label>
</div>
</div>
</div>
<div class="d-flex">
<div class="px-2 text-truncate">
<div class="d-flex mt-1">
<div class="px-0 text-truncate">
@if (!string.IsNullOrEmpty(SelFileName))
{
<span class="badge badge-secondary" title="@SelFileName">@TextReduce(SelFileName, 20)</span>
}
</div>
<div class="px-2 w-100">
<div class="px-0 w-100">
<div class="input-group input-group-sm">
<span class="input-group-text">Tags</span>
<button type="button" class="btn btn-sm btn-primary" @onclick="() => OpenDialog()" title="Aggiunta Tag">
@@ -134,7 +117,7 @@
<th class="text-center">State</th>
<th>Macchina</th>
<th>Tags</th>
<th class="text-right">Modificato</th>
<th class="text-end">Modificato</th>
@*<th>Controllo</th>*@
<th></th>
</tr>
@@ -182,15 +165,15 @@
<div>@record.Macchina.Nome</div>
<div class="small">@record.Macchina.Descrizione</div>
</td>
<td>
<td style="max-width: 20rem;">
@foreach (var item in record.Tags)
{
<button class="btn btn-sm btn-outline-info px-1 py-0 mr-1" @onclick="() => FilterTag(item.TagId)" title="Filtra Tag">
<button class="btn btn-sm btn-outline-info px-1 py-0 me-1" @onclick="() => FilterTag(item.TagId)" title="Filtra Tag">
<div class="small">@item.TagId</div>
</button>
}
</td>
<td class="text-right">
<td class="text-end">
<div>@record.LastMod.ToString("yyyy.MM.dd")</div>
<div class="small">@record.LastMod.ToString("ddd HH:mm.ss")</div>
</td>
@@ -202,7 +185,7 @@
</div>
}
</div>
<div class="card-footer p-1">
<DataPager PageSize="numRecord" currPage="currPage" numRecordChanged="PagerReloadNum" numPageChanged="PagerReloadPage" totalCount="totalCount" showLoading="isLoading" />
<div class="card-footer py-0 px-1">
<EgwCoreLib.Razor.DataPager PageSize="numRecord" currPage="currPage" numRecordChanged="PagerReloadNum" numPageChanged="PagerReloadPage" totalCount="totalCount" showLoading="isLoading"></EgwCoreLib.Razor.DataPager>
</div>
</div>
+42 -46
View File
@@ -4,57 +4,53 @@
@using MP.Prog.Data
@inject MessageService AppMService
<div class="alert alert-secondary">
<div class="alert alert-secondary shadow">
<div class="d-flex justify-content-between">
<div class="px-1">
<h1>MAPO Prog</h1>
<div>
Gestione archivio programmi macchina per MES 4.0
</div>
</div>
<div class="px-2 text-end">
<div class="text-light h1 d-none d-md-block">
<span class="fas fa-home" aria-hidden="true"></span> | <span class="fas fa-folder" aria-hidden="true"></span> | <span class="fas fa-wrench" aria-hidden="true"></span>
</div>
<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/LogoBlu.svg" /></a>
</div>
</div>
</div>
</div>
</div>
<div class="card shadow">
<div class="card-body">
<div class="row">
<div class="col-12 col-lg-4">
<h1>MAPO Prog</h1>
<div>
Gestione archivio programmi macchina per MES 4.0
</div>
</div>
<div class="col-12 col-lg-8 text-right">
<div class="text-light h1 d-none d-md-block">
<span class="fas fa-home" aria-hidden="true"></span> | <span class="fas fa-folder" aria-hidden="true"></span> | <span class="fas fa-wrench" aria-hidden="true"></span>
<div class="col-12 text-center">
<div class="row">
<div class="col-4"></div>
<div class="col-4">
<i class="fas fa-code-branch fa-5x"></i>
</div>
<div class="col-4"></div>
</div>
<h4>
Sistema di gestione ed archiviazione storica dei programmi macchina CNC.
</h4>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12 text-center">
<div class="row">
<div class="col-4"></div>
<div class="col-4">
<i class="fas fa-code-branch fa-5x"></i>
</div>
<div class="col-4"></div>
</div>
<h4>
Sistema di gestione ed archiviazione storica dei programmi macchina CNC.
</h4>
</div>
<div class="col-12 text-center mt-5">
<div class="col-4"></div>
<div class="col-4"></div>
<div class="col-4 badge badge-pill badge-dark">
<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/LogoBlu.svg" /></a>
</div>
</div>
</div>
</div>
</div>
</div>
@code
@code
{
protected override void OnInitialized()
{
AppMService.ShowSearch = false;
AppMService.PageName = "Home";
AppMService.PageIcon = "fas fa-home pr-2";
}
}
protected override void OnInitialized()
{
AppMService.ShowSearch = false;
AppMService.PageName = "Home";
AppMService.PageIcon = "fas fa-home pr-2";
}
}
+1 -1
View File
@@ -6,7 +6,7 @@
@inject MessageService AppMService
<div class="card">
<div class="card shadow">
<div class="card-header">
<h4>Setup</h4>
</div>
+1 -1
View File
@@ -13,7 +13,7 @@
</div>
<CascadingValue Name="ShowSearch" Value=@ShowSearch>
<div class="main mr-1">
<div class="main me-1">
<div class="top-row">
<CmpTop></CmpTop>
</div>
+1 -1
View File
@@ -1,4 +1,4 @@
<div class="top-row pl-4 navbar navbar-dark">
<div class="top-row ps-4 navbar navbar-dark">
<a class="navbar-brand" href="">MP.Prog</a>
<button class="navbar-toggler" @onclick="ToggleNavMenu">
<span class="navbar-toggler-icon"></span>