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:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
@@ -8,10 +9,10 @@ using C4IT.Configuration;
|
||||
using C4IT.FASD.Base;
|
||||
using C4IT.FASD.Cockpit.Communication;
|
||||
using C4IT.Logging;
|
||||
using C4IT.XML;
|
||||
|
||||
using FasdDesktopUi.Basics.Enums;
|
||||
using FasdDesktopUi.Config;
|
||||
using FasdDesktopUi.Basics.UiActions.NativeActions;
|
||||
|
||||
|
||||
using static C4IT.Logging.cLogManager;
|
||||
|
||||
@@ -39,6 +40,7 @@ namespace FasdDesktopUi
|
||||
|
||||
[RegConfig]
|
||||
public string SelectedLanguage;
|
||||
public CultureInfo SelectedCulture { get => string.IsNullOrEmpty(SelectedLanguage) ? CultureInfo.CurrentCulture : new CultureInfo(SelectedLanguage); }
|
||||
|
||||
[RegConfig]
|
||||
public enumAppColorMode DetailsPageColorMode = enumAppColorMode.LightMode;
|
||||
@@ -141,7 +143,10 @@ namespace FasdDesktopUi
|
||||
|
||||
public void OnUiSettingsChanged()
|
||||
{
|
||||
UiSettingsChanged?.Invoke(this, EventArgs.Empty);
|
||||
App.Current?.Dispatcher.Invoke(() =>
|
||||
{
|
||||
UiSettingsChanged?.Invoke(this, EventArgs.Empty);
|
||||
});
|
||||
}
|
||||
|
||||
public void SetDetailsPageZoom(int zoom)
|
||||
@@ -168,6 +173,8 @@ namespace FasdDesktopUi
|
||||
{
|
||||
try
|
||||
{
|
||||
AddDefaultMenuItems();
|
||||
|
||||
if (cF4SDCockpitXmlConfig.Instance.MenuSectionConfig?.Sections?.MenuSections != null)
|
||||
{
|
||||
foreach (var menuSection in cF4SDCockpitXmlConfig.Instance.MenuSectionConfig?.Sections?.MenuSections)
|
||||
@@ -180,6 +187,9 @@ namespace FasdDesktopUi
|
||||
{
|
||||
foreach (var quickAction in cF4SDCockpitXmlConfig.Instance.QuickActionConfig?.F4SDQuickActions?.QuickActions)
|
||||
{
|
||||
if (quickAction.Value is FasdNativeQuickAction nativeAction)
|
||||
UpdatePrerequesites(nativeAction);
|
||||
|
||||
InsertMenuItem(quickAction.Key, quickAction.Value);
|
||||
}
|
||||
}
|
||||
@@ -212,8 +222,30 @@ namespace FasdDesktopUi
|
||||
else
|
||||
cF4SDCockpitXmlConfig.Instance.MenuItems.Add(key, menuItem);
|
||||
}
|
||||
|
||||
void AddDefaultMenuItems()
|
||||
{
|
||||
InsertMenuItem(cCopyTemplate.DefaultSectionName, new cFasdMenuSection()
|
||||
{
|
||||
IsValid = true,
|
||||
TechName = cCopyTemplate.DefaultSectionName,
|
||||
Names = new C4IT.MultiLanguage.cMultiLanguageDictionary() { ["EN"] = "Copy content", ["DE"] = "Inhalte kopieren" },
|
||||
Icon = new cFasdIcon(enumInternIcon.menuBar_copy)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdatePrerequesites(FasdNativeQuickAction nativeAction)
|
||||
{
|
||||
switch (nativeAction.NativeName)
|
||||
{
|
||||
case RemoteConnectionAction.NativeActionName:
|
||||
RemoteConnectionAction.UpdatePrerequesites(nativeAction);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetGlobalTranslations()
|
||||
{
|
||||
@@ -315,40 +347,40 @@ namespace FasdDesktopUi
|
||||
return false;
|
||||
}
|
||||
|
||||
public async Task<cCollectorStatusInfo> CheckCollectorStatusAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var _res = await cFasdCockpitCommunicationBase.Instance.CheckCollectorStatusAsync();
|
||||
if(_res != null)
|
||||
public async Task<cCollectorStatusInfo> CheckCollectorStatusAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var _res = await cFasdCockpitCommunicationBase.Instance.CheckCollectorStatusAsync();
|
||||
if (_res != null)
|
||||
return _res;
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public bool HasM42Configuration()
|
||||
{
|
||||
try
|
||||
{
|
||||
return !string.IsNullOrWhiteSpace(cCockpitConfiguration.Instance?.m42ServerConfiguration?.Server);
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public async Task InstantiateAnalyticsAsync(Guid SessionId)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public bool HasM42Configuration()
|
||||
{
|
||||
try
|
||||
{
|
||||
return !string.IsNullOrWhiteSpace(cCockpitConfiguration.Instance?.m42ServerConfiguration?.Server);
|
||||
}
|
||||
catch (Exception E)
|
||||
{
|
||||
LogException(E);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public async Task InstantiateAnalyticsAsync(Guid SessionId)
|
||||
{
|
||||
try
|
||||
{
|
||||
IsAnalyticsActive = await cFasdCockpitCommunicationBase.Instance.IsAnalyticsModuleActive();
|
||||
if (IsAnalyticsActive)
|
||||
{
|
||||
@@ -403,7 +435,7 @@ namespace FasdDesktopUi
|
||||
var apiResult = await cFasdCockpitCommunicationBase.Instance.GetQuickActionsOfAgent();
|
||||
List<string> quickActionsToRemove = new List<string>();
|
||||
|
||||
foreach (var quickActionKeyValuePair in cF4SDCockpitXmlConfig.Instance?.QuickActionConfig?.F4SDQuickActions.QuickActions)
|
||||
foreach (var quickActionKeyValuePair in cF4SDCockpitXmlConfig.Instance?.QuickActionConfig?.F4SDQuickActions?.QuickActions)
|
||||
{
|
||||
var quickAction = quickActionKeyValuePair.Value;
|
||||
if (!(quickAction is cF4sdQuickActionRemote remoteQuickAction))
|
||||
@@ -497,8 +529,6 @@ namespace FasdDesktopUi
|
||||
{
|
||||
quickActionsToRemove.Add(quickActionKeyValuePair.Key);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
foreach (var quickAction in quickActionsToRemove)
|
||||
|
||||
Reference in New Issue
Block a user