fix roter rahmen

This commit is contained in:
Meik
2025-11-13 13:00:26 +01:00
parent 78dec5aa2c
commit 1aefa425e0
2 changed files with 76 additions and 50 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,31 +307,39 @@
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"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}" BorderThickness="1"
BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}" Padding="1"
DropDownOpened="DropDownOpened" CornerRadius="7.5"
DropDownClosed="DropDownClosed" Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
PreviewKeyDown="Combobox_PreviewKeyDown" BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}">
SelectionChanged="TicketStatusCombobox_SelectionChanged" <ComboBox x:Name="TicketStatusCombobox"
SelectedIndex="0"> Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
<ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Select}" /> BorderBrush="Transparent"
<ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Close}" BorderThickness="0"
Visibility="{Binding EnableCloseTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}" DropDownOpened="DropDownOpened"
Tag="Close" /> DropDownClosed="DropDownClosed"
<ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Save}" PreviewKeyDown="Combobox_PreviewKeyDown"
Visibility="{Binding EnableSaveTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}" SelectionChanged="TicketStatusCombobox_SelectionChanged"
Tag="Save" /> SelectedIndex="0">
<ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.OnHold}" <ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Select}" />
Visibility="{Binding EnableHoldTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}" <ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Close}"
Tag="OnHold" /> Visibility="{Binding EnableCloseTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}"
<ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Forward}" Tag="Close" />
Visibility="{Binding EnableForwardTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}" <ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Save}"
Tag="Forward" /> Visibility="{Binding EnableSaveTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}"
</ComboBox> Tag="Save" />
</StackPanel> <ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.OnHold}"
</Border> Visibility="{Binding EnableHoldTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}"
Tag="OnHold" />
<ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Forward}"
Visibility="{Binding EnableForwardTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}"
Tag="Forward" />
</ComboBox>
</Border>
</StackPanel>
</Border>
<Border x:Name="DynamicStatusAdditionBorder" <Border x:Name="DynamicStatusAdditionBorder"
Visibility="Collapsed" Visibility="Collapsed"

View File

@@ -77,6 +77,7 @@ namespace FasdDesktopUi.Basics.UserControls
private Brush defaultCategoryBorderBrush; private Brush defaultCategoryBorderBrush;
private Brush defaultQuickTicketBorderBrush; private Brush defaultQuickTicketBorderBrush;
private readonly Brush validationErrorBrush = new SolidColorBrush(Colors.Red); private readonly Brush validationErrorBrush = new SolidColorBrush(Colors.Red);
private Brush defaultTicketStatusBorderBrush;
public bool IsTicket public bool IsTicket
{ {
@@ -433,6 +434,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();
@@ -2000,9 +2002,9 @@ namespace FasdDesktopUi.Basics.UserControls
validateComboboxNotEmpty(TicketStatusCombobox); validateComboboxNotEmpty(TicketStatusCombobox);
if (!(TicketStatusCombobox.SelectedItem is ComboBoxItem a)) if (!(TicketStatusCombobox.SelectedItem is ComboBoxItem a))
break; break;
enumTicketStatus currenTicketStatus = enumTicketStatus.Unknown; enumTicketStatus currenTicketStatus = enumTicketStatus.Unknown;
var currentTicketActivityType = SelectedTicket?.Infos.FirstOrDefault(x => x.Key == "ActivityType").Value; var currentTicketActivityType = SelectedTicket?.Infos.FirstOrDefault(x => x.Key == "ActivityType").Value;
if (SelectedTicket != null && SelectedTicket.Infos.TryGetValue("StatusId", out var statusIdString)) if (SelectedTicket != null && SelectedTicket.Infos.TryGetValue("StatusId", out var statusIdString))
{ {
@@ -2014,22 +2016,22 @@ 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"; _errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorTicketActionEmpty"));
if (!_errors.ContainsKey(propertyName)) }
_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 (
!string.Equals(a.Tag.ToString(), "Forward", StringComparison.InvariantCultureIgnoreCase) !string.Equals(a.Tag.ToString(), "Forward", StringComparison.InvariantCultureIgnoreCase)
&& !string.Equals(a.Tag.ToString(), "Save", StringComparison.InvariantCultureIgnoreCase) && !string.Equals(a.Tag.ToString(), "Save", StringComparison.InvariantCultureIgnoreCase)
&& string.Equals(currentTicketActivityType, "SPSActivityTypeTicket", StringComparison.InvariantCultureIgnoreCase) && string.Equals(currentTicketActivityType, "SPSActivityTypeTicket", StringComparison.InvariantCultureIgnoreCase)
) )
@@ -2483,6 +2485,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