126 lines
4.8 KiB
Plaintext
126 lines
4.8 KiB
Plaintext
@if (Attivita is not null)
|
|
{
|
|
<article class="@CardClass"
|
|
draggable="@(IsDraggable ? "true" : "false")"
|
|
@ondragstart="@(() => OnDragStart.InvokeAsync(Attivita))"
|
|
@ondragover:preventDefault
|
|
@ondrop="@(() => OnDrop.InvokeAsync(Attivita))">
|
|
|
|
<span class="accent-bar"></span>
|
|
|
|
<div class="card-body">
|
|
|
|
<header class="card-top">
|
|
<span class="@($"priorita-pill {PrioritaClass}")">
|
|
<MudIcon Icon="@PrioritaIcon" Size="Size.Small" />
|
|
<span>@Attivita.Priorita.ToString().ToUpper()</span>
|
|
</span>
|
|
|
|
@if (Attivita.IsLocked)
|
|
{
|
|
<MudIcon Icon="@Icons.Material.Filled.Lock" Size="Size.Small"
|
|
Class="handle-icon lock-icon" Title="Emergenza: non riordinabile" />
|
|
}
|
|
else
|
|
{
|
|
<MudIcon Icon="@Icons.Material.Filled.DragIndicator" Size="Size.Small"
|
|
Class="handle-icon drag-icon" Title="Trascina per riordinare" />
|
|
}
|
|
</header>
|
|
|
|
<h3 class="card-store">
|
|
<MudIcon Icon="@Icons.Material.Outlined.Store" Size="Size.Small" />
|
|
<span>@Attivita.PuntoVendita</span>
|
|
</h3>
|
|
|
|
<nav class="card-breadcrumb">
|
|
<span>@Attivita.Categoria</span>
|
|
<MudIcon Icon="@Icons.Material.Filled.ChevronRight" Size="Size.Small" />
|
|
<span>@Attivita.Sottocategoria</span>
|
|
<MudIcon Icon="@Icons.Material.Filled.ChevronRight" Size="Size.Small" />
|
|
<span>@Attivita.Reparto</span>
|
|
</nav>
|
|
|
|
<div class="card-location">
|
|
<MudIcon Icon="@Icons.Material.Outlined.LocationOn" Size="Size.Small" />
|
|
<span>@Attivita.Luogo</span>
|
|
</div>
|
|
|
|
<p class="card-desc">@Attivita.Descrizione</p>
|
|
|
|
@if (Attivita.Allegati.Count > 0)
|
|
{
|
|
<span class="card-allegati-pill">
|
|
<MudIcon Icon="@Icons.Material.Outlined.AttachFile" Size="Size.Small" />
|
|
<span>@Attivita.Allegati.Count allegat@(Attivita.Allegati.Count == 1 ? "o" : "i")</span>
|
|
</span>
|
|
}
|
|
</div>
|
|
|
|
<footer class="card-actions">
|
|
@if (Attivita.Allegati.Count > 0)
|
|
{
|
|
<button type="button" class="btn-card btn-card-ghost"
|
|
@onclick="@(() => OnVisualizzaAllegati.InvokeAsync(Attivita))">
|
|
<MudIcon Icon="@Icons.Material.Outlined.FolderOpen" Size="Size.Small" />
|
|
<span>Allegati</span>
|
|
</button>
|
|
}
|
|
@if (Attivita.Stato == StatoAttivita.Aperta)
|
|
{
|
|
<button type="button" class="btn-card btn-card-primary"
|
|
@onclick="@(() => OnChiudi.InvokeAsync(Attivita))">
|
|
<MudIcon Icon="@Icons.Material.Filled.CheckCircle" Size="Size.Small" />
|
|
<span>Chiudi Attività</span>
|
|
</button>
|
|
}
|
|
else
|
|
{
|
|
<span class="@($"stato-pill {StatoClass}")">
|
|
<MudIcon Icon="@StatoIcon" Size="Size.Small" />
|
|
<span>@Attivita.Stato</span>
|
|
</span>
|
|
}
|
|
</footer>
|
|
</article>
|
|
}
|
|
|
|
@code {
|
|
[Parameter, EditorRequired] public AttivitaItem? Attivita { get; set; }
|
|
[Parameter] public EventCallback<AttivitaItem> OnChiudi { get; set; }
|
|
[Parameter] public EventCallback<AttivitaItem> OnVisualizzaAllegati { get; set; }
|
|
[Parameter] public EventCallback<AttivitaItem> OnDragStart { get; set; }
|
|
[Parameter] public EventCallback<AttivitaItem> OnDrop { get; set; }
|
|
|
|
bool IsDraggable => Attivita?.Priorita == PrioritaAttivita.Normale && Attivita.Stato == StatoAttivita.Aperta;
|
|
|
|
string CardClass => $"attivita-card {PrioritaClass}{(Attivita?.Stato != StatoAttivita.Aperta ? " card-chiusa" : "")}";
|
|
|
|
string PrioritaClass => Attivita?.Priorita switch
|
|
{
|
|
PrioritaAttivita.Emergenza => "priorita-emergenza",
|
|
PrioritaAttivita.Alta => "priorita-alta",
|
|
_ => "priorita-normale"
|
|
};
|
|
|
|
string PrioritaIcon => Attivita?.Priorita switch
|
|
{
|
|
PrioritaAttivita.Emergenza => Icons.Material.Filled.Warning,
|
|
PrioritaAttivita.Alta => Icons.Material.Filled.ErrorOutline,
|
|
_ => Icons.Material.Filled.CheckCircleOutline
|
|
};
|
|
|
|
string StatoClass => Attivita?.Stato switch
|
|
{
|
|
StatoAttivita.Chiusa => "stato-chiusa",
|
|
StatoAttivita.Rimandata => "stato-rimandata",
|
|
_ => "stato-aperta"
|
|
};
|
|
|
|
string StatoIcon => Attivita?.Stato switch
|
|
{
|
|
StatoAttivita.Chiusa => Icons.Material.Filled.CheckCircleOutline,
|
|
_ => Icons.Material.Filled.Schedule
|
|
};
|
|
}
|