mirror of
https://github.com/chylex/Minecraft-Phantom-Panel.git
synced 2025-05-25 07:34:05 +02:00
Refactor web form validation and yielding after submitting
This commit is contained in:
parent
1c5940dd23
commit
fd0097214b
Server
Phantom.Server.Web.Components/Forms
Phantom.Server.Web
@ -22,7 +22,9 @@
|
|||||||
|
|
||||||
private async Task Submit(EditContext obj) {
|
private async Task Submit(EditContext obj) {
|
||||||
BeforeSubmit?.Invoke(this, EventArgs.Empty);
|
BeforeSubmit?.Invoke(this, EventArgs.Empty);
|
||||||
await OnSubmit.InvokeAsync(obj);
|
if (obj.Validate()) {
|
||||||
|
await OnSubmit.InvokeAsync(obj);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose() {
|
public void Dispose() {
|
||||||
|
@ -44,9 +44,10 @@ public sealed class FormButtonSubmit : ComponentBase {
|
|||||||
public bool IsSubmitting { get; private set; }
|
public bool IsSubmitting { get; private set; }
|
||||||
public string? SubmitError { get; private set; }
|
public string? SubmitError { get; private set; }
|
||||||
|
|
||||||
public void StartSubmitting() {
|
public async Task StartSubmitting() {
|
||||||
IsSubmitting = true;
|
IsSubmitting = true;
|
||||||
SubmitError = null;
|
SubmitError = null;
|
||||||
|
await Task.Yield();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StopSubmitting(string? error = null) {
|
public void StopSubmitting(string? error = null) {
|
||||||
|
@ -279,17 +279,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async Task Submit(EditContext context) {
|
private async Task Submit(EditContext context) {
|
||||||
if (!context.Validate()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var selectedAgent = form.SelectedAgent;
|
var selectedAgent = form.SelectedAgent;
|
||||||
if (selectedAgent == null) {
|
if (selectedAgent == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
form.SubmitModel.StartSubmitting();
|
await form.SubmitModel.StartSubmitting();
|
||||||
await Task.Yield();
|
|
||||||
|
|
||||||
var serverPort = (ushort) form.ServerPort;
|
var serverPort = (ushort) form.ServerPort;
|
||||||
var rconPort = (ushort) form.RconPort;
|
var rconPort = (ushort) form.RconPort;
|
||||||
|
@ -47,11 +47,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async Task DoLogin(EditContext context) {
|
private async Task DoLogin(EditContext context) {
|
||||||
if (!context.Validate()) {
|
await form.SubmitModel.StartSubmitting();
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
form.SubmitModel.StartSubmitting();
|
|
||||||
|
|
||||||
string? returnUrl = Navigation.GetQueryParameter("return", out var url) ? url : null;
|
string? returnUrl = Navigation.GetQueryParameter("return", out var url) ? url : null;
|
||||||
var result = await LoginManager.SignIn(form.Username, form.Password, returnUrl);
|
var result = await LoginManager.SignIn(form.Username, form.Password, returnUrl);
|
||||||
|
@ -56,11 +56,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async Task DoLogin(EditContext context) {
|
private async Task DoLogin(EditContext context) {
|
||||||
if (!context.Validate()) {
|
await form.SubmitModel.StartSubmitting();
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
form.SubmitModel.StartSubmitting();
|
|
||||||
|
|
||||||
if (!IsAdministratorTokenValid()) {
|
if (!IsAdministratorTokenValid()) {
|
||||||
form.SubmitModel.StopSubmitting("Invalid administrator token.");
|
form.SubmitModel.StopSubmitting("Invalid administrator token.");
|
||||||
|
@ -55,13 +55,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async Task StopInstance(EditContext context) {
|
private async Task StopInstance(EditContext context) {
|
||||||
if (!context.Validate()) {
|
await form.SubmitModel.StartSubmitting();
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
form.SubmitModel.StartSubmitting();
|
|
||||||
await Task.Yield();
|
|
||||||
|
|
||||||
var result = await InstanceManager.StopInstance(InstanceGuid, new MinecraftStopStrategy(form.StopInSeconds));
|
var result = await InstanceManager.StopInstance(InstanceGuid, new MinecraftStopStrategy(form.StopInSeconds));
|
||||||
if (result == StopInstanceResult.StopInitiated) {
|
if (result == StopInstanceResult.StopInitiated) {
|
||||||
await AuditLog.AddInstanceStoppedEvent(InstanceGuid, form.StopInSeconds);
|
await AuditLog.AddInstanceStoppedEvent(InstanceGuid, form.StopInSeconds);
|
||||||
@ -72,4 +67,5 @@
|
|||||||
form.SubmitModel.StopSubmitting(result.ToSentence());
|
form.SubmitModel.StopSubmitting(result.ToSentence());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -49,11 +49,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async Task AddUser(EditContext context) {
|
private async Task AddUser(EditContext context) {
|
||||||
if (!context.Validate()) {
|
await form.SubmitModel.StartSubmitting();
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
form.SubmitModel.StartSubmitting();
|
|
||||||
|
|
||||||
var user = new IdentityUser(form.Username);
|
var user = new IdentityUser(form.Username);
|
||||||
var result = await UserManager.CreateAsync(user, form.Password);
|
var result = await UserManager.CreateAsync(user, form.Password);
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async Task DeleteUser() {
|
private async Task DeleteUser() {
|
||||||
submitModel.StartSubmitting();
|
await submitModel.StartSubmitting();
|
||||||
|
|
||||||
if (userToDelete == null) {
|
if (userToDelete == null) {
|
||||||
submitModel.StopSubmitting("Invalid user.");
|
submitModel.StopSubmitting("Invalid user.");
|
||||||
|
Loading…
Reference in New Issue
Block a user