Togli il + dalla barra e porta le azioni nella testata
Il "+" stava incastrato a destra nella barra di navigazione, che per il resto contiene destinazioni. Cambiava significato da una schermata all'altra senza mai dichiararlo, e su Ispezioni apriva un menu per far scegliere fra una cosa sola. Il documento di stile esclude esplicitamente il FAB di serie, e la barra torna a contenere solo le due destinazioni. Su Ispezioni l'azione e' un bottone con il suo nome nella testata, e porta dritta alla scelta del punto vendita senza passaggi intermedi. Lo stato vuoto offre lo stesso comando invece di spiegare dove trovarlo. Su Ispezione le azioni sono tre e con pesi diversi: restano in un bottom sheet, aperto dalla testata. Eliminare un'ispezione ora chiede conferma — prima un tocco cancellava ispezione e schede senza appello. Le azioni vivono nella pagina che le esegue, quindi i messaggi che le rimbalzavano dalla barra (NewSchedaService, CompleteInspectionService) non hanno piu' mittente e se ne vanno. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,8 +5,21 @@
|
||||
@using SteUp.Shared.Core.Entities
|
||||
@using SteUp.Shared.Core.Interface.LocalDb
|
||||
@inject IIspezioniService IspezioniService
|
||||
@inject IDialogService Dialog
|
||||
|
||||
<HeaderLayout Title="Ispezioni" Subtitle="@Subtitle"/>
|
||||
<HeaderLayout Title="Ispezioni" Subtitle="@Subtitle">
|
||||
<Actions>
|
||||
@* L'unica azione della schermata: porta dritta alla scelta del punto
|
||||
vendita. Un passaggio intermedio per scegliere fra una cosa sola non
|
||||
e' una scelta, e' un tocco in piu'. *@
|
||||
<button type="button" class="appbar__action" @onclick="NewInspection"
|
||||
disabled="@(!NetworkService.IsNetworkAvailable())"
|
||||
title="@(NetworkService.IsNetworkAvailable() ? null : "Serve la connessione per aprire una nuova ispezione")">
|
||||
<i class="ri-add-line" aria-hidden="true"></i>
|
||||
<span>Nuova</span>
|
||||
</button>
|
||||
</Actions>
|
||||
</HeaderLayout>
|
||||
|
||||
<div class="app-scroll">
|
||||
<div class="page-width page-body">
|
||||
@@ -32,8 +45,16 @@
|
||||
<i class="empty-state__icon ri-clipboard-line" aria-hidden="true"></i>
|
||||
<p class="empty-state__title">Nessuna ispezione</p>
|
||||
<p class="empty-state__text">
|
||||
Tocca <b>+</b> nella barra in basso per aprire la prima ispezione su un punto vendita.
|
||||
Apri la prima ispezione scegliendo il punto vendita da controllare.
|
||||
</p>
|
||||
<div class="empty-state__action">
|
||||
<MudButton Variant="Variant.Filled" Color="Color.Primary"
|
||||
StartIcon="@Icons.Material.Rounded.Add"
|
||||
Disabled="@(!NetworkService.IsNetworkAvailable())"
|
||||
OnClick="NewInspection">
|
||||
Nuova ispezione
|
||||
</MudButton>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
@@ -65,6 +86,22 @@
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private async Task NewInspection()
|
||||
{
|
||||
if (await SteupDataService.CanOpenNewInspection())
|
||||
{
|
||||
var modal = await Dialog.OpenSelectShop();
|
||||
// La scelta del punto vendita naviga da sola sull'ispezione; se
|
||||
// l'utente torna indietro, la lista dev'essere quella aggiornata.
|
||||
if (modal is { Canceled: true }) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
await Dialog.ShowWarning(
|
||||
"Per aprire una nuova ispezione devi prima concludere tutte le ispezioni aperte da piu' di 20 giorni.");
|
||||
}
|
||||
}
|
||||
|
||||
private void OnClickIspezione(Ispezione ispezione)
|
||||
{
|
||||
SteupDataService.InspectionPageState.Ispezione = ispezione;
|
||||
|
||||
Reference in New Issue
Block a user