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

@@ -103,13 +103,13 @@
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
@@ -604,7 +604,7 @@
<TextBlock Grid.Row="7" Grid.ColumnSpan="3"
x:Name="txtAuthenticationError"
Text="Sie konnten nicht angemeldet werden. Bitte ändern Sie ihre Angaben für eine gültige Anmeldung."
Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=M42Settings.AutenticationError}"
Grid.Column="0"
Margin="10 3 0 3"
Foreground="Red"

View File

@@ -348,6 +348,26 @@
</Grid>
<StackPanel x:Name="UseGamificationLabel"
Orientation="Horizontal">
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Menu.UseGamification}" />
<ico:AdaptableIcon x:Name="UseGamifictationPolicy"
SelectedInternIcon="lock_closed"
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
BorderPadding="0"
Margin="-20 0 0 0"
IconWidth="12"
IconHeight="12"
Visibility="Collapsed" />
</StackPanel>
<CheckBox x:Name="UseGamificationCheckBox"
Style="{DynamicResource ToggleSwitch}"
IsChecked="{Binding ElementName=SettingsWindow, Path=UseGamification}"
HorizontalAlignment="Left"
Margin="0,3,0,10">
</CheckBox>
</StackPanel>
</Border>

View File

@@ -1,34 +1,19 @@
using C4IT.MultiLanguage;
using C4IT.Configuration;
using C4IT.FASD.Base;
using C4IT.MultiLanguage;
using F4SD_AdaptableIcon.Enums;
using FasdDesktopUi.Basics;
using FasdDesktopUi.Basics.Enums;
using FasdDesktopUi.Basics.Models;
using FasdDesktopUi.Basics.UserControls.AdaptableIcon;
using FasdDesktopUi.Pages.DetailsPage;
using FasdDesktopUi.Pages.SlimPage;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using static C4IT.Logging.cLogManager;
using System.Reflection;
using C4IT.Logging;
using System.Windows.Navigation;
using F4SD_AdaptableIcon.Enums;
using FasdDesktopUi.Basics;
using System.Diagnostics;
using C4IT.Configuration;
namespace FasdDesktopUi.Pages.SettingsPage
{
@@ -36,11 +21,10 @@ namespace FasdDesktopUi.Pages.SettingsPage
{
#region Properties
private static SettingsPageView _Instance = null;
public static SettingsPageView Instance { get
{
return _Instance ?? (_Instance = new SettingsPageView());
}
private static SettingsPageView _instance = null;
public static SettingsPageView Instance
{
get { return _instance ?? (_instance = new SettingsPageView()); }
}
private Dictionary<enumHighlightColor, bool> highlightColorActivationStatus;
@@ -104,7 +88,8 @@ namespace FasdDesktopUi.Pages.SettingsPage
public int PositionOfSmallViews
{
get {
get
{
return cF4sdGlobalConfig.ConvertHorizontalAlignmentToPosition(cFasdCockpitConfig.Instance.Global.SmallViewAlignment, 0);
}
set
@@ -152,6 +137,18 @@ namespace FasdDesktopUi.Pages.SettingsPage
}
}
public bool UseGamification
{
get => cFasdCockpitConfig.Instance.Global.UseGamification;
set
{
cFasdCockpitConfig.Instance.Global.UseGamification = value;
cFasdCockpitConfig.Instance.Global.Save(nameof(cFasdCockpitConfig.Instance.Global.UseGamification));
cFasdCockpitConfig.Instance.OnUiSettingsChanged();
OnPropertyChanged(nameof(UseGamification));
}
}
#endregion
public static SettingsPageView Create()
@@ -184,7 +181,7 @@ namespace FasdDesktopUi.Pages.SettingsPage
FavouritePositionRightTextBlock.ClearValue(ForegroundProperty);
FavouritePositionSlider.SetResourceReference(BackgroundProperty, "Color.FunctionMarker");
break;
case 2:
case 2:
FavouritePositionRightTextBlock.SetResourceReference(ForegroundProperty, "Color.FunctionMarker");
FavouritePositionLeftTextBlock.ClearValue(ForegroundProperty);
break;
@@ -233,86 +230,30 @@ namespace FasdDesktopUi.Pages.SettingsPage
ZoomDetailsPageInPecent = cFasdCockpitConfig.Instance.DetailsPageZoom;
ZoomSlimPageInPercent = cFasdCockpitConfig.Instance.SlimPageZoom;
// hide or deactivate ShouldSkipSlimView options due to the policies
var _policy = cFasdCockpitConfig.Instance.Global.GetPropertyPolicy("ShouldSkipSlimView");
if (_policy == enumConfigPolicy.Hidden)
{
ShouldSkipSlimViewLabel.Visibility = Visibility.Collapsed;
ShouldSkipSlimViewCheckBox.Visibility = Visibility.Collapsed;
}
else
{
ShouldSkipSlimViewLabel.Visibility = Visibility.Visible;
ShouldSkipSlimViewCheckBox.Visibility = Visibility.Visible;
}
if (_policy == enumConfigPolicy.Default)
{
ShouldSkipSlimViewCheckBox.IsEnabled = true;
ShouldSkipSlimViewPolicy.Visibility = Visibility.Collapsed;
ShouldSkipSlimViewCheckBox.ToolTip = null;
ShouldSkipSlimViewPolicy.ToolTip = null;
}
else
{
ShouldSkipSlimViewCheckBox.IsEnabled = false;
ShouldSkipSlimViewPolicy.Visibility = Visibility.Visible;
ShouldSkipSlimViewCheckBox.ToolTip = cMultiLanguageSupport.GetItem("Settings.Global.PolicyTooltip");
ShouldSkipSlimViewPolicy.ToolTip = cMultiLanguageSupport.GetItem("Settings.Global.PolicyTooltip");
}
UpdatePolicyElements("ShouldSkipSlimView", ShouldSkipSlimViewLabel, ShouldSkipSlimViewCheckBox, ShouldSkipSlimViewPolicy);
OnPropertyChanged(nameof(ShouldSkipSlimView));
// hide or deactivate SmallViewAlignment options due to the policies
_policy = cFasdCockpitConfig.Instance.Global.GetPropertyPolicy("SmallViewAlignment");
if (_policy == enumConfigPolicy.Hidden)
{
PositionOfSmallViewsLabel.Visibility = Visibility.Collapsed;
PositionOfSmallViewsInput.Visibility = Visibility.Collapsed;
}
else
{
PositionOfSmallViewsLabel.Visibility = Visibility.Visible;
PositionOfSmallViewsInput.Visibility = Visibility.Visible;
}
if (_policy == enumConfigPolicy.Default)
{
PositionOfSmallViewsInput.IsEnabled = true;
PositionOfSmallViewsPolicy.Visibility = Visibility.Collapsed;
PositionOfSmallViewsPolicy.ToolTip = null;
}
else
{
PositionOfSmallViewsInput.IsEnabled = false;
PositionOfSmallViewsPolicy.Visibility = Visibility.Visible;
PositionOfSmallViewsPolicy.ToolTip = cMultiLanguageSupport.GetItem("Settings.Global.PolicyTooltip");
}
UpdatePolicyElements("SmallViewAlignment", PositionOfSmallViewsLabel, PositionOfSmallViewsInput, PositionOfSmallViewsPolicy);
OnPropertyChanged(nameof(PositionOfSmallViews));
// hide or deactivate FavouriteBarAlignment options due to the policies
_policy = cFasdCockpitConfig.Instance.Global.GetPropertyPolicy("FavouriteBarAlignment");
if (_policy == enumConfigPolicy.Hidden)
{
PositionOfFavouriteBarLabel.Visibility = Visibility.Collapsed;
PositionOfFavouriteBarInput.Visibility = Visibility.Collapsed;
}
else
{
PositionOfFavouriteBarLabel.Visibility = Visibility.Visible;
PositionOfFavouriteBarInput.Visibility = Visibility.Visible;
}
if (_policy == enumConfigPolicy.Default)
{
PositionOfFavouriteBarInput.IsEnabled = true;
PositionOfFavouriteBarPolicy.Visibility = Visibility.Collapsed;
PositionOfFavouriteBarPolicy.ToolTip = null;
}
else
{
PositionOfFavouriteBarInput.IsEnabled = false;
PositionOfFavouriteBarPolicy.Visibility = Visibility.Visible;
PositionOfFavouriteBarPolicy.ToolTip = cMultiLanguageSupport.GetItem("Settings.Global.PolicyTooltip");
}
UpdatePolicyElements("FavouriteBarAlignment", PositionOfFavouriteBarLabel, PositionOfFavouriteBarInput, PositionOfFavouriteBarPolicy);
OnPropertyChanged(nameof(PositionOfFavouriteBar));
UpdatePolicyElements(nameof(cFasdCockpitConfig.Instance.Global.UseGamification), UseGamificationLabel, UseGamificationCheckBox, UseGamifictationPolicy);
OnPropertyChanged(nameof(cFasdCockpitConfig.Instance.Global.UseGamification));
void UpdatePolicyElements(string policyName, FrameworkElement label, FrameworkElement control, FrameworkElement policyElement)
{
enumConfigPolicy policy = cFasdCockpitConfig.Instance.Global.GetPropertyPolicy(policyName);
label.Visibility = policy == enumConfigPolicy.Hidden ? Visibility.Collapsed : Visibility.Visible;
control.Visibility = policy == enumConfigPolicy.Hidden ? Visibility.Collapsed : Visibility.Visible;
control.IsEnabled = policy == enumConfigPolicy.Default;
policyElement.Visibility = policy == enumConfigPolicy.Default ? Visibility.Collapsed : Visibility.Visible;
policyElement.ToolTip = policy == enumConfigPolicy.Default ? null : cMultiLanguageSupport.GetItem("Settings.Global.PolicyTooltip");
}
}
public void SetUpSettingsControls()
@@ -872,7 +813,7 @@ namespace FasdDesktopUi.Pages.SettingsPage
{
try
{
_Instance = null;
_instance = null;
if (cSupportCaseDataProvider.detailsPage?.Visibility == Visibility.Visible)
await cSupportCaseDataProvider.detailsPage.AdjustWindowSizeAsync();
}