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();