feat: expand cockpit integrations and support workflows

Add Phoenix remote desktop, action connector, documentation engine, and gamification support. Refactor support-case processing and search/action UI, and update installer assets and dependencies.
This commit is contained in:
Meik
2026-07-13 11:16:53 +02:00
parent bbedbf71c8
commit 0b52999b1d
303 changed files with 11235 additions and 3580 deletions

View File

@@ -8,6 +8,7 @@
xmlns:ico="clr-namespace:FasdDesktopUi.Basics.UserControls.AdaptableIcon;assembly=F4SD-AdaptableIcon"
xmlns:uc="clr-namespace:FasdDesktopUi.Pages.DetailsPage.UserControls"
xmlns:buc="clr-namespace:FasdDesktopUi.Basics.UserControls"
xmlns:bucg="clr-namespace:FasdDesktopUi.Basics.UserControls.Gamification"
xmlns:quc="clr-namespace:FasdDesktopUi.Basics.UserControls.QuickTip"
xmlns:vm="clr-namespace:FasdDesktopUi.Pages.DetailsPage.ViewModels"
xmlns:vc="clr-namespace:FasdDesktopUi.Basics.Converter"
@@ -84,93 +85,99 @@
Grid.Row="0"
Panel.ZIndex="2"
PreviewMouseLeftButtonDown="Header_PreviewMouseLeftButtonDown">
<DockPanel LastChildFill="False"
Margin="0,-7,0,0">
<Grid>
<DockPanel LastChildFill="False"
Margin="0,-7,0,0">
<Border x:Name="DialogCloseElement"
x:FieldModifier="private"
DockPanel.Dock="Bottom"
HorizontalAlignment="Right"
Cursor="Hand"
CornerRadius="5"
Margin="0 2.5 7.5 -30"
Padding="10 2.5"
Background="{DynamicResource BackgroundColor.DetailsPage.Widget.Value}"
MouseLeftButtonUp="CloseCaseWithTicketIcon_MouseLeftButtonUp"
TouchDown="CloseCaseWithTicketIcon_TouchDown">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<ico:AdaptableIcon x:Name="CloseCaseWithTicketIcon"
x:FieldModifier="private"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Margin="0 0 5 0"
Panel.ZIndex="2"
BorderPadding="0"
IconHeight="25"
IconWidth="25"
SelectedMaterialIcon="ic_mail">
<ico:AdaptableIcon.Resources>
<Style TargetType="ico:AdaptableIcon">
<Setter Property="PrimaryIconColor"
Value="{DynamicResource FontColor.Menu.Categories}" />
<Border x:Name="DialogCloseElement"
x:FieldModifier="private"
DockPanel.Dock="Bottom"
HorizontalAlignment="Right"
Cursor="Hand"
CornerRadius="5"
Margin="0 2.5 7.5 -30"
Padding="10 2.5"
Background="{DynamicResource BackgroundColor.DetailsPage.Widget.Value}"
MouseLeftButtonUp="CloseCaseWithTicketIcon_MouseLeftButtonUp"
TouchDown="CloseCaseWithTicketIcon_TouchDown">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<ico:AdaptableIcon x:Name="CloseCaseWithTicketIcon"
x:FieldModifier="private"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Margin="0 0 5 0"
Panel.ZIndex="2"
BorderPadding="0"
IconHeight="25"
IconWidth="25"
SelectedMaterialIcon="ic_mail">
<ico:AdaptableIcon.Resources>
<Style TargetType="ico:AdaptableIcon">
<Setter Property="PrimaryIconColor"
Value="{DynamicResource FontColor.Menu.Categories}" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorLevel=1, AncestorType=Border}, Path=IsMouseOver}"
Value="True">
<Setter Property="PrimaryIconColor"
Value="{DynamicResource FontColor.Menu.Categories.Hover}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ico:AdaptableIcon.Resources>
</ico:AdaptableIcon>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorLevel=1, AncestorType=Border}, Path=IsMouseOver}"
Value="True">
<Setter Property="PrimaryIconColor"
Value="{DynamicResource FontColor.Menu.Categories.Hover}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ico:AdaptableIcon.Resources>
</ico:AdaptableIcon>
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase}">
<TextBlock.Resources>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment"
Value="Center" />
<Setter Property="FontSize"
Value="16" />
<Setter Property="Foreground"
Value="{DynamicResource FontColor.Menu.Categories}" />
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase}">
<TextBlock.Resources>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment"
Value="Center" />
<Setter Property="FontSize"
Value="16" />
<Setter Property="Foreground"
Value="{DynamicResource FontColor.Menu.Categories}" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorLevel=1, AncestorType=Border}, Path=IsMouseOver}"
Value="True">
<Setter Property="Foreground"
Value="{DynamicResource FontColor.Menu.Categories.Hover}" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Resources>
</TextBlock>
</StackPanel>
</Border>
<StackPanel DockPanel.Dock="Right"
Orientation="Horizontal"
HorizontalAlignment="Right">
<Border x:Name="ZoomValueBorder"
Grid.Row="1"
Margin="0 10 10 0"
Opacity="0"
CornerRadius="7.5"
Padding="10 5"
Background="{DynamicResource Color.SoftContrast}">
<TextBlock x:Name="ZoomValueTextBlock"
Foreground="{DynamicResource FontColor.DetailsPage.DataHistory.Value}"
FontWeight="Bold"
FontSize="20" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorLevel=1, AncestorType=Border}, Path=IsMouseOver}"
Value="True">
<Setter Property="Foreground"
Value="{DynamicResource FontColor.Menu.Categories.Hover}" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Resources>
</TextBlock>
</StackPanel>
</Border>
<uc:DetailsPageWindowStateBar x:Name="WindowStateBarUserControl" />
</StackPanel>
<StackPanel DockPanel.Dock="Right"
Orientation="Horizontal"
HorizontalAlignment="Right">
</DockPanel>
<Border x:Name="ZoomValueBorder"
Grid.Row="1"
Margin="0 10 10 0"
Opacity="0"
CornerRadius="7.5"
Padding="10 5"
Background="{DynamicResource Color.SoftContrast}">
<TextBlock x:Name="ZoomValueTextBlock"
Foreground="{DynamicResource FontColor.DetailsPage.DataHistory.Value}"
FontWeight="Bold"
FontSize="20" />
</Border>
<uc:DetailsPageWindowStateBar x:Name="WindowStateBarUserControl" />
</StackPanel>
</DockPanel>
<bucg:LevelTracker x:Name="LevelTrackerUc"
DockPanel.Dock="Top"
HorizontalAlignment="Left"
VerticalAlignment="Bottom" />
</Grid>
</Border>
<Border x:Name="Body"
@@ -214,7 +221,7 @@
VerticalAlignment="Top"
HorizontalAlignment="Left"
Grid.RowSpan="3"
Panel.ZIndex="1"/>
Panel.ZIndex="1" />
<uc:DetailsPageWidgetCollection x:Name="WidgetCollection"
Grid.Row="1"
@@ -235,7 +242,8 @@
MaxWidth="300"
MinWidth="280"
VerticalAlignment="Top"
IsVisibleChanged="DynamicElement_IsVisibleChanged" />
IsVisibleChanged="DynamicElement_IsVisibleChanged"
SearchValueChanged="QuickActionSelectorUc_SearchValueChanged" />
<DockPanel LastChildFill="True">
@@ -246,13 +254,6 @@
Visibility="Collapsed"
IsVisibleChanged="DynamicElement_IsVisibleChanged" />
<Decorator x:Name="NotepadDecorator"
DockPanel.Dock="Right"
MaxWidth="400"
Margin="19 27.5 0 0"
Visibility="Visible"
IsVisibleChanged="DynamicElement_IsVisibleChanged" />
<Decorator x:Name="QuickTipDecorator"
DockPanel.Dock="Right"
MaxWidth="400"
@@ -265,6 +266,13 @@
</Decorator>
<Decorator x:Name="NotepadDecorator"
DockPanel.Dock="Right"
MaxWidth="400"
Margin="19 27.5 0 0"
Visibility="Visible"
IsVisibleChanged="DynamicElement_IsVisibleChanged" />
<uc:DetailsPageDataHistoryCollection x:Name="DataHistoryCollectionUserControl"
DockPanel.Dock="Left"
HorizontalAlignment="Left"
@@ -307,10 +315,16 @@
<buc:MenuBar x:Name="MenuBarUserControl"
x:FieldModifier="private"
MenuBarItemData="{Binding MenuBarData}" />
<buc:SearchBar x:Name="SearchBarUserControl"
x:FieldModifier="private"
Visibility="Collapsed"
HorizontalAlignment="Right" />
<buc:InformationClassSearchBar x:Name="SearchBarUserControl"
x:FieldModifier="private"
Visibility="Collapsed"
HorizontalAlignment="Right" />
<buc:FooterButton x:Name="FooterBtn"
x:FieldModifier="private"
Visibility="Collapsed"
VerticalAlignment="Bottom"
HorizontalAlignment="Center" />
<StackPanel x:Name="IconTimerPanel"
Orientation="Horizontal"
@@ -327,7 +341,6 @@
VerticalAlignment="Bottom"
Margin="15 -2.5"
OnPauseStarted="CaseTimer_OnPauseStarted" />
</StackPanel>
</Grid>
</Border>

View File

@@ -1,37 +1,37 @@
using System;
using C4IT.FASD.Base;
using C4IT.FASD.Cockpit.Communication;
using C4IT.MultiLanguage;
using FasdDesktopUi.Basics;
using FasdDesktopUi.Basics.Converter;
using FasdDesktopUi.Basics.CustomEvents;
using FasdDesktopUi.Basics.Helper;
using FasdDesktopUi.Basics.Models;
using FasdDesktopUi.Basics.Services.SupportCase.Controllers;
using FasdDesktopUi.Basics.UiActions;
using FasdDesktopUi.Basics.UserControls;
using FasdDesktopUi.Basics.UserControls.QuickTip;
using FasdDesktopUi.Pages.DetailsPage.Models;
using FasdDesktopUi.Pages.DetailsPage.UserControls;
using FasdDesktopUi.Pages.DetailsPage.ViewModels;
using FasdDesktopUi.Pages.SettingsPage;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media.Effects;
using System.Windows.Controls;
using System.Threading.Tasks;
using System.Windows.Media.Animation;
using System.Windows.Threading;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Shell;
using FasdDesktopUi.Basics;
using FasdDesktopUi.Basics.UiActions;
using FasdDesktopUi.Basics.UserControls;
using FasdDesktopUi.Basics.Models;
using FasdDesktopUi.Basics.Helper;
using FasdDesktopUi.Pages.SettingsPage;
using FasdDesktopUi.Pages.DetailsPage.Models;
using FasdDesktopUi.Pages.DetailsPage.ViewModels;
using FasdDesktopUi.Pages.DetailsPage.UserControls;
using C4IT.FASD.Base;
using C4IT.MultiLanguage;
using System.Windows.Threading;
using static C4IT.Logging.cLogManager;
using F4SD_AdaptableIcon.Enums;
using FasdDesktopUi.Basics.CustomEvents;
using FasdDesktopUi.Basics.Converter;
using FasdDesktopUi.Basics.Services.SupportCase.Controllers;
using static System.Windows.Forms.AxHost;
namespace FasdDesktopUi.Pages.DetailsPage
{
@@ -107,7 +107,7 @@ namespace FasdDesktopUi.Pages.DetailsPage
case SettingsPageBase _:
case CustomMessageBox.CustomMessageBox _:
case TicketCompletion.TicketCompletion _:
case SearchBar _:
case InformationClassSearchBar _:
case SuccessPage.SuccessPage _:
case BlurInvokerContainer _:
return true;
@@ -201,8 +201,8 @@ namespace FasdDesktopUi.Pages.DetailsPage
}
private void HandleAvailableRelationsAdded(object sender, RelationEventArgs e)
{
}
=> Dispatcher.Invoke(() => NavigationHeadingUc.HeadingData = _supportCaseController.GetHeadingData().ToList());
private void HandleFocusedRelationsChanged(object sender, RelationEventArgs e)
{
@@ -234,15 +234,15 @@ namespace FasdDesktopUi.Pages.DetailsPage
isDataChangedEventRunning = true;
Dispatcher.Invoke(() =>
Dispatcher.Invoke(async () =>
{
if (QuickActionDecorator.Child is DataCanvas dataCanvas)
Dispatcher.Invoke(async () => await dataCanvas.UpdateDataAsync());
_ = Dispatcher.Invoke(async () => await dataCanvas.UpdateDataAsync());
if (WidgetCollection.WidgetDataList is null || WidgetCollection.WidgetDataList.Count == 0)
WidgetCollection.WidgetDataList = _supportCaseController?.GetWidgetData();
WidgetCollection.WidgetDataList = _supportCaseController?.GetWidgetsData();
WidgetCollection.UpdateWidgetData(_supportCaseController?.GetWidgetData());
WidgetCollection.UpdateWidgetData(_supportCaseController?.GetWidgetsData());
if (DataHistoryCollectionUserControl.HistoryDataList is null || DataHistoryCollectionUserControl.HistoryDataList.Count == 0)
DataHistoryCollectionUserControl.HistoryDataList = _supportCaseController?.GetHistoryData();
@@ -255,7 +255,9 @@ namespace FasdDesktopUi.Pages.DetailsPage
CustomizableSectionUc.UpdateContainerCollection(_supportCaseController?.GetContainerData());
if (this.DataContext is DetailsPageViewModel viewModel)
viewModel.MenuBarData = _supportCaseController?.GetMenuBarData();
viewModel.MenuBarData = _supportCaseController?.GetMenuData().ToList();
UpdateQuickActionSelectorVisibility();
if (_lastDesiredHeightOfWidgetCollection != WidgetCollection.DesiredSize.Height)
{
@@ -263,6 +265,10 @@ namespace FasdDesktopUi.Pages.DetailsPage
MainGrid.InvalidateMeasure();
MainGrid.UpdateLayout();
}
var footerMenuData = _supportCaseController.GetMenuData().FirstOrDefault(data => data.UiAction is UiNativeQuickAction);
FooterBtn.QuickAction = footerMenuData?.UiAction as cUiQuickAction;
FooterBtn.LabelText = footerMenuData?.MenuText;
});
if (shouldReRunDataChangedEvent)
@@ -275,6 +281,41 @@ namespace FasdDesktopUi.Pages.DetailsPage
}
}
private void UpdateQuickActionSelectorVisibility()
{
try
{
cHealthCard selectedHealthcard = _supportCaseController.SupportCaseDataProviderArtifact.HealthCardDataHelper.SelectedHealthCard;
bool showHistorySection = selectedHealthcard.CategoriesHistory?.StateCategories != null && selectedHealthcard.CategoriesHistory.StateCategories.Count > 0;
if (showHistorySection && cFasdCockpitConfig.Instance.IsHistoryQuickActionSelectorVisible)
{
QuickActionSelectorUc.IsLocked = cFasdCockpitConfig.Instance.IsHistoryQuickActionSelectorVisible;
MoreButtonClickedAction();
}
else if (!showHistorySection && cFasdCockpitConfig.Instance.IsCustomizableQuickActionSelectorVisible)
{
var ticketMenuData = _supportCaseController.GetMenuData().FirstOrDefault(menuData => menuData.MenuText == "Ticket");
if (ticketMenuData != null)
if (ticketMenuData is cMenuDataContainer containerMenuData)
{
QuickActionSelectorUc.QuickActionSelectorHeading = containerMenuData.MenuText;
QuickActionSelectorUc.QuickActionList = containerMenuData.SubMenuData;
}
QuickActionSelectorUc.IsLocked = cFasdCockpitConfig.Instance.IsCustomizableQuickActionSelectorVisible;
if (cFasdCockpitConfig.Instance.IsCustomizableQuickActionSelectorVisible)
QuickActionSelectorUc.Visibility = Visibility.Visible;
}
}
catch (Exception ex)
{
LogException(ex);
}
}
/// <summary>
/// Sets the visibility of History and Customizable Section based on the currently selected Healthcard.
/// </summary>
@@ -597,6 +638,7 @@ namespace FasdDesktopUi.Pages.DetailsPage
// define drawing area
UIElement drawingArea = this;
switch (e.UiAction)
{
case cChangeHealthCardAction _:
@@ -604,6 +646,11 @@ namespace FasdDesktopUi.Pages.DetailsPage
case UiShowRawHealthcardValues _:
break;
case cUiQuickAction _:
if (!(e.OriginalSource is QuickTipStep) && QuickTipStatusMonitorUc.IsVisible && !QuickTipStatusMonitorUc.TryCancelQuickTip())
return;
drawingArea = QuickActionDecorator;
ToggleHorizontalCollapse(true, true);
break;
case cShowRecommendationAction _:
case cShowDetailedDataAction _:
drawingArea = QuickActionDecorator;
@@ -678,7 +725,7 @@ namespace FasdDesktopUi.Pages.DetailsPage
{
IconTimerPanel.HorizontalAlignment = HorizontalAlignment.Right;
IconTimerPanel.Children.Remove(F4SDIcon);
IconTimerPanel.Children.Insert(1, F4SDIcon);
IconTimerPanel.Children.Insert(IconTimerPanel.Children.Count, F4SDIcon);
}
else
{
@@ -687,6 +734,7 @@ namespace FasdDesktopUi.Pages.DetailsPage
IconTimerPanel.Children.Insert(0, F4SDIcon);
}
FooterBtn.HorizontalAlignment = cFasdCockpitConfig.Instance.Global.FavouriteBarAlignment == enumF4sdHorizontalAlignment.Center ? HorizontalAlignment.Right : HorizontalAlignment.Center;
MenuBarUserControl.HorizontalAlignment = InternalEnumConverter.GetHorizontalAlignment(cFasdCockpitConfig.Instance.Global.FavouriteBarAlignment);
}
catch (Exception E)
@@ -699,6 +747,7 @@ namespace FasdDesktopUi.Pages.DetailsPage
{
UpdateHistoryWidth();
UpdateFooterPositions();
LevelTrackerUc.Visibility = cFasdCockpitConfig.Instance.Global.UseGamification ? Visibility.Visible : Visibility.Collapsed;
}
private void ApiConnectionStatusChanged(cConnectionStatusHelper.enumOnlineStatus? Status)
@@ -923,13 +972,27 @@ namespace FasdDesktopUi.Pages.DetailsPage
break;
}
return;
}
// Close Quick Action Section
if (e.Key == Key.Escape && QuickActionSelectorUc.Visibility == Visibility.Visible)
{
CloseQuickActionSelector();
return;
}
if (FocusManager.GetFocusedElement(this) is TextBox)
return;
bool isTextInputFocused = FocusManager.GetFocusedElement(this) is TextBox || FocusManager.GetFocusedElement(this) is RichTextBox;
if (FocusManager.GetFocusedElement(this) is RichTextBox)
// Open Quick Action Section
if (e.Key == Key.Q && !isTextInputFocused)
{
MoreButtonClickedAction();
e.Handled = true;
return;
}
if (isTextInputFocused)
return;
List<DetailsPageDataHistorySection> unpinnedDataHistories = DataHistoryCollectionUserControl.HistorySectionControls.Where(x => !x.IsVerticalExpandLocked).ToList();
@@ -970,9 +1033,6 @@ namespace FasdDesktopUi.Pages.DetailsPage
if (Keyboard.Modifiers == ModifierKeys.Control)
SearchButtonClickedAction();
break;
case Key.Q:
MoreButtonClickedAction();
break;
case Key.NumPad0:
case Key.D0:
if (Keyboard.Modifiers != ModifierKeys.Control)
@@ -1177,8 +1237,6 @@ namespace FasdDesktopUi.Pages.DetailsPage
{
tempSubMenuList.Add(new cMenuDataBase(copyTemplate.Value));
}
tempMoreQuickActionList.Insert(0, new cMenuDataContainer() { MenuText = cMultiLanguageSupport.GetItem("QuickAction.CopyContent"), MenuIcon = new F4SD_AdaptableIcon.IconData(enumInternIcons.menuBar_copy), UiAction = new cSubMenuAction(true) { Name = cMultiLanguageSupport.GetItem("QuickAction.CopyContent"), SubMenuData = tempSubMenuList }, SubMenuData = tempSubMenuList });
}
QuickActionSelectorUc.QuickActionList = tempMoreQuickActionList;
@@ -1187,6 +1245,10 @@ namespace FasdDesktopUi.Pages.DetailsPage
ToggleHorizontalCollapse(true);
QuickActionSelectorUc.Visibility = Visibility.Visible;
QuickActionSelectorUc.CloseButtonClickedAction = BlurBorder_Click;
QuickActionSelectorUc.Search.ActivateManualSearch();
QuickActionSelectorUc.Search.FocusInput();
QuickActionSelectorUc.Search.Clear();
}
catch (Exception E)
{
@@ -1256,6 +1318,7 @@ namespace FasdDesktopUi.Pages.DetailsPage
notepad.Visibility = Visibility.Collapsed;
NotepadVisibility = false;
ResetWindowFocus();
ChangeNotepadNotification();
}
else
@@ -1451,6 +1514,29 @@ namespace FasdDesktopUi.Pages.DetailsPage
ReinitializeNotepad();
DataHistoryCollectionUserControl.ToggleVerticalCollapseDetails(true);
UpdateHistoryWidth();
Task.Run(async () =>
{
if (await cFasdCockpitCommunicationBase.Instance.RemoteDesktopManager.IsRemoteDesktopCommunicationAvailable())
Dispatcher.Invoke(() => FooterBtn.Visibility = Visibility.Visible);
});
}
catch (Exception E)
{
LogException(E);
}
}
private void ResetWindowFocus()
{
try
{
Window window = Window.GetWindow(this);
if (window == null)
return;
FocusManager.SetFocusedElement(window, window);
Keyboard.Focus(window);
}
catch (Exception E)
{
@@ -1701,5 +1787,30 @@ namespace FasdDesktopUi.Pages.DetailsPage
QuickActionDecorator.Visibility = Visibility.Collapsed;
}
private void QuickActionSelectorUc_SearchValueChanged(object sender, string e)
{
if (string.IsNullOrWhiteSpace(e))
{
QuickActionSelectorUc.QuickActionList = _supportCaseController.GetMenuData().ToList();
QuickActionSelectorUc.QuickActionSelectorHeading = "Quick Actions";
return;
}
QuickActionSelectorUc.QuickActionList = _supportCaseController.GetFilteredMenuData(new MenuDataFilter(e)).ToList();
}
private void CloseQuickActionSelector()
{
try
{
QuickActionSelectorUc.CloseButton_Click();
QuickActionSelectorUc.Search.Clear();
}
catch (Exception E)
{
LogException(E);
}
}
}
}

View File

@@ -72,7 +72,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
var updatedColumnValues = (DetailsPageDataHistoryColumnModel)e.NewValue;
_me.UpdateColumnSize(updatedColumnValues.ColumnValues.Count - _me.MainGrid.RowDefinitions.Count);
_me.RefreshColumnHeader(updatedColumnValues.Content);
_me.ColumnHeaderTextBlock.Text = updatedColumnValues.Content;
_me.RefreshColumnStatusIcon(updatedColumnValues.HighlightColor);
_me.RefreshValueSection(updatedColumnValues);
}
@@ -155,7 +155,8 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
border.ClearValue(TagProperty);
border.SetResourceReference(StyleProperty, "DetailsPage.DataHistory.ValueBorder");
break;
};
}
;
border.Tag = valueInfo?.ThresholdValues;
}
@@ -163,7 +164,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
{
LogException(E);
}
}
#region Initialize Controls
@@ -276,22 +277,6 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
#region Refresh Values
private void RefreshColumnHeader(string columnHeader)
{
string headerContent;
if (int.TryParse(columnHeader, out int dayIndex))
{
CultureInfo culture = new CultureInfo(cMultiLanguageSupport.CurrentLanguage);
string customDateFormat = cMultiLanguageSupport.GetItem("Global.Date.Format.ShortDateWithDay", "ddd. dd.MM.");
headerContent = dayIndex == 0 ? cMultiLanguageSupport.GetItem("Global.Date.Today", DateTime.Now.ToString(customDateFormat, culture)) : DateTime.Today.AddDays(-dayIndex).ToString(customDateFormat, culture);
}
else
headerContent = columnHeader;
ColumnHeaderTextBlock.Text = headerContent;
}
private void RefreshColumnStatusIcon(enumHighlightColor? statusColor)
{
ColumnStatusIcon.IconWidth = 25;
@@ -386,7 +371,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
default:
valueRowTextBlock.SetResourceReference(ForegroundProperty, "FontColor.DetailsPage.DataHistory.Value");
break;
};
}
valueRow.Visibility = Visibility.Visible;
valueRow.Opacity = 1;

View File

@@ -18,7 +18,6 @@ using C4IT.MultiLanguage;
using C4IT.FASD.Base;
using static C4IT.Logging.cLogManager;
using C4IT.FASD.Cockpit.Communication;
using FasdDesktopUi.Basics.Services.SupportCase.Controllers;
namespace FasdDesktopUi.Pages.DetailsPage.UserControls
@@ -37,7 +36,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
if (value != null)
{
UpdateHeaderHighlights();
SetHeadingVisibility();
_ = SetHeadingVisibilityAsync();
}
}
}
@@ -110,7 +109,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
}
}
private async Task SetHeadingVisibility()
private async Task SetHeadingVisibilityAsync()
{
try
{
@@ -667,19 +666,17 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
List<cMenuDataBase> quickActionList = new List<cMenuDataBase>();
if (dataProvider.CaseRelations != null && dataProvider.CaseRelations.TryGetValue(swapCaseData.SelectedCaseInformationClass, out var storedRelations))
foreach (var storedRelation in SupportCaseController.GetRelationsOf(swapCaseData.SelectedCaseInformationClass))
{
foreach (var storedRelation in storedRelations)
bool isMatchingRelation = IsMatchingRelation(storedRelation, swapCaseData.HeadingDatas);
quickActionList.Add(new cMenuDataSearchRelation(storedRelation)
{
bool isMatchingRelation = IsMatchingRelation(storedRelation, swapCaseData.HeadingDatas);
quickActionList.Add(new cMenuDataSearchRelation(storedRelation)
{
IsMatchingRelation = isMatchingRelation,
IsUsedForCaseEnrichment = true,
UiAction = new cChangeHealthCardAction(storedRelation, supportCaseController)
});
}
IsMatchingRelation = isMatchingRelation,
IsUsedForCaseEnrichment = true,
UiAction = new cChangeHealthCardAction(storedRelation, supportCaseController)
});
}
if (quickActionList.Count > 0)
customMenu.MenuDataList = quickActionList;
}

View File

@@ -414,7 +414,7 @@ namespace FasdDesktopUi.Pages.DetailsPage.UserControls
if (Data.UiActionTitle is cShowDetailedDataAction)
functionMarkerEntry.SelectedIcon = enumInternIcons.misc_dot;
else if (Data.UiActionTitle is cUiQuickAction || Data.UiActionTitle is cSubMenuAction)
else if (Data.UiActionTitle is cUiQuickAction || Data.UiActionTitle is cSubMenuAction || Data.UiActionTitle is cUiQuickTipAction)
functionMarkerEntry.SelectedIcon = enumInternIcons.misc_functionBolt;
}
else