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.
This commit is contained in:
@@ -9,6 +9,7 @@ using ClaudeDo.Data.Repositories;
|
|||||||
using ClaudeDo.Ui.Localization;
|
using ClaudeDo.Ui.Localization;
|
||||||
using ClaudeDo.Ui.Services;
|
using ClaudeDo.Ui.Services;
|
||||||
using ClaudeDo.Ui.ViewModels.Modals;
|
using ClaudeDo.Ui.ViewModels.Modals;
|
||||||
|
using ClaudeDo.Ui.ViewModels.Modals.Settings;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
|
||||||
@@ -514,6 +515,7 @@ public sealed partial class ListsIslandViewModel : ViewModelBase, IDisposable
|
|||||||
|
|
||||||
private async Task<bool> IsTicketsConfiguredAsync()
|
private async Task<bool> IsTicketsConfiguredAsync()
|
||||||
{
|
{
|
||||||
|
if (!TicketSettingsTabViewModel.FeatureEnabled) return false;
|
||||||
if (_worker is null) return false;
|
if (_worker is null) return false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ using ClaudeDo.Data.Repositories;
|
|||||||
using ClaudeDo.Ui.Localization;
|
using ClaudeDo.Ui.Localization;
|
||||||
using ClaudeDo.Ui.Services;
|
using ClaudeDo.Ui.Services;
|
||||||
using ClaudeDo.Ui.ViewModels.Agent;
|
using ClaudeDo.Ui.ViewModels.Agent;
|
||||||
|
using ClaudeDo.Ui.ViewModels.Modals.Settings;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
@@ -84,7 +85,9 @@ public sealed partial class ListSettingsModalViewModel : ViewModelBase
|
|||||||
VerifyCommand = cfg?.VerifyCommand ?? "";
|
VerifyCommand = cfg?.VerifyCommand ?? "";
|
||||||
SerializeOnFileOverlap = cfg?.SerializeOnFileOverlap ?? false;
|
SerializeOnFileOverlap = cfg?.SerializeOnFileOverlap ?? false;
|
||||||
|
|
||||||
var ticketSettings = await _worker.GetTicketSettingsAsync();
|
var ticketSettings = TicketSettingsTabViewModel.FeatureEnabled
|
||||||
|
? await _worker.GetTicketSettingsAsync()
|
||||||
|
: null;
|
||||||
TicketsAvailable = !string.IsNullOrWhiteSpace(ticketSettings?.ApiBaseUrl);
|
TicketsAvailable = !string.IsNullOrWhiteSpace(ticketSettings?.ApiBaseUrl);
|
||||||
TicketProjects.Clear();
|
TicketProjects.Clear();
|
||||||
if (TicketsAvailable)
|
if (TicketsAvailable)
|
||||||
|
|||||||
@@ -7,6 +7,22 @@ namespace ClaudeDo.Ui.ViewModels.Modals.Settings;
|
|||||||
|
|
||||||
public sealed partial class TicketSettingsTabViewModel : ViewModelBase
|
public sealed partial class TicketSettingsTabViewModel : ViewModelBase
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Der Aus-Schalter der gesamten Ticketsystem-Anbindung in der UI — hier auf <c>true</c>
|
||||||
|
/// für die Reaktivierung, wie bei <c>SettingsModalViewModel.ShowOnlineInbox</c>.
|
||||||
|
///
|
||||||
|
/// 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.
|
||||||
|
/// </summary>
|
||||||
|
public const bool FeatureEnabled = false;
|
||||||
|
|
||||||
private readonly IWorkerClient _worker;
|
private readonly IWorkerClient _worker;
|
||||||
|
|
||||||
[ObservableProperty] private string _apiBaseUrl = "";
|
[ObservableProperty] private string _apiBaseUrl = "";
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ public sealed partial class SettingsModalViewModel : ViewModelBase
|
|||||||
new("SessionSkills", new LocalizedString(localizer, "settings.sidebar.categorySkills"), "Erweitert", true, true),
|
new("SessionSkills", new LocalizedString(localizer, "settings.sidebar.categorySkills"), "Erweitert", true, true),
|
||||||
new("Reports", new LocalizedString(localizer, "settings.sidebar.categoryReports"), "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("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();
|
BasisCategories = _categories.Where(c => c.Group == "Basis").ToList();
|
||||||
ErweitertCategories = _categories.Where(c => c.Group == "Erweitert").ToList();
|
ErweitertCategories = _categories.Where(c => c.Group == "Erweitert").ToList();
|
||||||
|
|||||||
Reference in New Issue
Block a user