Compare commits

...

7 Commits

Author SHA1 Message Date
Meik
9f2c3fefc1 aktueller Stand 2026-02-23 15:10:44 +01:00
Meik
1b9a1260f0 Align ticket overview availability with search authorization status 2026-02-23 13:44:13 +01:00
Meik
1215cadd6c revert badge sparkle effect 2026-02-20 16:24:08 +01:00
Meik
485a209a26 git push Merge branch 'bugfix/esc-ticketdropdown-hang' 2026-02-20 16:21:02 +01:00
Meik
e154353af8 bugfix dropdown closing by ESC 2026-02-20 16:15:28 +01:00
Meik
234eacaecf Fix ESC handling in ticket completion dropdowns 2026-02-20 14:55:35 +01:00
Meik
dd0e7bdc99 bugfixing sid deeplink 2026-02-20 14:36:47 +01:00
7 changed files with 3511 additions and 3430 deletions

View File

@@ -222,6 +222,15 @@ namespace FasdDesktopUi.Basics.UserControls
return null;
}
public bool CloseDropDownIfOpen()
{
if (ComboBoxControl?.IsDropDownOpen != true)
return false;
ComboBoxControl.IsDropDownOpen = false;
return true;
}
#region Paging Events
#region PageBack
@@ -316,6 +325,15 @@ namespace FasdDesktopUi.Basics.UserControls
}
}
private void SearchTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key != Key.Escape)
return;
if (CloseDropDownIfOpen())
e.Handled = true;
}
private void ComboBoxControl_DropDownClosed(object sender, EventArgs e)
{
timer.Stop();
@@ -384,6 +402,8 @@ namespace FasdDesktopUi.Basics.UserControls
TextBox searchTextBox = FindVisualChild<TextBox>(partPopup.Child, "SearchTextBox");
if (searchTextBox != null)
{
searchTextBox.PreviewKeyDown -= SearchTextBox_PreviewKeyDown;
searchTextBox.PreviewKeyDown += SearchTextBox_PreviewKeyDown;
// Setzen des Fokus auf TextBox
searchTextBox.Focus();
}

View File

@@ -34,6 +34,15 @@ namespace FasdDesktopUi.Basics.UserControls
searchDelayTimer.Tick += SearchDelayTimer_Tick;
}
public bool CloseDropDownIfOpen()
{
if (ComboBoxControl?.IsDropDownOpen != true)
return false;
ComboBoxControl.IsDropDownOpen = false;
return true;
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
@@ -345,6 +354,7 @@ namespace FasdDesktopUi.Basics.UserControls
if (treeViewControl != null)
{
treeViewControl.SelectedItemChanged += TreeViewControl_SelectedItemChanged;
treeViewControl.PreviewKeyDown += DropDownContent_PreviewKeyDown;
treeViewControl.ItemsSource = VisibleItems;
}
}
@@ -353,7 +363,10 @@ namespace FasdDesktopUi.Basics.UserControls
{
searchTextBox = ComboBoxControl.Template.FindName("PART_SearchTextBox", ComboBoxControl) as TextBox;
if (searchTextBox != null)
{
searchTextBox.TextChanged += SearchTextBox_TextChanged;
searchTextBox.PreviewKeyDown += DropDownContent_PreviewKeyDown;
}
}
if (itemsScrollViewer == null)
@@ -399,6 +412,15 @@ namespace FasdDesktopUi.Basics.UserControls
e.Handled = true;
}
private void DropDownContent_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key != Key.Escape)
return;
if (CloseDropDownIfOpen())
e.Handled = true;
}
#endregion
#region Keyboard

View File

@@ -167,7 +167,9 @@
<Border Background="{DynamicResource BackgroundColor.DetailsPage.Widget.Title}"
CornerRadius="7.5"
Width="{Binding ElementName=TicketSelectionBorder, Path=ActualWidth}">
<StackPanel x:Name="TicketSelectionContainer" />
<StackPanel x:Name="TicketSelectionContainer"
Focusable="True"
PreviewKeyDown="TicketSelectionContainer_PreviewKeyDown" />
</Border>
</Popup>
</StackPanel>

View File

@@ -2541,6 +2541,14 @@ namespace FasdDesktopUi.Basics.UserControls
DropDownOpened(TicketSelectionBorder, EventArgs.Empty);
TicketSelectionPopUp.IsOpen = !TicketSelectionPopUp.IsOpen;
if (TicketSelectionPopUp.IsOpen)
{
_ = Dispatcher.BeginInvoke((Action)(() =>
{
TicketSelectionContainer?.Focus();
Keyboard.Focus(TicketSelectionContainer);
}), System.Windows.Threading.DispatcherPriority.Input);
}
});
}
@@ -2554,6 +2562,15 @@ namespace FasdDesktopUi.Basics.UserControls
TicketSelectionBorder_Click();
}
private void TicketSelectionContainer_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key != Key.Escape || TicketSelectionPopUp?.IsOpen != true)
return;
TicketSelectionPopUp.IsOpen = false;
e.Handled = true;
}
private void TicketSummaryTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
try
@@ -2792,10 +2809,26 @@ namespace FasdDesktopUi.Basics.UserControls
private void Combobox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Escape)
if (e.Key != Key.Escape)
return;
if (sender is ComboBoxPageable pageable && pageable.CloseDropDownIfOpen())
{
if (sender is FrameworkElement fe && IsInsidePageable(fe)) return;
DropDownClosed(sender, e);
e.Handled = true;
return;
}
if (sender is HierarchicalSelectionControl hierarchicalSelectionControl && hierarchicalSelectionControl.CloseDropDownIfOpen())
{
e.Handled = true;
return;
}
if (sender is ComboBox comboBox && comboBox.IsDropDownOpen)
{
comboBox.IsDropDownOpen = false;
e.Handled = true;
return;
}
}
}

View File

@@ -816,7 +816,10 @@ namespace FasdDesktopUi.Pages.SearchPage
if (cFasdCockpitCommunicationBase.Instance?.IsDemo() == true)
return true;
return cFasdCockpitConfig.Instance?.Global?.TicketConfiguration?.ShowOverview == true
var isSearchAvailable = cConnectionStatusHelper.Instance?.ApiConnectionStatus == cConnectionStatusHelper.enumOnlineStatus.online;
return isSearchAvailable
&& cFasdCockpitConfig.Instance?.Global?.TicketConfiguration?.ShowOverview == true
&& IsTicketIntegrationActive()
&& cFasdCockpitConfig.Instance.HasM42Configuration();
}

View File

@@ -18,7 +18,7 @@
Background="Transparent"
WindowStartupLocation="CenterOwner"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
PreviewKeyDown="CustomMessageBox_PreviewKeyDown"
KeyDown="CustomMessageBox_KeyDown"
IsVisibleChanged="BlurInvoker_IsActiveChanged">
<WindowChrome.WindowChrome>

View File

@@ -280,14 +280,15 @@ namespace FasdDesktopUi.Pages.TicketCompletion
#endregion
private void CustomMessageBox_PreviewKeyDown(object sender, KeyEventArgs e)
private void CustomMessageBox_KeyDown(object sender, KeyEventArgs e)
{
switch (e.Key)
if (e.Key != Key.Escape)
{
case Key.Escape:
Close_Click();
break;
return;
}
Close_Click();
e.Handled = true;
}
private async Task DoCloseActionAsync()