@page "/db-admin" @attribute [Authorize] @inject IDbAdminService DbAdminSvc @inject ILocalizationService Loc @inject NavigationManager Navigation @inject IAuthService AuthService Datenbank Administration - Author Buddy

Datenbank Administration

@records.Count Einträge in "@selectedCollection"
@if (records.Count == 0) {

Leere Sammlung.

} else {
@foreach (var key in columnOrder) { } @foreach (var record in records) { @foreach (var key in columnOrder) { } }
ID@keyAktionen
@record.Id @Truncate(record.Fields.GetValueOrDefault(key), 60)
} @if (!string.IsNullOrEmpty(statusMessage)) {
@statusMessage
}
@if (editingRecord != null) { } @if (deletingRecord != null) { } @code { private List collections = new(); private string selectedCollection = "users"; private List records = new(); private List columnOrder = new(); private string statusMessage = string.Empty; private DbRecord? editingRecord; private Dictionary editValues = new(); private DbRecord? deletingRecord; protected override void OnInitialized() { var user = AuthService.CurrentUser; if (user?.Role != UserRole.Administrator) { Navigation.NavigateTo("/"); return; } collections = DbAdminSvc.GetCollections(); if (collections.Count > 0) selectedCollection = collections[0].Name; LoadRecords(); } private void LoadRecords() { records = DbAdminSvc.GetAll(selectedCollection); columnOrder = records.Count > 0 ? records[0].Fields.Keys.ToList() : new List(); statusMessage = string.Empty; } private void StartEdit(DbRecord record) { editingRecord = record; editValues = new Dictionary(record.Fields); } private void CancelEdit() { editingRecord = null; editValues.Clear(); } private void SaveEdit() { if (editingRecord == null) return; var ok = DbAdminSvc.Update(selectedCollection, editingRecord.Id, editValues); statusMessage = ok ? "Gespeichert." : "Fehler beim Speichern."; editingRecord = null; editValues.Clear(); LoadRecords(); } private void ConfirmDelete(DbRecord record) { deletingRecord = record; } private void CancelDelete() { deletingRecord = null; } private void DeleteRecord() { if (deletingRecord == null) return; var ok = DbAdminSvc.Delete(selectedCollection, deletingRecord.Id); statusMessage = ok ? "Gelöscht." : "Fehler beim Löschen."; deletingRecord = null; LoadRecords(); } private static string? Truncate(string? val, int max) { if (val == null) return null; return val.Length > max ? val[..max] + "..." : val; } }