Add simplified ticket completion flow
This commit is contained in:
@@ -104,6 +104,13 @@ namespace FasdDesktopUi.Basics.UserControls
|
||||
public bool AreCaseNotesMandatory =>
|
||||
cFasdCockpitConfig.Instance?.Global?.TicketConfiguration?.NotesMandatory ?? false;
|
||||
|
||||
private bool UseSimplifiedCaseCompletionDialog =>
|
||||
cFasdCockpitConfig.Instance?.Global?.TicketConfiguration?.UseSimplifiedCaseCompletionDialog == true;
|
||||
|
||||
private enumTicketExternalOpenMode SimplifiedCaseCompletionTicketOpenMode =>
|
||||
cFasdCockpitConfig.Instance?.Global?.TicketConfiguration?.SimplifiedCaseCompletionTicketOpenMode
|
||||
?? enumTicketExternalOpenMode.Preview;
|
||||
|
||||
private static class TicketInfoKeys
|
||||
{
|
||||
public const string ActivityType = "ActivityType";
|
||||
@@ -531,6 +538,8 @@ namespace FasdDesktopUi.Basics.UserControls
|
||||
|
||||
private void CloseCaseDialogWithTicket_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
UpdateTicketComponentVisibility();
|
||||
|
||||
Window _parentWindow = Window.GetWindow(this);
|
||||
|
||||
if (!(_parentWindow is TicketCompletion _msgBox))
|
||||
@@ -623,10 +632,17 @@ namespace FasdDesktopUi.Basics.UserControls
|
||||
return;
|
||||
|
||||
var _isVisible = checkTicketActive() && !_skipTicketPillSelected;
|
||||
var useSimplifiedDialog = _isVisible && UseSimplifiedCaseCompletionDialog;
|
||||
|
||||
if (useSimplifiedDialog)
|
||||
SelectSaveTicketAction();
|
||||
|
||||
TicketSelectionCategory.Visibility = _isVisible ? Visibility.Visible : Visibility.Collapsed;
|
||||
StatusSelectionBorder.Visibility = _isVisible ? Visibility.Visible : Visibility.Collapsed;
|
||||
StatusSelectionBorder.Visibility = _isVisible && !useSimplifiedDialog ? Visibility.Visible : Visibility.Collapsed;
|
||||
CopyDisclaimerTextBox.Visibility = _isVisible ? Visibility.Collapsed : Visibility.Visible;
|
||||
|
||||
if (!_isVisible || useSimplifiedDialog)
|
||||
DynamicStatusAdditionBorder.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
@@ -634,6 +650,21 @@ namespace FasdDesktopUi.Basics.UserControls
|
||||
}
|
||||
}
|
||||
|
||||
private void SelectSaveTicketAction()
|
||||
{
|
||||
var saveItem = TicketStatusCombobox.Items
|
||||
.OfType<ComboBoxItem>()
|
||||
.FirstOrDefault(item =>
|
||||
Enum.TryParse(item.Tag?.ToString(), out enumCloseCaseTicketStatus action) &&
|
||||
action == enumCloseCaseTicketStatus.Save);
|
||||
|
||||
if (saveItem != null && !ReferenceEquals(TicketStatusCombobox.SelectedItem, saveItem))
|
||||
TicketStatusCombobox.SelectedItem = saveItem;
|
||||
|
||||
DynamicStatusAdditionBorder.Child = null;
|
||||
DynamicStatusAdditionBorder.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private UIElement GetTicketUiElement(cF4sdApiSearchResultRelation ticketRelation)
|
||||
{
|
||||
try
|
||||
@@ -2011,7 +2042,20 @@ namespace FasdDesktopUi.Basics.UserControls
|
||||
ticketData.AdditionalValues.Add("Dialog.CloseCase.AssetNotFoundInMatrix42", cMultiLanguageSupport.GetItem("Dialog.CloseCase.AssetNotFoundInMatrix42"));
|
||||
ticketData.AdditionalValues.Add("Dialog.CloseCase.ReopenReasonText", cMultiLanguageSupport.GetItem("Dialog.CloseCase.ReopenReasonText"));
|
||||
ticketData.AdditionalValues.Add("Dialog.CloseCase.ReopenReasonTextHtml", cMultiLanguageSupport.GetItem("Dialog.CloseCase.ReopenReasonTextHtml"));
|
||||
var _res = await cFasdCockpitCommunicationBase.Instance.Matrix42TicketFinalization(ticketData);
|
||||
var finalizationResult = await cFasdCockpitCommunicationBase.Instance.FinalizeTicketAsync(ticketData);
|
||||
if (finalizationResult?.Success != true)
|
||||
return false;
|
||||
|
||||
if (UseSimplifiedCaseCompletionDialog &&
|
||||
SimplifiedCaseCompletionTicketOpenMode != enumTicketExternalOpenMode.None &&
|
||||
finalizationResult.TicketId is Guid finalizedTicketId &&
|
||||
finalizedTicketId != Guid.Empty)
|
||||
{
|
||||
await TicketExternalLinkHelper.TryOpenFinalizedTicketExternallyAsync(
|
||||
finalizedTicketId,
|
||||
SimplifiedCaseCompletionTicketOpenMode);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
Reference in New Issue
Block a user