1 files changed, 55 insertions, 4 deletions
diff --git a/testFrontend/SafeNSound.Demo/Pages/Monitor.razor b/testFrontend/SafeNSound.Demo/Pages/Monitor.razor
index d78d60a..f948b69 100644
--- a/testFrontend/SafeNSound.Demo/Pages/Monitor.razor
+++ b/testFrontend/SafeNSound.Demo/Pages/Monitor.razor
@@ -6,16 +6,44 @@
return Task.CompletedTask;
})">Manage devices
</LinkButton>
-
+
@foreach (var user in AssignedUsers) {
- <p>Assigned user @user
+ <p>
+ <span>Assigned user @user</span>
@if (Alarms.ContainsKey(user)) {
- <pre>@Alarms[user].ToJson(indent: false)</pre>
+ <span>🔔</span>
+ <br/>
+ <i>@Alarms[user].Reason (@Alarms[user].CreatedAt)</i>
+ }
+ else {
+ <span>🔕</span>
}
- </p>
+ </p>
+ <LinkButton OnClick="() => { _ = ManageUser(user); return Task.CompletedTask; }">Manage</LinkButton>
}
}
+@if (!string.IsNullOrWhiteSpace(manageUserId)) {
+ <ModalWindow Title="Manage user">
+ <span>ID: @manageUserId</span><br/>
+ @if (Alarms.ContainsKey(manageUserId)) {
+ <span><b>User has alarm!</b></span>
+ <br/>
+ <i>@Alarms[manageUserId].Reason at @Alarms[manageUserId].CreatedAt.ToLocalTime()</i>
+ <LinkButton>Clear</LinkButton>
+ <br/>
+ }
+ <span>Budget: @manageUserBudget?.Amount EUR</span><br/>
+ <span>Add money: </span>
+ <FancyTextBox Value="@manageUserNewBudget?.Amount.ToString()"
+ ValueChanged="s => manageUserNewBudget.Amount = double.Parse(s)"/>
+ <span>, reason:</span>
+ <FancyTextBox @bind-Value="@manageUserNewBudget.Reason"/>
+ <LinkButton OnClick="@UpdateUserBudget">Add budget
+ </LinkButton>
+ </ModalWindow>
+}
+
@code {
bool _isInitialized = false;
@@ -28,4 +56,27 @@
_isInitialized = true;
}
+ string? manageUserId { get; set; }
+ BudgetWithHistory? manageUserBudget { get; set; }
+ BudgetHistoryEntry manageUserNewBudget { get; set; }
+
+ private async Task ManageUser(string user) {
+ manageUserId = user;
+ manageUserBudget = await App.MonitorClient.GetBudget(manageUserId);
+ manageUserBudget ??= new BudgetWithHistory {
+ Amount = 0,
+ History = []
+ };
+ manageUserNewBudget = new() {
+ Venue = App.MonitorAuth.Username
+ };
+
+ StateHasChanged();
+ }
+
+ private async Task UpdateUserBudget() {
+ await App.MonitorClient.AddBudget(manageUserId, manageUserNewBudget);
+ await ManageUser(manageUserId);
+ }
+
}
\ No newline at end of file
|