Files
C4IT-F4SD-Client/FasdDesktopUi/Basics/UserControls/Ticket/CloseCaseDialogWithTicket.xaml
2025-11-13 15:59:31 +01:00

488 lines
31 KiB
XML

<UserControl x:Class="FasdDesktopUi.Basics.UserControls.CloseCaseDialogWithTicket"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:FasdDesktopUi.Basics.UserControls"
xmlns:ico="clr-namespace:FasdDesktopUi.Basics.UserControls.AdaptableIcon;assembly=F4SD-AdaptableIcon"
xmlns:vc="clr-namespace:FasdDesktopUi.Basics.Converter"
mc:Ignorable="d"
x:Name="CloseCaseDialogUc"
IsVisibleChanged="CloseCaseDialogUc_IsVisibleChanged"
d:DesignWidth="350"
d:Background="LightBlue"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
<UserControl.Resources>
<vc:LanguageDefinitionsConverter x:Key="LanguageConverter" />
<BooleanToVisibilityConverter x:Key="BooleanToVisibility" />
<Style x:Key="SwapIconStyleBase"
x:Name="SwapIconStyleBase"
TargetType="ico:AdaptableIcon"
BasedOn="{StaticResource Menu.MenuBar.PinnedIcon.Base}">
<Setter Property="Visibility"
Value="Hidden" />
<Setter Property="Opacity"
Value="0.7" />
<Setter Property="Cursor"
Value="{x:Null}" />
<Setter Property="SelectedInternIcon"
Value="misc_chevron_down" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorLevel=1, AncestorType=Border}, Path=IsMouseOver}"
Value="True">
<Setter Property="Visibility"
Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="SwapIconStyle"
TargetType="ico:AdaptableIcon"
BasedOn="{StaticResource SwapIconStyleBase}">
<Setter Property="Opacity"
Value="1" />
<Setter Property="Cursor"
Value="Hand" />
<Setter Property="IconBackgroundColor"
Value="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorLevel=1, AncestorType=Border}, Path=IsMouseOver}"
Value="True">
<Setter Property="IconBackgroundColor"
Value="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}" />
<Setter Property="PrimaryIconColor"
Value="{DynamicResource Color.Menu.Icon.Hover}" />
</DataTrigger>
</Style.Triggers>
</Style>
<ControlTemplate x:Key="ValidationErrorTemplate">
<Border BorderBrush="Red"
BorderThickness="1"
CornerRadius="7.5">
<TextBlock Text="{Binding ErrorContent}"
Foreground="White"
Padding="2" />
</Border>
</ControlTemplate>
<Style x:Key="MandatoryFieldLabelStyle"
TargetType="TextBlock">
<Setter Property="FontWeight"
Value="Bold" />
<Setter Property="Margin"
Value="0 10 0 0" />
<Setter Property="Foreground"
Value="{DynamicResource FontColor.Menu.Categories}" />
</Style>
<Style x:Key="MandatoryFieldBorderStyle"
TargetType="Border">
<Setter Property="Margin"
Value="0 5 0 0" />
<Setter Property="BorderThickness"
Value="1" />
<Setter Property="Padding"
Value="1" />
<Setter Property="CornerRadius"
Value="7.5" />
<Setter Property="Background"
Value="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}" />
<Setter Property="BorderBrush"
Value="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}" />
</Style>
<Style x:Key="MandatoryEditableTextBoxStyle"
TargetType="TextBox"
BasedOn="{StaticResource Customizable.Editable.TextBox.EditOnly}">
<Setter Property="AutomationProperties.IsRequiredForForm"
Value="True" />
</Style>
</UserControl.Resources>
<ScrollViewer Height="570"
Padding="0 0 5 0"
VerticalScrollBarVisibility="Auto">
<StackPanel>
<Border x:Name="NewOrExistingOrNoneTicketSelectionBorder">
<WrapPanel x:Name="NewOrExistingOrNoneTicketWrap"
Margin="7.5 12.5 0 0"
Grid.Column="0"
Grid.ColumnSpan="2"
Grid.Row="3"
Width="{Binding ElementName=NewOrExistingOrNoneTicketSelectionBorder, Path=ActualWidth}">
</WrapPanel>
</Border>
<Border x:Name="TicketSelectionCategory"
CornerRadius="7.5"
Padding="10"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.TitleColumn}">
<StackPanel>
<StackPanel x:Name="TicketSelectionStack">
<Border x:Name="TicketSelectionBorder"
Margin="0 5 0 0"
MouseLeftButtonUp="TicketSelectionBorder_MouseLeftButtonUp"
TouchDown="TicketSelectionBorder_TouchDown">
<Border.Resources>
<Style TargetType="Border"
BasedOn="{StaticResource DetailsPage.TitleSection.Border.NotSelected}">
<Setter Property="Opacity"
Value="1.0" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}"
Value="True">
<Setter Property="Background"
Value="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}" />
</DataTrigger>
<Trigger Property="IsEnabled"
Value="False">
<Setter Property="Opacity"
Value="0.5" />
</Trigger>
</Style.Triggers>
</Style>
</Border.Resources>
<DockPanel>
<ico:AdaptableIcon x:Name="TicketIcon"
DockPanel.Dock="Left"
IconHeight="28"
IconWidth="28"
BorderPadding="0"
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
SelectedMaterialIcon="ic_mail"
Margin="10 0 7.5 0" />
<ico:AdaptableIcon x:Name="TicketSwapIcon"
Style="{DynamicResource SwapIconStyle}"
DockPanel.Dock="Right"
Visibility="Visible"
Height="28"
BorderBrush="{DynamicResource Color.SoftContrast}"
BorderThickness="2 0 0 0"
BorderPadding="7.5 2.5 2.5 2.5"
Margin="5 0" />
<TextBlock x:Name="TicketTextBlock"
Style="{DynamicResource DetailsPage.TitleSection.Header}" />
</DockPanel>
</Border>
<Popup x:Name="TicketSelectionPopUp"
VerticalOffset="5"
IsOpen="False"
Closed="TicketSelectionPopUp_Closed"
StaysOpen="False"
AllowsTransparency="True"
Width="{Binding ElementName=TicketSelectionBorder, Path=ActualWidth}">
<Border Background="{DynamicResource BackgroundColor.DetailsPage.Widget.Title}"
CornerRadius="7.5"
Width="{Binding ElementName=TicketSelectionBorder, Path=ActualWidth}">
<StackPanel x:Name="TicketSelectionContainer" />
</Border>
</Popup>
</StackPanel>
<StackPanel x:Name="MainStack">
<StackPanel x:Name="CategoryLabelPanel">
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Category}"
Style="{StaticResource MandatoryFieldLabelStyle}" />
</StackPanel>
<Border x:Name="CategoryValidationBorder"
Style="{StaticResource MandatoryFieldBorderStyle}">
<local:HierarchicalSelectionControl x:Name="CategorySelectionControl"
SelectedItem="{Binding SelectedCategory, ElementName=CloseCaseDialogUc, Mode=TwoWay}"
ComboBoxBackground="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="Transparent"
SearchPlaceholderText="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Searchbar.Placeholder}"
DropDownOpened="DropDownOpened"
DropDownClosed="DropDownClosed"
PreviewKeyDown="Combobox_PreviewKeyDown"
AutomationProperties.IsRequiredForForm="True"
AutomationProperties.HelpText="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.ValidationErrorCategoryEmpty}" />
</Border>
<StackPanel>
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Template}"
Style="{StaticResource MandatoryFieldLabelStyle}" />
<Border x:Name="QuickTicketValidationBorder"
Style="{StaticResource MandatoryFieldBorderStyle}">
<ComboBox x:Name="QuickTicketSelection"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="Transparent"
BorderThickness="0"
SelectedIndex="0"
SelectionChanged="QuickTicketSelection_SelectionChanged"
PreviewKeyDown="Combobox_PreviewKeyDown"
DropDownOpened="DropDownOpened"
DropDownClosed="DropDownClosed"
AutomationProperties.IsRequiredForForm="True"
AutomationProperties.HelpText="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.ValidationErrorQuickCallEmpty}">
</ComboBox>
</Border>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="SetOrUpdateComputerInTicketLabel"
Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.SetAffectedAssetLabel}"
FontWeight="Bold"
Margin="0 10 0 0"
Foreground="{DynamicResource FontColor.Menu.Categories}" />
<CheckBox x:Name="SetOrUpdateComputerInTicketCheckbox"
Style="{DynamicResource ToggleSwitch}"
Margin="10 0 0 -10"
HorizontalAlignment="Left"
IsChecked="{Binding SetOrUpdateComputerInTicket, ElementName=CloseCaseDialogUc}"
VerticalAlignment="Center"
Cursor="Hand" />
<ico:AdaptableIcon x:Name="WarningAssetHasBeenChanged"
Visibility="{Binding ShowAssetHasBeenChangedWarning, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}"
ToolTip="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.WarningNewAffectedAsset}"
IconBackgroundColor="Transparent"
Margin="0 0 0 -7"
PrimaryIconColor="#FFFF8800"
SelectedInternIcon="status_bad"
VerticalAlignment="Bottom" />
</StackPanel>
<ComboBox x:Name="ComputerSelection"
Margin="0 5 0 0"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}"
SelectedIndex="0"
SelectionChanged="ComputerSelection_SelectionChanged"
SelectedItem="{Binding SelectedComputer, ElementName=CloseCaseDialogUc, Mode=TwoWay}"
ItemsSource="{Binding ComputerRelations, ElementName=CloseCaseDialogUc}"
DisplayMemberPath="Name"
IsEnabled="{Binding SetOrUpdateComputerInTicket, ElementName=CloseCaseDialogUc}"
PreviewKeyDown="Combobox_PreviewKeyDown"
DropDownOpened="DropDownOpened"
DropDownClosed="DropDownClosed">
</ComboBox>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="SetOrUpdateServiceInTicketLabel"
Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.SetAffectedServiceLabel}"
FontWeight="Bold"
Margin="0 10 0 0"
Foreground="{DynamicResource FontColor.Menu.Categories}" />
<CheckBox x:Name="SetOrUpdateServiceInTicketCheckbox"
Style="{DynamicResource ToggleSwitch}"
Margin="10 0 0 -10"
HorizontalAlignment="Left"
IsChecked="{Binding SetOrUpdateServiceInTicket, ElementName=CloseCaseDialogUc}"
VerticalAlignment="Center"
Cursor="Hand" />
<ico:AdaptableIcon x:Name="WarningServiceHasBeenChanged"
Visibility="{Binding ShowServiceHasBeenChangedWarning, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}"
ToolTip="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.WarningNewAffectedService}"
IconBackgroundColor="Transparent"
Margin="0 0 0 -7"
PrimaryIconColor="#FFFF8800"
SelectedInternIcon="status_bad"
VerticalAlignment="Bottom" />
</StackPanel>
<local:ComboBoxPageable x:Name="ServiceSelectionControl"
Margin="0 5 0 0"
ResetFilterLabel="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.ResetFilter.Services}"
SelectedItem="{Binding SelectedService, ElementName=CloseCaseDialogUc, Mode=TwoWay}"
IsEnabled="{Binding SetOrUpdateServiceInTicket, ElementName=CloseCaseDialogUc}"
ComboBoxBackground="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}"
PreviewKeyDown="Combobox_PreviewKeyDown" />
</StackPanel>
<StackPanel>
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Summary}"
Style="{StaticResource MandatoryFieldLabelStyle}" />
<TextBox x:Name="TicketSummaryTextBox"
Margin="0 5 0 10"
Style="{StaticResource MandatoryEditableTextBoxStyle}"
Padding="7.5 5"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
TextChanged="TicketSummaryTextBox_TextChanged"
AutomationProperties.HelpText="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.ValidationErrorSummaryEmpty}" />
</StackPanel>
</StackPanel>
</Border>
<Border x:Name="StatusSelectionBorder"
CornerRadius="7.5"
Margin="0 10 0 0"
Padding="10"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.TitleColumn}">
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status}"
Style="{StaticResource MandatoryFieldLabelStyle}"
Margin="0" />
<ico:AdaptableIcon x:Name="WarningTicketAction"
Visibility="{Binding ShowAssetWarningTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}"
ToolTip=""
IconBackgroundColor="Transparent"
Margin="0,-7,0,-7"
PrimaryIconColor="#FFFF8800"
SelectedInternIcon="status_bad"
VerticalAlignment="Bottom" />
</StackPanel>
<Border x:Name="TicketStatusValidationBorder"
Style="{StaticResource MandatoryFieldBorderStyle}">
<ComboBox x:Name="TicketStatusCombobox"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="Transparent"
BorderThickness="0"
DropDownOpened="DropDownOpened"
DropDownClosed="DropDownClosed"
PreviewKeyDown="Combobox_PreviewKeyDown"
SelectionChanged="TicketStatusCombobox_SelectionChanged"
SelectedIndex="0"
AutomationProperties.IsRequiredForForm="True"
AutomationProperties.HelpText="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.ValidationErrorTicketActionEmpty}">
<ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Select}" />
<ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Close}"
Visibility="{Binding EnableCloseTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}"
Tag="Close" />
<ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.Save}"
Visibility="{Binding EnableSaveTicketAction, ElementName=CloseCaseDialogUc, Converter={StaticResource BooleanToVisibility}}"
Tag="Save" />
<ComboBoxItem Content="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Status.OnHold}"
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"
Visibility="Collapsed"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.TitleColumn}"
CornerRadius="7.5"
Padding="10"
Margin="0 10 0 0" />
<Border x:Name="SelectionBorder"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.TitleColumn}"
CornerRadius="7.5"
Padding="10"
Margin="0 10 0 0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Transfer.QuickActionHistory}"
FontWeight="Bold"
Foreground="{DynamicResource FontColor.Menu.Categories}" />
<CheckBox x:Name="TransferQuickActionHistoryCheck"
Style="{DynamicResource ToggleSwitch}"
Margin="15 0 0 0"
HorizontalAlignment="Left"
IsChecked="True"
Grid.Column="1" />
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Transfer.Notes}"
Foreground="{DynamicResource FontColor.Menu.Categories}"
FontWeight="Bold"
VerticalAlignment="Center"
Margin="0 5 0 0"
Grid.Row="1" />
<!--<ico:AdaptableIcon x:Name="EditCaseNotesButton"
SelectedMaterialIcon="ic_edit"
Style="{DynamicResource SettingsPage.Close.Icon}"
BorderPadding="7.5 10 7.5 5"
VerticalAlignment="Center"
MouseLeftButtonUp="EditCaseNotesButton_MouseLeftButtonUp"
TouchDown="EditCaseNotesButton_TouchDown" />-->
<CheckBox x:Name="TransferCaseNotesCheck"
Style="{DynamicResource ToggleSwitch}"
Margin="15 5 0 0"
HorizontalAlignment="Left"
IsChecked="True"
Grid.Column="1"
Grid.Row="1"
Checked="TransferCaseNotesCheck_Checked"
Unchecked="TransferCaseNotesCheck_Unchecked" />
<Border x:Name="CaseNotesPreviewBorder"
Margin="0 10 0 0"
Padding="15 5 5 0"
CornerRadius="7.5"
Grid.Column="0"
Grid.ColumnSpan="2"
Grid.Row="2"
BorderThickness="0.9"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
MaxHeight="45">
<TextBlock x:Name="CaseNotesPreview"
MaxWidth="420"
MaxHeight="20"
Margin="-35 -5 -25 5"
Padding="5 3 0 0"
Foreground="{DynamicResource FontColor.Menu.Categories}"
FontSize="13"
Cursor="Pen"
AutomationProperties.IsRequiredForForm="{Binding AreCaseNotesMandatory, ElementName=CloseCaseDialogUc}"
AutomationProperties.HelpText="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.ValidationErrorCaseNoteEmpty}"
MouseLeftButtonUp="EditCaseNotesButton_MouseLeftButtonUp"
TouchDown="EditCaseNotesButton_TouchDown"/>
</Border>
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.Transfer.CopyTemplates}"
Foreground="{DynamicResource FontColor.Menu.Categories}"
FontWeight="Bold"
Margin="0 10 0 0"
Grid.Row="3" />
<Border Margin="0 10 0 0"
Padding="2.5 0 2.5 2.5"
CornerRadius="7.5"
Grid.Column="0"
Grid.ColumnSpan="2"
Grid.Row="4"
Background="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}">
<Border x:Name="CopyTemplateSelectionBorder">
<WrapPanel x:Name="CopyTemplateWrap"
Margin="7.5 12.5 0 0"
Grid.Column="0"
Grid.ColumnSpan="2"
Grid.Row="3"
Width="{Binding ElementName=CopyTemplateSelectionBorder, Path=ActualWidth}" />
</Border>
</Border>
</Grid>
</Border>
<TextBlock x:Name="CopyDisclaimerTextBox"
Visibility="Collapsed"
Margin="5 15 5 10"
FontSize="16"
TextWrapping="Wrap"
Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.CopyDisclaimer}"
Foreground="{DynamicResource FontColor.Menu.Categories}" />
</StackPanel>
</ScrollViewer>
</UserControl>