|
|
|
@ -35,10 +35,10 @@ |
|
|
|
<div class="d-flex"> |
|
|
|
<div class="d-flex"> |
|
|
|
<MudText>Block Group</MudText> |
|
|
|
<MudText>Block Group</MudText> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<MudSelect T="BlockGroupViewModel" ValueChanged="@(vm => UpdateBlockGroupItems(vm))"> |
|
|
|
<MudSelect T="string" ValueChanged="@(name => UpdateBlockGroupItems(name))"> |
|
|
|
@foreach (BlockGroupViewModel blockGroup in _blockGroups) |
|
|
|
@foreach (BlockGroupViewModel blockGroup in _blockGroups) |
|
|
|
{ |
|
|
|
{ |
|
|
|
<MudSelectItem Value="@blockGroup">@blockGroup.Name</MudSelectItem> |
|
|
|
<MudSelectItem Value="@blockGroup.Name">@blockGroup.Name</MudSelectItem> |
|
|
|
} |
|
|
|
} |
|
|
|
</MudSelect> |
|
|
|
</MudSelect> |
|
|
|
</MudStack> |
|
|
|
</MudStack> |
|
|
|
@ -46,10 +46,10 @@ |
|
|
|
<div class="d-flex"> |
|
|
|
<div class="d-flex"> |
|
|
|
<MudText>Block</MudText> |
|
|
|
<MudText>Block</MudText> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<MudSelect T="BlockViewModel" @bind-value="_selectedBlock"> |
|
|
|
<MudSelect T="string" ValueChanged="@(name => UpdateSelectedBlock(name))"> |
|
|
|
@foreach (BlockViewModel block in _blocks) |
|
|
|
@foreach (BlockViewModel block in _blocks) |
|
|
|
{ |
|
|
|
{ |
|
|
|
<MudSelectItem Value="@block">@block.Name</MudSelectItem> |
|
|
|
<MudSelectItem Value="@block.Name">@block.Name</MudSelectItem> |
|
|
|
} |
|
|
|
} |
|
|
|
</MudSelect> |
|
|
|
</MudSelect> |
|
|
|
</MudStack> |
|
|
|
</MudStack> |
|
|
|
@ -94,7 +94,8 @@ |
|
|
|
</MudStack> |
|
|
|
</MudStack> |
|
|
|
<MudText Typo="Typo.h5" Class="mt-10 mb-2">Content</MudText> |
|
|
|
<MudText Typo="Typo.h5" Class="mt-10 mb-2">Content</MudText> |
|
|
|
<MudDivider Class="mb-6"/> |
|
|
|
<MudDivider Class="mb-6"/> |
|
|
|
<MudCalendar T="CalendarItem" |
|
|
|
<MudCalendar @ref="_calendar" |
|
|
|
|
|
|
|
T="CalendarItem" |
|
|
|
Class="mb-6" |
|
|
|
Class="mb-6" |
|
|
|
Items="@_template.Items" |
|
|
|
Items="@_template.Items" |
|
|
|
ShowMonth="false" |
|
|
|
ShowMonth="false" |
|
|
|
@ -125,6 +126,7 @@ |
|
|
|
private BlockGroupViewModel _selectedBlockGroup; |
|
|
|
private BlockGroupViewModel _selectedBlockGroup; |
|
|
|
private BlockViewModel _selectedBlock; |
|
|
|
private BlockViewModel _selectedBlock; |
|
|
|
private DateTime _selectedBlockStart; |
|
|
|
private DateTime _selectedBlockStart; |
|
|
|
|
|
|
|
private MudCalendar<CalendarItem> _calendar; |
|
|
|
|
|
|
|
|
|
|
|
public void Dispose() |
|
|
|
public void Dispose() |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -194,12 +196,22 @@ |
|
|
|
End = item.EndTime |
|
|
|
End = item.EndTime |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
private async Task UpdateBlockGroupItems(BlockGroupViewModel blockGroup) |
|
|
|
private async Task UpdateBlockGroupItems(string blockGroupName) |
|
|
|
{ |
|
|
|
{ |
|
|
|
_selectedBlockGroup = blockGroup; |
|
|
|
Option<BlockGroupViewModel> maybeBlockGroup = Optional(_blockGroups.Find(bg => bg.Name == blockGroupName)); |
|
|
|
|
|
|
|
foreach (var blockGroup in maybeBlockGroup) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
_selectedBlockGroup = blockGroup; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_blocks.Clear(); |
|
|
|
|
|
|
|
_blocks.AddRange(await Mediator.Send(new GetBlocksByBlockGroupId(_selectedBlockGroup.Id), _cts.Token)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_blocks.Clear(); |
|
|
|
private void UpdateSelectedBlock(string blockName) |
|
|
|
_blocks.AddRange(await Mediator.Send(new GetBlocksByBlockGroupId(_selectedBlockGroup.Id), _cts.Token)); |
|
|
|
{ |
|
|
|
|
|
|
|
_selectedBlock = _blocks.Find(bg => bg.Name == blockName); |
|
|
|
|
|
|
|
InvokeAsync(StateHasChanged); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void AddBlockToTemplate() |
|
|
|
private void AddBlockToTemplate() |
|
|
|
@ -223,6 +235,8 @@ |
|
|
|
|
|
|
|
|
|
|
|
_template.Items.Add(item); |
|
|
|
_template.Items.Add(item); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
InvokeAsync(() => { _calendar.ScrollToTime(TimeOnly.FromDateTime(item.Start)); }); |
|
|
|
|
|
|
|
|
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -235,6 +249,9 @@ |
|
|
|
if (_blockToRemove is not null) |
|
|
|
if (_blockToRemove is not null) |
|
|
|
{ |
|
|
|
{ |
|
|
|
_template.Items.Remove(_blockToRemove); |
|
|
|
_template.Items.Remove(_blockToRemove); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await InvokeAsync(() => { _calendar.ScrollToTime(TimeOnly.FromDateTime(_blockToRemove.Start)); }); |
|
|
|
|
|
|
|
|
|
|
|
_blockToRemove = null; |
|
|
|
_blockToRemove = null; |
|
|
|
|
|
|
|
|
|
|
|
await InvokeAsync(StateHasChanged); |
|
|
|
await InvokeAsync(StateHasChanged); |
|
|
|
|