diff --git a/2025-11-13 11_35_00-Clipboard.png b/2025-11-13 11_35_00-Clipboard.png deleted file mode 100644 index 2cf55a5..0000000 Binary files a/2025-11-13 11_35_00-Clipboard.png and /dev/null differ diff --git a/2025-11-13 14_52_24-.png b/2025-11-13 14_52_24-.png new file mode 100644 index 0000000..ea7984c Binary files /dev/null and b/2025-11-13 14_52_24-.png differ diff --git a/FasdDesktopUi/Basics/UserControls/ComboBoxPageable.xaml b/FasdDesktopUi/Basics/UserControls/ComboBoxPageable.xaml index 3a05738..55280b7 100644 --- a/FasdDesktopUi/Basics/UserControls/ComboBoxPageable.xaml +++ b/FasdDesktopUi/Basics/UserControls/ComboBoxPageable.xaml @@ -199,14 +199,15 @@ - - + + diff --git a/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs b/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs index 2860741..cb25345 100644 --- a/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs +++ b/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml.cs @@ -1939,32 +1939,38 @@ namespace FasdDesktopUi.Basics.UserControls } break; - case "ErrorTypeValue": - if (DynamicStatusAdditionBorder.Child is CloseTicketDialog closeTicketDialog2) - { - if (closeTicketDialog2.SelectedErrorType == null || closeTicketDialog2.SelectedErrorType is ComboBoxItem b && b.Tag == null) - { - if (!_errors.ContainsKey(propertyName)) - _errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorTypeEmpty")); - } - else - { - if (_errors.ContainsKey(propertyName)) - _errors.Remove(propertyName); - } - } - break; + case "ErrorTypeValue": + if (DynamicStatusAdditionBorder.Child is CloseTicketDialog closeTicketDialog2) + { + if (closeTicketDialog2.SelectedErrorType == null || closeTicketDialog2.SelectedErrorType is ComboBoxItem b && b.Tag == null) + { + closeTicketDialog2.UpdateErrorTypeValidationState(true); + if (!_errors.ContainsKey(propertyName)) + _errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorTypeEmpty")); + } + else + { + closeTicketDialog2.UpdateErrorTypeValidationState(false); + if (_errors.ContainsKey(propertyName)) + _errors.Remove(propertyName); + } + } + break; - case "SelectedRoleAndPerson": - if (DynamicStatusAdditionBorder.Child is ForwardTicketDialog forwardTicketDialog) - { - if ((forwardTicketDialog.SelectedPerson.Key == null || forwardTicketDialog.SelectedPerson.Value == null) && - (forwardTicketDialog.SelectedRole.Key == null || forwardTicketDialog.SelectedRole.Value == null)) - { - if (!_errors.ContainsKey(propertyName)) - _errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorRoleAndPersonEmpty")); - } - else + case "SelectedRoleAndPerson": + if (DynamicStatusAdditionBorder.Child is ForwardTicketDialog forwardTicketDialog) + { + bool hasError = (forwardTicketDialog.SelectedPerson.Key == null || forwardTicketDialog.SelectedPerson.Value == null) && + (forwardTicketDialog.SelectedRole.Key == null || forwardTicketDialog.SelectedRole.Value == null); + + forwardTicketDialog.UpdateResponsibleSelectionValidationState(hasError); + + if (hasError) + { + if (!_errors.ContainsKey(propertyName)) + _errors.Add(propertyName, cMultiLanguageSupport.GetItem("Dialog.CloseCase.ValidationErrorRoleAndPersonEmpty")); + } + else { if (_errors.ContainsKey(propertyName)) _errors.Remove(propertyName); diff --git a/FasdDesktopUi/Basics/UserControls/Ticket/CloseTicketDialog.xaml b/FasdDesktopUi/Basics/UserControls/Ticket/CloseTicketDialog.xaml index 1540a25..aa3f067 100644 --- a/FasdDesktopUi/Basics/UserControls/Ticket/CloseTicketDialog.xaml +++ b/FasdDesktopUi/Basics/UserControls/Ticket/CloseTicketDialog.xaml @@ -20,15 +20,22 @@ - + + + - - - - - + + + + + + + + + > GetRoleSelectionData(cF4SDHealthCardRawData.cHealthCardTable dataTable) - { + private ObservableCollection> GetRoleSelectionData(cF4SDHealthCardRawData.cHealthCardTable dataTable) + { try { if (dataTable is null || dataTable.Name != "M42Wpm-Ticket-Roles") @@ -191,6 +206,30 @@ namespace FasdDesktopUi.Basics.UserControls } return null; - } - } -} + } + + public void UpdateResponsibleSelectionValidationState(bool hasError) + { + try + { + if (RoleValidationBorder != null) + { + if (defaultRoleBorderBrush == null) + defaultRoleBorderBrush = RoleValidationBorder.BorderBrush?.CloneCurrentValue(); + RoleValidationBorder.BorderBrush = hasError ? ValidationBrush : defaultRoleBorderBrush; + } + + if (PersonValidationBorder != null) + { + if (defaultPersonBorderBrush == null) + defaultPersonBorderBrush = PersonValidationBorder.BorderBrush?.CloneCurrentValue(); + PersonValidationBorder.BorderBrush = hasError ? ValidationBrush : defaultPersonBorderBrush; + } + } + catch (Exception E) + { + LogException(E); + } + } + } +}