From 8329c92598631d37475f09e91a0d924305ce5fcb Mon Sep 17 00:00:00 2001 From: mika kuns Date: Thu, 27 Aug 2026 14:13:31 +0200 Subject: [PATCH] feat(ui): Ticketsystem-Anbindung hinter einen Aus-Schalter legen Die Bandel-API ist unter dem eingetragenen Hostnamen nicht erreichbar (Verbindung aktiv abgelehnt), das Feature bliebe also eine Einrichtung, die nicht funktionieren kann. TicketSettingsTabViewModel.FeatureEnabled versteckt alle drei Einstiegspunkte: Settings-Tab, Projekt-Dropdown in den Listen-Einstellungen, Kontextmenue-Eintrag. Gespeicherte Base-URL, PAT und Projektverknuepfungen bleiben erhalten und greifen beim Umlegen sofort wieder. --- .../ViewModels/Islands/ListsIslandViewModel.cs | 2 ++ .../Modals/ListSettingsModalViewModel.cs | 5 ++++- .../Settings/TicketSettingsTabViewModel.cs | 16 ++++++++++++++++ .../ViewModels/Modals/SettingsModalViewModel.cs | 2 +- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/ListsIslandViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/ListsIslandViewModel.cs index 850594b4..75b71d43 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/ListsIslandViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/ListsIslandViewModel.cs @@ -9,6 +9,7 @@ using ClaudeDo.Data.Repositories; using ClaudeDo.Ui.Localization; using ClaudeDo.Ui.Services; using ClaudeDo.Ui.ViewModels.Modals; +using ClaudeDo.Ui.ViewModels.Modals.Settings; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; @@ -514,6 +515,7 @@ public sealed partial class ListsIslandViewModel : ViewModelBase, IDisposable private async Task IsTicketsConfiguredAsync() { + if (!TicketSettingsTabViewModel.FeatureEnabled) return false; if (_worker is null) return false; try { diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/ListSettingsModalViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/ListSettingsModalViewModel.cs index 88f0619f..a122879f 100644 --- a/src/ClaudeDo.Ui/ViewModels/Modals/ListSettingsModalViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Modals/ListSettingsModalViewModel.cs @@ -5,6 +5,7 @@ using ClaudeDo.Data.Repositories; using ClaudeDo.Ui.Localization; using ClaudeDo.Ui.Services; using ClaudeDo.Ui.ViewModels.Agent; +using ClaudeDo.Ui.ViewModels.Modals.Settings; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Microsoft.EntityFrameworkCore; @@ -84,7 +85,9 @@ public sealed partial class ListSettingsModalViewModel : ViewModelBase VerifyCommand = cfg?.VerifyCommand ?? ""; SerializeOnFileOverlap = cfg?.SerializeOnFileOverlap ?? false; - var ticketSettings = await _worker.GetTicketSettingsAsync(); + var ticketSettings = TicketSettingsTabViewModel.FeatureEnabled + ? await _worker.GetTicketSettingsAsync() + : null; TicketsAvailable = !string.IsNullOrWhiteSpace(ticketSettings?.ApiBaseUrl); TicketProjects.Clear(); if (TicketsAvailable) diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/Settings/TicketSettingsTabViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/Settings/TicketSettingsTabViewModel.cs index 7d6915ba..a0a2a6e9 100644 --- a/src/ClaudeDo.Ui/ViewModels/Modals/Settings/TicketSettingsTabViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Modals/Settings/TicketSettingsTabViewModel.cs @@ -7,6 +7,22 @@ namespace ClaudeDo.Ui.ViewModels.Modals.Settings; public sealed partial class TicketSettingsTabViewModel : ViewModelBase { + /// + /// Der Aus-Schalter der gesamten Ticketsystem-Anbindung in der UI — hier auf true + /// für die Reaktivierung, wie bei SettingsModalViewModel.ShowOnlineInbox. + /// + /// Pausiert am 2026-08-27: die Bandel-API war unter dem eingetragenen Hostnamen nicht + /// erreichbar (Verbindung aktiv abgelehnt — vermutlich fehlende IIS-Hostname-Bindung oder + /// falscher Port, siehe deploy/deploy-iis-winrm.ps1). Solange das offen ist, würde der Tab + /// nur eine Einrichtung anbieten, die nicht funktionieren kann. + /// + /// Der Schalter versteckt drei Einstiegspunkte: diesen Settings-Tab, das Ticket-Projekt- + /// Dropdown in den Listen-Einstellungen und den Kontextmenü-Eintrag zum Importieren. + /// Gespeicherte Werte (Base-URL, PAT, verknüpfte Projekte) bleiben unangetastet und greifen + /// beim Umlegen sofort wieder. + /// + public const bool FeatureEnabled = false; + private readonly IWorkerClient _worker; [ObservableProperty] private string _apiBaseUrl = ""; diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs index 5f8ca183..9bc1ade9 100644 --- a/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs @@ -119,7 +119,7 @@ public sealed partial class SettingsModalViewModel : ViewModelBase new("SessionSkills", new LocalizedString(localizer, "settings.sidebar.categorySkills"), "Erweitert", true, true), new("Reports", new LocalizedString(localizer, "settings.sidebar.categoryReports"), "Erweitert", true, true), new("OnlineInbox", new LocalizedString(localizer, "settings.onlineInbox.tabHeader"), "Erweitert", ShowOnlineInbox, false), - new("Tickets", new LocalizedString(localizer, "settings.sidebar.categoryTickets"), "Erweitert", true, false), + new("Tickets", new LocalizedString(localizer, "settings.sidebar.categoryTickets"), "Erweitert", TicketSettingsTabViewModel.FeatureEnabled, false), }; BasisCategories = _categories.Where(c => c.Group == "Basis").ToList(); ErweitertCategories = _categories.Where(c => c.Group == "Erweitert").ToList();