Skip to content

Commit 4a24e53

Browse files
authored
Trigger tasks from Home (#18)
1 parent cbb6d15 commit 4a24e53

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

src/MaintenanceLog.Client/Components/TaskDefinitions/TaskDefinitionGrid.razor

+10
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ else
5454
public int? AreaId { get; set; }
5555
[Parameter]
5656
public int? AssetId { get; set; }
57+
[Parameter]
58+
public EventCallback<bool> OnDataUpdated { get; set; }
5759

5860
private List<TaskDefinition>? taskDefinitions;
5961

@@ -85,6 +87,10 @@ else
8587
{
8688
await TaskDefinitionService.DeleteAsync(id);
8789
await LoadTaskDefinitions();
90+
if (OnDataUpdated.HasDelegate)
91+
{
92+
await OnDataUpdated.InvokeAsync(true);
93+
}
8894
}
8995
}
9096

@@ -98,5 +104,9 @@ else
98104
// Status = TaskInstanceStatus.InProgress
99105
};
100106
await TaskInstanceService.AddAsync(taskInstance);
107+
if (OnDataUpdated.HasDelegate)
108+
{
109+
await OnDataUpdated.InvokeAsync(true);
110+
}
101111
}
102112
}

src/MaintenanceLog.Client/Components/TaskInstances/TaskInstanceGrid.razor

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ else
136136
_userId = user.FindFirstValue(ClaimTypes.NameIdentifier);
137137
}
138138

139-
private async Task LoadTaskInstances()
139+
public async Task LoadTaskInstances()
140140
{
141141
taskInstances = (await TaskInstanceService.GetAsync())
142142
.Where(t => !TaskDefinitionId.HasValue || (t.TaskDefinitionId == TaskDefinitionId))

src/MaintenanceLog.Client/Pages/Home.razor

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@page "/"
2+
@using MaintenanceLog.Client.Components.TaskDefinitions
23
@using MaintenanceLog.Client.Components.TaskInstances
34

45
@inject Blazored.LocalStorage.ILocalStorageService LocalStorage
@@ -18,17 +19,30 @@
1819
<h2 class="pt-4">Tasks</h2>
1920
<input type="checkbox" @bind="onlyActive" /> Only Active
2021

21-
<TaskInstanceGrid OnlyShowActive="@onlyActive" />
22+
<TaskInstanceGrid OnlyShowActive="@onlyActive" @ref="taskInstanceGrid" />
23+
24+
<h2 class="pt-4">Definitions</h2>
25+
<TaskDefinitionGrid OnDataUpdated="OnTaskDefinitionsUpdated"/>
2226
</Authorized>
2327
</AuthorizeView>
2428

2529
@code
2630
{
2731
private bool? onlyActive = true;
32+
TaskInstanceGrid? taskInstanceGrid;
2833

2934
protected override async Task OnAfterRenderAsync(bool firstRender)
3035
{
3136
//onlyActive = await LocalStorage.GetItemAsync<bool?>(nameof(onlyActive));
3237
await base.OnAfterRenderAsync(firstRender);
3338
}
39+
40+
private async Task OnTaskDefinitionsUpdated(bool updated)
41+
{
42+
if (taskInstanceGrid is not null)
43+
{
44+
// may be a better way than component reference here
45+
await taskInstanceGrid.LoadTaskInstances();
46+
}
47+
}
3448
}

0 commit comments

Comments
 (0)