Add conditional service request row to ticket overview

This commit is contained in:
Meik
2026-07-17 18:48:48 +02:00
parent 0fef3ad49c
commit 62a5c97cbd
9 changed files with 338 additions and 5 deletions

View File

@@ -105,6 +105,7 @@ namespace FasdDesktopUi.Pages.SearchPage
if (TicketOverviewUpdateService.Instance != null)
{
TicketOverviewUpdateService.Instance.OverviewCountsChanged += TicketOverviewUpdateService_OverviewCountsChanged;
TicketOverviewUpdateService.Instance.ServiceRequestsAvailabilityChanged += TicketOverviewUpdateService_ServiceRequestsAvailabilityChanged;
}
UiSettingsChanged(null, null);
@@ -732,7 +733,10 @@ namespace FasdDesktopUi.Pages.SearchPage
try
{
if (TicketOverviewUpdateService.Instance != null)
{
TicketOverviewUpdateService.Instance.OverviewCountsChanged -= TicketOverviewUpdateService_OverviewCountsChanged;
TicketOverviewUpdateService.Instance.ServiceRequestsAvailabilityChanged -= TicketOverviewUpdateService_ServiceRequestsAvailabilityChanged;
}
_pipeServer?.Dispose();
}
catch { }
@@ -1299,6 +1303,8 @@ namespace FasdDesktopUi.Pages.SearchPage
var service = TicketOverviewUpdateService.Instance;
if (service == null)
return;
TicketOverviewUc?.SetServiceRequestsVisibility(service.ServiceRequestsEnabled);
var counts = service.GetCountsForScope(IsFilterChecked);
if (counts == null || counts.Count == 0)
return;
@@ -1307,6 +1313,13 @@ namespace FasdDesktopUi.Pages.SearchPage
TicketOverviewUc?.RefreshHighlightState(IsFilterChecked);
}
private void TicketOverviewUpdateService_ServiceRequestsAvailabilityChanged(object sender, EventArgs e)
{
var isVisible = TicketOverviewUpdateService.Instance?.ServiceRequestsEnabled == true;
TicketOverviewUc?.SetServiceRequestsVisibility(isVisible);
ScheduleSearchResultMaxHeightUpdate();
}
private string BuildNotificationMessage(IReadOnlyList<TileCountChange> changes)
{
if (changes == null || changes.Count == 0)
@@ -1370,6 +1383,8 @@ namespace FasdDesktopUi.Pages.SearchPage
rowKey = "TicketOverview.Row.Heading.Tickets";
else if (normalized.StartsWith("incident"))
rowKey = "TicketOverview.Row.Heading.Incidents";
else if (normalized.StartsWith("servicerequests"))
rowKey = "TicketOverview.Row.Heading.ServiceRequests";
else if (normalized.StartsWith("unassigned"))
rowKey = "TicketOverview.Row.Heading.UnassignedTickets";
else
@@ -1397,6 +1412,8 @@ namespace FasdDesktopUi.Pages.SearchPage
suffix = "Tickets";
else if (string.Equals(rowKey, "TicketOverview.Row.Heading.Incidents", StringComparison.OrdinalIgnoreCase))
suffix = "Incidents";
else if (string.Equals(rowKey, "TicketOverview.Row.Heading.ServiceRequests", StringComparison.OrdinalIgnoreCase))
suffix = "ServiceRequests";
else if (string.Equals(rowKey, "TicketOverview.Row.Heading.UnassignedTickets", StringComparison.OrdinalIgnoreCase))
suffix = "UnassignedTickets";