78 lines
3.1 KiB
Plaintext
78 lines
3.1 KiB
Plaintext
@page "/"
|
|
@page "/Dashboard"
|
|
@inject MesaFabApprovalAuthStateProvider stateProvider
|
|
@inject IApprovalService approvalService
|
|
@inject IMemoryCache cache
|
|
@inject NavigationManager navigationManager
|
|
@inject ISnackbar snackbar
|
|
|
|
<PageTitle>Dashboard</PageTitle>
|
|
|
|
<MudPaper Class="p-2 m-2" MinWidth="100%">
|
|
<MudText Typo="Typo.h3" Align="Align.Center">Dashboard</MudText>
|
|
</MudPaper>
|
|
|
|
@if (stateProvider.CurrentUser is not null && approvalList is not null) {
|
|
<MudPaper Outlined="true"
|
|
Class="p-2 m-2 d-flex flex-column justify-center">
|
|
<MudText Typo="Typo.h4" Align="Align.Center">My Active Approvals</MudText>
|
|
<MudDivider DividerType="DividerType.Middle" Class="my-2" />
|
|
<MudTable Items="@approvalList"
|
|
Class="m-2"
|
|
Striped
|
|
SortLabel="Sort by">
|
|
<HeaderContent>
|
|
<MudTh>
|
|
<MudTableSortLabel InitialDirection="SortDirection.Descending" SortBy="new Func<Approval,object>(x=>x.IssueID)">
|
|
Issue ID
|
|
</MudTableSortLabel>
|
|
</MudTh>
|
|
<MudTh>
|
|
<MudTableSortLabel InitialDirection="SortDirection.Descending" SortBy="new Func<Approval,object>(x=>x.SubRoleCategoryItem)">
|
|
Role
|
|
</MudTableSortLabel>
|
|
</MudTh>
|
|
<MudTh>
|
|
<MudTableSortLabel InitialDirection="SortDirection.Descending" SortBy="new Func<Approval,object>(x=>x.AssignedDate)">
|
|
Assigned Date
|
|
</MudTableSortLabel>
|
|
</MudTh>
|
|
<MudTh>
|
|
<MudTableSortLabel InitialDirection="SortDirection.Descending" SortBy="new Func<Approval,object>(x=>x.Step)">
|
|
Step
|
|
</MudTableSortLabel>
|
|
</MudTh>
|
|
</HeaderContent>
|
|
<RowTemplate>
|
|
<MudTd DataLabel="Issue ID">
|
|
<MudLink OnClick="@(() => GoTo($"/mrb/{context.IssueID}"))">@context.IssueID</MudLink>
|
|
</MudTd>
|
|
<MudTd DataLabel="Role">@context.SubRoleCategoryItem</MudTd>
|
|
<MudTd DataLabel="Assigned Date">@DateTimeUtilities.GetDateAsStringMinDefault(context.AssignedDate)</MudTd>
|
|
<MudTd DataLabel="Step">@context.Step</MudTd>
|
|
</RowTemplate>
|
|
<PagerContent>
|
|
<MudTablePager />
|
|
</PagerContent>
|
|
</MudTable>
|
|
</MudPaper>
|
|
}
|
|
|
|
@code {
|
|
private IEnumerable<Approval> approvalList = new List<Approval>();
|
|
|
|
protected async override Task OnParametersSetAsync() {
|
|
try {
|
|
if (stateProvider.CurrentUser is not null)
|
|
approvalList = (await approvalService.GetApprovalsForUserId(stateProvider.CurrentUser.UserID, true)).ToList();
|
|
} catch (Exception ex) {
|
|
snackbar.Add($"Unable to fetch your outstanding approvals, because {ex.Message}", Severity.Error);
|
|
}
|
|
}
|
|
|
|
private void GoTo(string page) {
|
|
cache.Set("redirectUrl", page);
|
|
navigationManager.NavigateTo(page);
|
|
}
|
|
}
|