Rivedi la scelta del punto vendita
La schermata era dichiarata a tutto schermo ma usciva dentro un riquadro con lo sfondo visibile ai lati: la misura da dialog di conferma si applicava anche ai dialog FullScreen, perche' nulla la escludeva. Ora le schermate a tutto schermo riempiono il display. Ogni punto vendita era un <div> con role="button": adesso e' un bottone vero, raggiungibile da tastiera e annunciato per quello che e', con il chevron che dice che porta altrove. L'indirizzo si ferma a due righe: serve a distinguere due negozi con lo stesso nome, non a essere letto per intero, e teneva l'elenco lungo da scorrere. I punti vendita su cui c'e' gia' un'ispezione aperta oggi lo dichiarano: quel tocco riapre l'ispezione esistente invece di crearne una nuova, ed e' meglio saperlo prima. (Il CSS della riga e' entrato nel commit precedente, adiacente a quello delle azioni di testata.) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
@using SteUp.Shared.Components.Layout
|
||||
@using SteUp.Shared.Components.SingleElements.Card
|
||||
@using SteUp.Shared.Core.Dto
|
||||
@using SteUp.Shared.Core.Enum
|
||||
@using SteUp.Shared.Core.Interface.LocalDb
|
||||
@inject IIspezioniService IspezioniService
|
||||
|
||||
@*
|
||||
Scelta del punto vendita: schermata intera, non un riquadro. L'elenco e'
|
||||
@@ -60,7 +63,9 @@
|
||||
{
|
||||
<div class="card-list">
|
||||
<Virtualize Items="FilteredList" Context="puntoVendita" OverscanCount="6">
|
||||
<ShopCard PuntoVendita="puntoVendita" OnStarting="@(() => _busy = true)"/>
|
||||
<ShopCard PuntoVendita="puntoVendita"
|
||||
Aperta="@HaIspezioneOggi(puntoVendita)"
|
||||
OnStarting="@(() => _busy = true)"/>
|
||||
</Virtualize>
|
||||
</div>
|
||||
}
|
||||
@@ -83,9 +88,30 @@
|
||||
? null
|
||||
: FilteredList.Count == 1 ? "1 punto vendita" : $"{FilteredList.Count} punti vendita";
|
||||
|
||||
// I codici su cui il rilevatore ha gia' un'ispezione aperta oggi. Si legge
|
||||
// una volta sola: toccare una di quelle righe riapre l'ispezione esistente
|
||||
// invece di crearne una nuova, e la riga deve poterlo dire.
|
||||
private HashSet<string> _aperteOggi = [];
|
||||
|
||||
private void Cancel() => MudDialog.Cancel();
|
||||
|
||||
protected override void OnInitialized() => ApplyFilters();
|
||||
private bool HaIspezioneOggi(PuntoVenditaDto pv) =>
|
||||
pv.CodMdep is not null && _aperteOggi.Contains(pv.CodMdep);
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
ApplyFilters();
|
||||
|
||||
var oggi = DateTime.Today;
|
||||
var ispezioni = await IspezioniService.GetAllIspezioni(UserSession.User.Username);
|
||||
|
||||
_aperteOggi = ispezioni
|
||||
.Where(x => x.Data.Date == oggi && x.Stato != StatusEnum.Completata && x.CodMdep is not null)
|
||||
.Select(x => x.CodMdep!)
|
||||
.ToHashSet(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private void OnFilterInput(ChangeEventArgs e)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user