This commit is contained in:
6d486f49
2026-08-17 01:13:48 -04:00
parent 1d6207fbfe
commit ffaab59585
26 changed files with 3133 additions and 105 deletions
@@ -117,69 +117,63 @@
@if (showEditModal)
{
<div class="modal-backdrop fade show"></div>
<div class="modal fade show d-block" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content chrono-modal">
<div class="modal-header border-secondary border-opacity-25">
<h5 class="modal-title text-white">
<i class="bi @(isNewUser ? "bi-person-plus-fill" : "bi-pencil-square") me-2 text-primary"></i>
@(isNewUser ? "Add New User" : $"Edit User: {currentUser.Username}")
</h5>
<button type="button" class="btn-close btn-close-white" @onclick="CloseModal"></button>
<div class="modal-backdrop-custom">
<div class="modal-dialog-custom">
<div class="modal-header-custom">
<h5 class="modal-title-custom">
<i class="bi @(isNewUser ? "bi-person-plus-fill" : "bi-pencil-square") me-2 text-primary"></i>
@(isNewUser ? "Add New User" : $"Edit User: {currentUser.Username}")
</h5>
<button type="button" class="btn-close btn-close-white" @onclick="CloseModal"></button>
</div>
<div class="modal-body-custom">
<div class="mb-3">
<label class="form-label text-secondary small fw-semibold">USERNAME</label>
<input type="text" class="form-control form-control-chrono"
@bind="currentUser.Username" disabled="@(!isNewUser)"
placeholder="e.g. player1"/>
</div>
<div class="modal-body">
<div class="mb-3">
<label class="form-label text-secondary small fw-semibold">USERNAME</label>
<input type="text" class="form-control form-control-chrono"
@bind="currentUser.Username" disabled="@(!isNewUser)"
placeholder="e.g. player1"/>
</div>
<div class="mb-3">
<label class="form-label text-secondary small fw-semibold">PASSWORD</label>
<input type="password" class="form-control form-control-chrono"
@bind="currentUser.Password"
placeholder="Enter password..."/>
</div>
</div>
<div class="modal-footer border-secondary border-opacity-25">
<button type="button" class="btn btn-chrono-secondary" @onclick="CloseModal">Cancel</button>
<button type="button" class="btn btn-chrono-primary" @onclick="SaveUserAsync" disabled="@isSaving">
<i class="bi bi-save me-1"></i> @(isSaving ? "Saving..." : "Save User")
</button>
<div class="mb-3">
<label class="form-label text-secondary small fw-semibold">PASSWORD</label>
<input type="password" class="form-control form-control-chrono"
@bind="currentUser.Password"
placeholder="Enter password..."/>
</div>
</div>
<div class="modal-footer-custom">
<button type="button" class="btn btn-chrono-secondary" @onclick="CloseModal">Cancel</button>
<button type="button" class="btn btn-chrono-primary" @onclick="SaveUserAsync" disabled="@isSaving">
<i class="bi bi-save me-1"></i> @(isSaving ? "Saving..." : "Save User")
</button>
</div>
</div>
</div>
}
@if (showDeleteModal && userToDelete != null)
{
<div class="modal-backdrop fade show"></div>
<div class="modal fade show d-block" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content chrono-modal">
<div class="modal-header border-secondary border-opacity-25">
<h5 class="modal-title text-danger">
<i class="bi bi-exclamation-triangle-fill me-2"></i> Confirm Delete
</h5>
<button type="button" class="btn-close btn-close-white"
@onclick="() => showDeleteModal = false"></button>
</div>
<div class="modal-body">
<p class="text-light mb-0">
Are you sure you want to delete user <strong class="text-white">@userToDelete.Username</strong>?
</p>
</div>
<div class="modal-footer border-secondary border-opacity-25">
<button type="button" class="btn btn-chrono-secondary" @onclick="() => showDeleteModal = false">
Cancel
</button>
<button type="button" class="btn btn-chrono-danger" @onclick="ConfirmDeleteAsync"
disabled="@isSaving">
<i class="bi bi-trash3-fill me-1"></i> @(isSaving ? "Deleting..." : "Delete")
</button>
</div>
<div class="modal-backdrop-custom">
<div class="modal-dialog-custom" style="max-width: 450px;">
<div class="modal-header-custom">
<h5 class="modal-title-custom text-danger">
<i class="bi bi-exclamation-triangle-fill me-2"></i> Confirm Delete
</h5>
<button type="button" class="btn-close btn-close-white"
@onclick="() => showDeleteModal = false"></button>
</div>
<div class="modal-body-custom">
<p class="text-light mb-0">
Are you sure you want to delete user <strong class="text-white">@userToDelete.Username</strong>?
</p>
</div>
<div class="modal-footer-custom">
<button type="button" class="btn btn-chrono-secondary" @onclick="() => showDeleteModal = false">
Cancel
</button>
<button type="button" class="btn btn-chrono-danger" @onclick="ConfirmDeleteAsync"
disabled="@isSaving">
<i class="bi bi-trash3-fill me-1"></i> @(isSaving ? "Deleting..." : "Delete")
</button>
</div>
</div>
</div>