change participants when creating a new day

This commit is contained in:
beo3000 2025-12-30 10:09:34 +01:00
parent e75ea84e66
commit 965ec24d33
1 changed files with 28 additions and 4 deletions

View File

@ -46,7 +46,8 @@
} }
else else
{ {
<MudChipSet T="Guid" SelectionMode="SelectionMode.MultiSelection" @bind-SelectedValues="_selectedPersonIds" Class="mb-4"> <MudChipSet T="Guid" SelectionMode="SelectionMode.MultiSelection" CheckMark="true" @bind-SelectedValues="_selectedPersonIds"
Class="mb-4">
@foreach (var person in PersonState.Value.Persons.OrderByDescending(p => p.PersonStatus == PersonStatus.Member).ThenBy(p => p.Name)) @foreach (var person in PersonState.Value.Persons.OrderByDescending(p => p.PersonStatus == PersonStatus.Member).ThenBy(p => p.Name))
{ {
<MudChip T="Guid" <MudChip T="Guid"
@ -64,11 +65,16 @@
</MudChipSet> </MudChipSet>
} }
} }
@if (!string.IsNullOrEmpty(_error))
{
<MudAlert Severity="Severity.Error">@_error</MudAlert>
}
</MudForm> </MudForm>
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<MudButton OnClick="Cancel">Abbrechen</MudButton> <MudButton OnClick="Cancel">Abbrechen</MudButton>
<MudButton Color="Color.Primary" Variant="Variant.Filled" Disabled="!_isValid" OnClick="Submit"> <MudButton Color="Color.Primary" Variant="Variant.Filled" OnClick="Submit">
@(IsEditMode ? "Speichern" : "Erstellen") @(IsEditMode ? "Speichern" : "Erstellen")
</MudButton> </MudButton>
</DialogActions> </DialogActions>
@ -82,7 +88,8 @@
public DaySummaryDto? Day { get; set; } public DaySummaryDto? Day { get; set; }
private MudForm? _form; private MudForm? _form;
private bool _isValid; private string _error = string.Empty;
private bool _isValid = true;
private DateTime? _postDate = DateTime.Today; private DateTime? _postDate = DateTime.Today;
private DayStatus _status = DayStatus.New; private DayStatus _status = DayStatus.New;
private IReadOnlyCollection<Guid> _selectedPersonIds = []; private IReadOnlyCollection<Guid> _selectedPersonIds = [];
@ -122,7 +129,10 @@
private void Submit() private void Submit()
{ {
if (!_isValid || _postDate is null) return; Validate();
if (!_isValid || _postDate is null)
return;
if (IsEditMode) if (IsEditMode)
{ {
@ -144,4 +154,18 @@
MudDialog?.Close(DialogResult.Ok(dto)); MudDialog?.Close(DialogResult.Ok(dto));
} }
} }
private void Validate()
{
_error = "";
if (_selectedPersonIds.Count < 2)
{
_isValid = false;
_error = "Es müssen mindestens zwei Teilnehmer ausgewählt werden.";
return;
}
_isValid = true;
}
} }