Added services. Added admin ui. Added delete button
This commit is contained in:
57
Moonlight/Shared/Components/Forms/DeleteButton.razor
Normal file
57
Moonlight/Shared/Components/Forms/DeleteButton.razor
Normal file
@@ -0,0 +1,57 @@
|
||||
@using Moonlight.App.Services
|
||||
@using Moonlight.App.Services.Interop
|
||||
|
||||
@inject SmartTranslateService SmartTranslateService
|
||||
@inject AlertService AlertService
|
||||
|
||||
@if (!Working)
|
||||
{
|
||||
<button class="btn btn-danger" @onclick="Do">
|
||||
<i class="bx bx-trash"></i>
|
||||
</button>
|
||||
}
|
||||
else
|
||||
{
|
||||
<button class="btn btn-danger disabled" disabled="">
|
||||
<span class="spinner-border spinner-border-sm align-middle me-2"></span>
|
||||
</button>
|
||||
}
|
||||
|
||||
@code
|
||||
{
|
||||
private bool Working { get; set; } = false;
|
||||
|
||||
[Parameter]
|
||||
public Func<Task>? OnClick { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public bool Confirm { get; set; } = false;
|
||||
|
||||
private async Task Do()
|
||||
{
|
||||
Working = true;
|
||||
StateHasChanged();
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
if (Confirm)
|
||||
{
|
||||
var b = await AlertService.YesNo(
|
||||
SmartTranslateService.Translate("Are you sure?"),
|
||||
SmartTranslateService.Translate("Do you really want to delete it?"),
|
||||
SmartTranslateService.Translate("Yes"),
|
||||
SmartTranslateService.Translate("No")
|
||||
);
|
||||
|
||||
if (b)
|
||||
{
|
||||
if(OnClick != null)
|
||||
await OnClick.Invoke();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Working = false;
|
||||
await InvokeAsync(StateHasChanged);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -33,13 +33,13 @@
|
||||
public object Model { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<EditContext> OnValidSubmit { get; set; }
|
||||
public Func<Task>? OnValidSubmit { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<EditContext> OnInvalidSubmit { get; set; }
|
||||
public Func<Task>? OnInvalidSubmit { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<EditContext> OnSubmit { get; set; }
|
||||
public Func<Task>? OnSubmit { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public RenderFragment ChildContent { get; set; }
|
||||
@@ -67,8 +67,14 @@
|
||||
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
await InvokeAsync(() => OnValidSubmit.InvokeAsync(context));
|
||||
await InvokeAsync(() => OnSubmit.InvokeAsync(context));
|
||||
await InvokeAsync(async () =>
|
||||
{
|
||||
if (OnValidSubmit != null)
|
||||
await OnValidSubmit.Invoke();
|
||||
|
||||
if (OnSubmit != null)
|
||||
await OnSubmit.Invoke();
|
||||
});
|
||||
|
||||
Working = false;
|
||||
await InvokeAsync(StateHasChanged);
|
||||
@@ -87,7 +93,10 @@
|
||||
|
||||
await InvokeAsync(StateHasChanged);
|
||||
|
||||
await OnInvalidSubmit.InvokeAsync(context);
|
||||
await OnSubmit.InvokeAsync(context);
|
||||
if (OnInvalidSubmit != null)
|
||||
await OnInvalidSubmit.Invoke();
|
||||
|
||||
if (OnSubmit != null)
|
||||
await OnSubmit.Invoke();
|
||||
}
|
||||
}
|
||||
@@ -225,6 +225,14 @@ else
|
||||
<span class="menu-title"><TL>Support</TL></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<a class="menu-link" href="/admin/subscriptions">
|
||||
<span class="menu-icon">
|
||||
<i class="bx bx-credit-card"></i>
|
||||
</span>
|
||||
<span class="menu-title"><TL>Subscriptions</TL></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<a class="menu-link" href="/admin/statistics">
|
||||
<span class="menu-icon">
|
||||
|
||||
Reference in New Issue
Block a user