@page "/settings" @attribute [Authorize] @rendermode InteractiveServer @inject GhostConfigService ConfigService Einstellungen

Ghost-Instanzen verwalten

Konfigurierte Instanzen
@if (_config.Instances.Count == 0) {
Keine Instanzen konfiguriert.
} else { @foreach (var instance in _config.Instances) { }
Name URL Bilderverzeichnis Aktionen
@instance.Name @instance.Url @instance.ImageFolderPath
}
@(_editingInstance.Id == null || _isNew ? "Neue Instanz" : "Instanz bearbeiten")
Format: {id}:{secret} aus den Ghost-Integrationen
Vollständiger Pfad zum Ghost content/images Ordner
@if (!string.IsNullOrEmpty(_message)) {
@_message
}
@code { private GhostConfig _config = new(); private GhostInstanceForm _editingInstance = new(); private bool _isNew = true; private string? _message; protected override void OnInitialized() { LoadConfig(); } private void LoadConfig() { _config = ConfigService.Load(); } private void EditInstance(GhostInstance instance) { _editingInstance = new GhostInstanceForm { Id = instance.Id, Name = instance.Name, Url = instance.Url, AdminApiKey = instance.AdminApiKey, ContentApiKey = instance.ContentApiKey, ImageFolderPath = instance.ImageFolderPath }; _isNew = false; _message = null; } private void DeleteInstance(GhostInstance instance) { _config.Instances.Remove(instance); ConfigService.Save(_config); LoadConfig(); ResetForm(); } private void SaveInstance() { if (_isNew) { _config.Instances.Add(new GhostInstance { Id = Guid.NewGuid().ToString("N")[..8], Name = _editingInstance.Name, Url = _editingInstance.Url.TrimEnd('/'), AdminApiKey = _editingInstance.AdminApiKey, ContentApiKey = _editingInstance.ContentApiKey, ImageFolderPath = _editingInstance.ImageFolderPath }); } else { var existing = _config.Instances.FirstOrDefault(i => i.Id == _editingInstance.Id); if (existing != null) { existing.Name = _editingInstance.Name; existing.Url = _editingInstance.Url.TrimEnd('/'); existing.AdminApiKey = _editingInstance.AdminApiKey; existing.ContentApiKey = _editingInstance.ContentApiKey; existing.ImageFolderPath = _editingInstance.ImageFolderPath; } } ConfigService.Save(_config); LoadConfig(); ResetForm(); _message = "Instanz gespeichert."; } private void ResetForm() { _editingInstance = new GhostInstanceForm(); _isNew = true; _message = null; } private class GhostInstanceForm { public string? Id { get; set; } public string Name { get; set; } = ""; public string Url { get; set; } = ""; public string AdminApiKey { get; set; } = ""; public string ContentApiKey { get; set; } = ""; public string ImageFolderPath { get; set; } = ""; } }