Compare commits

..

2 Commits

Author SHA1 Message Date
Meik
5a8cbe8716 fix roter rahmen 2025-11-13 13:09:36 +01:00
Meik
1aefa425e0 fix roter rahmen 2025-11-13 13:00:26 +01:00
2 changed files with 93 additions and 58 deletions

View File

@@ -163,13 +163,14 @@
<Border x:Name="CategoryValidationBorder" <Border x:Name="CategoryValidationBorder"
Margin="0 5 0 0" Margin="0 5 0 0"
BorderThickness="1" BorderThickness="1"
Padding="1"
CornerRadius="7.5" CornerRadius="7.5"
Background="Transparent" Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="Transparent"> BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}">
<local:HierarchicalSelectionControl x:Name="CategorySelectionControl" <local:HierarchicalSelectionControl x:Name="CategorySelectionControl"
SelectedItem="{Binding SelectedCategory, ElementName=CloseCaseDialogUc, Mode=TwoWay}" SelectedItem="{Binding SelectedCategory, ElementName=CloseCaseDialogUc, Mode=TwoWay}"
ComboBoxBackground="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}" ComboBoxBackground="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}" BorderBrush="Transparent"
SearchPlaceholderText="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Searchbar.Placeholder}" SearchPlaceholderText="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Searchbar.Placeholder}"
DropDownOpened="DropDownOpened" DropDownOpened="DropDownOpened"
DropDownClosed="DropDownClosed" DropDownClosed="DropDownClosed"
@@ -184,12 +185,14 @@
<Border x:Name="QuickTicketValidationBorder" <Border x:Name="QuickTicketValidationBorder"
Margin="0 5 0 0" Margin="0 5 0 0"
BorderThickness="1" BorderThickness="1"
Padding="1"
CornerRadius="7.5" CornerRadius="7.5"
Background="Transparent" Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="Transparent"> BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}">
<ComboBox x:Name="QuickTicketSelection" <ComboBox x:Name="QuickTicketSelection"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}" Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}" BorderBrush="Transparent"
BorderThickness="0"
SelectedIndex="0" SelectedIndex="0"
SelectionChanged="QuickTicketSelection_SelectionChanged" SelectionChanged="QuickTicketSelection_SelectionChanged"
PreviewKeyDown="Combobox_PreviewKeyDown" PreviewKeyDown="Combobox_PreviewKeyDown"
@@ -304,10 +307,17 @@
SelectedInternIcon="status_bad" SelectedInternIcon="status_bad"
VerticalAlignment="Bottom" /> VerticalAlignment="Bottom" />
</StackPanel> </StackPanel>
<ComboBox x:Name="TicketStatusCombobox" <Border x:Name="TicketStatusValidationBorder"
Margin="0 5 0 0" Margin="0 5 0 0"
BorderThickness="1"
Padding="1"
CornerRadius="7.5"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}" Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}" BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}">
<ComboBox x:Name="TicketStatusCombobox"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="Transparent"
BorderThickness="0"
DropDownOpened="DropDownOpened" DropDownOpened="DropDownOpened"
DropDownClosed="DropDownClosed" DropDownClosed="DropDownClosed"
PreviewKeyDown="Combobox_PreviewKeyDown" PreviewKeyDown="Combobox_PreviewKeyDown"
@@ -327,6 +337,7 @@
Visibility="{Binding EnableForwardTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}" Visibility="{Binding EnableForwardTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}"
Tag="Forward" /> Tag="Forward" />
</ComboBox> </ComboBox>
</Border>
</StackPanel> </StackPanel>
</Border> </Border>

View File

@@ -71,12 +71,22 @@ namespace FasdDesktopUi.Basics.UserControls
private const string CategoryTableNameLegacy = "M42Wpm-Ticket-CloseCase-Categories"; private const string CategoryTableNameLegacy = "M42Wpm-Ticket-CloseCase-Categories";
private string activeCategoryTableName = CategoryTableNamePrimary; private string activeCategoryTableName = CategoryTableNamePrimary;
private static readonly Brush SharedValidationBorderBrush = CreateValidationBrush();
private static Brush CreateValidationBrush()
{
var brush = new SolidColorBrush(Color.FromRgb(0xF5, 0x7C, 0x73));
if (brush.CanFreeze)
brush.Freeze();
return brush;
}
private ObservableCollection<HierarchicalSelectionItem> categoryHierarchy = new ObservableCollection<HierarchicalSelectionItem>(); private ObservableCollection<HierarchicalSelectionItem> categoryHierarchy = new ObservableCollection<HierarchicalSelectionItem>();
private readonly Dictionary<string, HierarchicalSelectionItem> categoryLookup = new Dictionary<string, HierarchicalSelectionItem>(StringComparer.OrdinalIgnoreCase); private readonly Dictionary<string, HierarchicalSelectionItem> categoryLookup = new Dictionary<string, HierarchicalSelectionItem>(StringComparer.OrdinalIgnoreCase);
private bool isCategoryLoading; private bool isCategoryLoading;
private Brush defaultCategoryBorderBrush; private Brush defaultCategoryBorderBrush;
private Brush defaultQuickTicketBorderBrush; private Brush defaultQuickTicketBorderBrush;
private readonly Brush validationErrorBrush = new SolidColorBrush(Colors.Red); private readonly Brush validationErrorBrush = SharedValidationBorderBrush;
private Brush defaultTicketStatusBorderBrush;
public bool IsTicket public bool IsTicket
{ {
@@ -433,6 +443,7 @@ namespace FasdDesktopUi.Basics.UserControls
this.Loaded += CloseCaseDialogWithTicket_Loaded; this.Loaded += CloseCaseDialogWithTicket_Loaded;
defaultCategoryBorderBrush = CategoryValidationBorder?.BorderBrush?.CloneCurrentValue(); defaultCategoryBorderBrush = CategoryValidationBorder?.BorderBrush?.CloneCurrentValue();
defaultQuickTicketBorderBrush = QuickTicketValidationBorder?.BorderBrush?.CloneCurrentValue(); defaultQuickTicketBorderBrush = QuickTicketValidationBorder?.BorderBrush?.CloneCurrentValue();
defaultTicketStatusBorderBrush = TicketStatusValidationBorder?.BorderBrush?.CloneCurrentValue();
if (validationErrorBrush is Freezable freezableBrush && freezableBrush.CanFreeze) if (validationErrorBrush is Freezable freezableBrush && freezableBrush.CanFreeze)
freezableBrush.Freeze(); freezableBrush.Freeze();
@@ -2014,18 +2025,18 @@ namespace FasdDesktopUi.Basics.UserControls
} }
if (a.Tag != null || !TicketStatusCombobox.IsVisible) bool ticketActionHasError = TicketStatusCombobox.IsVisible && a.Tag == null;
if (!ticketActionHasError)
{ {
//TicketStatusCombobox.Tag = "noerror";
if (_errors.ContainsKey(propertyName)) if (_errors.ContainsKey(propertyName))
_errors.Remove(propertyName); _errors.Remove(propertyName);
} }
else else if (!_errors.ContainsKey(propertyName))
{ {
//TicketStatusCombobox.Tag = "error";
if (!_errors.ContainsKey(propertyName))
_errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorTicketActionEmpty")); _errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorTicketActionEmpty"));
} }
UpdateTicketStatusValidationVisualState(ticketActionHasError);
if (a.Tag == null) if (a.Tag == null)
ShowAssetWarningTicketAction = false; ShowAssetWarningTicketAction = false;
else if ( else if (
@@ -2196,7 +2207,7 @@ namespace FasdDesktopUi.Basics.UserControls
} }
else else
{ {
CaseNotesPreviewBorder.BorderBrush = new SolidColorBrush(Colors.Red); CaseNotesPreviewBorder.BorderBrush = SharedValidationBorderBrush;
} }
} }
@@ -2334,7 +2345,7 @@ namespace FasdDesktopUi.Basics.UserControls
// if (selectedItem.Tag == null) // if (selectedItem.Tag == null)
// { // {
// // Setze die Hintergrundfarbe auf Rot, um einen Validierungsfehler anzuzeigen // // Setze die Hintergrundfarbe auf Rot, um einen Validierungsfehler anzuzeigen
// comboBox.BorderBrush = new SolidColorBrush(Colors.Red); // comboBox.BorderBrush = SharedValidationBorderBrush;
// } // }
// else // else
// { // {
@@ -2414,7 +2425,7 @@ namespace FasdDesktopUi.Basics.UserControls
if (string.IsNullOrWhiteSpace(text)) if (string.IsNullOrWhiteSpace(text))
{ {
// Setze die Hintergrundfarbe auf Rot, um einen Validierungsfehler anzuzeigen // Setze die Hintergrundfarbe auf Rot, um einen Validierungsfehler anzuzeigen
textBox.BorderBrush = new SolidColorBrush(Colors.Red); textBox.BorderBrush = SharedValidationBorderBrush;
} }
else else
{ {
@@ -2432,7 +2443,7 @@ namespace FasdDesktopUi.Basics.UserControls
if (notEmpty && string.IsNullOrWhiteSpace(_textBlock.Text)) if (notEmpty && string.IsNullOrWhiteSpace(_textBlock.Text))
{ {
_retVal = true; _retVal = true;
_borderCaseNores = new SolidColorBrush(Colors.Red); _borderCaseNores = SharedValidationBorderBrush;
} }
CaseNotesPreviewBorder.BorderBrush = _borderCaseNores; CaseNotesPreviewBorder.BorderBrush = _borderCaseNores;
return _retVal; return _retVal;
@@ -2447,7 +2458,7 @@ namespace FasdDesktopUi.Basics.UserControls
if (hasError) if (hasError)
{ {
// Setze die Hintergrundfarbe auf Rot, um einen Validierungsfehler anzuzeigen // Setze die Hintergrundfarbe auf Rot, um einen Validierungsfehler anzuzeigen
textBox.BorderBrush = new SolidColorBrush(Colors.Red); textBox.BorderBrush = SharedValidationBorderBrush;
} }
else else
{ {
@@ -2483,6 +2494,19 @@ namespace FasdDesktopUi.Basics.UserControls
: defaultQuickTicketBorderBrush; : defaultQuickTicketBorderBrush;
} }
private void UpdateTicketStatusValidationVisualState(bool hasError)
{
if (TicketStatusValidationBorder == null)
return;
if (defaultTicketStatusBorderBrush == null)
defaultTicketStatusBorderBrush = TicketStatusValidationBorder.BorderBrush?.CloneCurrentValue();
TicketStatusValidationBorder.BorderBrush = hasError
? validationErrorBrush
: defaultTicketStatusBorderBrush;
}
#region DropDown #region DropDown