Compare commits
4 Commits
deb8d43911
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7392454a63 | ||
|
|
f89e2de60d | ||
|
|
764a8cffb8 | ||
|
|
e8584c1453 |
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<F4SD-Global-Configuration>
|
||||||
|
<ShouldSkipSlimView Policy="Default" Value="true" />
|
||||||
|
<SmallViewAlignment Policy="Default" Value="Right" />
|
||||||
|
<FavouriteBarAlignment Policy="Default" Value="Right" />
|
||||||
|
<InformationClassSearchPriority Policy="Hidden">
|
||||||
|
<InformationClass Type="User" />
|
||||||
|
<InformationClass Type="Computer" />
|
||||||
|
<InformationClass Type="VirtualSession" />
|
||||||
|
<InformationClass Type="Ticket" />
|
||||||
|
</InformationClassSearchPriority>
|
||||||
|
<TicketConfiguration>
|
||||||
|
<DisableAutomaticTimeTracking Policy="Mandatory" Value="true" />
|
||||||
|
<CompletitionPolicy Policy="Mandatory" Value="IfRequired" />
|
||||||
|
<NotesMandatory Policy="Mandatory" Value="true" />
|
||||||
|
<ShowOverview Policy="Mandatory" Value="true" />
|
||||||
|
<OpenActivitiesExternally Policy="Mandatory" Value="false">
|
||||||
|
<OpenActivityOverride ActivityType="SPSActivityTypeTicket" Value="false" />
|
||||||
|
<OpenActivityOverride ActivityType="SPSActivityTypeServiceRequest" Value="true" />
|
||||||
|
</OpenActivitiesExternally>
|
||||||
|
<OverviewPollingPersonal Policy="Mandatory" Value="10" />
|
||||||
|
<OverviewPollingRole Policy="Mandatory" Value="5" />
|
||||||
|
</TicketConfiguration>
|
||||||
|
</F4SD-Global-Configuration>
|
||||||
@@ -119,6 +119,9 @@
|
|||||||
<Content Include="Config\F4SD-MenuSection-Configuration.xml">
|
<Content Include="Config\F4SD-MenuSection-Configuration.xml">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="Config\F4SD-Global-Configuration.xml">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Include="Config\F4SD-QuickAction-Configuration.xml">
|
<Content Include="Config\F4SD-QuickAction-Configuration.xml">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ using System.IO;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Xml;
|
||||||
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
using FasdCockpitBase.Models;
|
using FasdCockpitBase.Models;
|
||||||
using FasdCockpitCommunicationDemo;
|
using FasdCockpitCommunicationDemo;
|
||||||
|
using C4IT.Configuration;
|
||||||
using C4IT.FASD.Base;
|
using C4IT.FASD.Base;
|
||||||
using static C4IT.Logging.cLogManager;
|
using static C4IT.Logging.cLogManager;
|
||||||
using FasdCockpitBase;
|
using FasdCockpitBase;
|
||||||
@@ -252,6 +254,7 @@ namespace C4IT.FASD.Cockpit.Communication
|
|||||||
TicketId = record.TicketId,
|
TicketId = record.TicketId,
|
||||||
UserId = record.UserId,
|
UserId = record.UserId,
|
||||||
DisplayName = record.DisplayName,
|
DisplayName = record.DisplayName,
|
||||||
|
ActivityType = record.ActivityType,
|
||||||
Summary = record.Summary,
|
Summary = record.Summary,
|
||||||
StatusId = record.StatusId,
|
StatusId = record.StatusId,
|
||||||
UserDisplayName = record.UserDisplayName,
|
UserDisplayName = record.UserDisplayName,
|
||||||
@@ -490,6 +493,9 @@ namespace C4IT.FASD.Cockpit.Communication
|
|||||||
var summary = definition.Summary ?? string.Empty;
|
var summary = definition.Summary ?? string.Empty;
|
||||||
if (detailTicket != null && !string.IsNullOrWhiteSpace(detailTicket.Summary))
|
if (detailTicket != null && !string.IsNullOrWhiteSpace(detailTicket.Summary))
|
||||||
summary = detailTicket.Summary;
|
summary = detailTicket.Summary;
|
||||||
|
var activityType = string.IsNullOrWhiteSpace(definition.ActivityType)
|
||||||
|
? null
|
||||||
|
: definition.ActivityType.Trim();
|
||||||
|
|
||||||
var relation = new cF4sdApiSearchResultRelation
|
var relation = new cF4sdApiSearchResultRelation
|
||||||
{
|
{
|
||||||
@@ -504,7 +510,8 @@ namespace C4IT.FASD.Cockpit.Communication
|
|||||||
["StatusId"] = definition.StatusId ?? string.Empty,
|
["StatusId"] = definition.StatusId ?? string.Empty,
|
||||||
["UserDisplayName"] = definition.UserDisplayName ?? string.Empty,
|
["UserDisplayName"] = definition.UserDisplayName ?? string.Empty,
|
||||||
["UserAccount"] = definition.UserAccount ?? string.Empty,
|
["UserAccount"] = definition.UserAccount ?? string.Empty,
|
||||||
["UserDomain"] = definition.UserDomain ?? string.Empty
|
["UserDomain"] = definition.UserDomain ?? string.Empty,
|
||||||
|
["ActivityType"] = activityType
|
||||||
},
|
},
|
||||||
Identities = new cF4sdIdentityList
|
Identities = new cF4sdIdentityList
|
||||||
{
|
{
|
||||||
@@ -555,6 +562,129 @@ namespace C4IT.FASD.Cockpit.Communication
|
|||||||
return fallbackData.Tickets.FirstOrDefault(ticket => ticket.Id == definition.TicketId);
|
return fallbackData.Tickets.FirstOrDefault(ticket => ticket.Id == definition.TicketId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string ResolveTicketActivityType(string displayName, cF4SDTicket detailTicket = null)
|
||||||
|
{
|
||||||
|
var linkType = TryGetActivityTypeFromTicketLinks(detailTicket);
|
||||||
|
if (!string.IsNullOrWhiteSpace(linkType))
|
||||||
|
return linkType;
|
||||||
|
|
||||||
|
var ticketName = displayName ?? detailTicket?.Name;
|
||||||
|
if (string.IsNullOrWhiteSpace(ticketName))
|
||||||
|
return "SPSActivityTypeTicket";
|
||||||
|
|
||||||
|
if (ticketName.StartsWith("INC", StringComparison.OrdinalIgnoreCase))
|
||||||
|
return "SPSActivityTypeIncident";
|
||||||
|
|
||||||
|
if (ticketName.StartsWith("SRQ", StringComparison.OrdinalIgnoreCase))
|
||||||
|
return "SPSActivityTypeServiceRequest";
|
||||||
|
|
||||||
|
if (ticketName.StartsWith("PRB", StringComparison.OrdinalIgnoreCase))
|
||||||
|
return "SPSActivityTypeGroupTicket";
|
||||||
|
|
||||||
|
if (ticketName.StartsWith("ALT", StringComparison.OrdinalIgnoreCase))
|
||||||
|
return "SPSActivityTypeAlert";
|
||||||
|
|
||||||
|
if (ticketName.StartsWith("CHG", StringComparison.OrdinalIgnoreCase))
|
||||||
|
return "SVMChangeRequestType";
|
||||||
|
|
||||||
|
if (ticketName.StartsWith("TSK", StringComparison.OrdinalIgnoreCase))
|
||||||
|
return "SPSActivityTypeBase";
|
||||||
|
|
||||||
|
return "SPSActivityTypeTicket";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string TryGetActivityTypeFromTicketLinks(cF4SDTicket ticket)
|
||||||
|
{
|
||||||
|
if (ticket?.DirectLinks == null || ticket.DirectLinks.Count == 0)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
foreach (var link in ticket.DirectLinks.Values)
|
||||||
|
{
|
||||||
|
var type = TryGetActivityTypeFromUrl(link);
|
||||||
|
if (!string.IsNullOrWhiteSpace(type))
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string TryGetActivityTypeFromUrl(string url)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(url))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
var markerList = new[] { "preview-object/", "edit-object/", "create-object/" };
|
||||||
|
foreach (var marker in markerList)
|
||||||
|
{
|
||||||
|
var markerIndex = url.IndexOf(marker, StringComparison.OrdinalIgnoreCase);
|
||||||
|
if (markerIndex < 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var start = markerIndex + marker.Length;
|
||||||
|
var end = url.IndexOf('/', start);
|
||||||
|
if (end < 0)
|
||||||
|
end = url.IndexOf('?', start);
|
||||||
|
if (end < 0)
|
||||||
|
end = url.Length;
|
||||||
|
|
||||||
|
if (end <= start)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var activityType = url.Substring(start, end - start).Trim();
|
||||||
|
if (!string.IsNullOrWhiteSpace(activityType))
|
||||||
|
return activityType;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback for view-options based deeplinks.
|
||||||
|
var decodedUrl = Uri.UnescapeDataString(url);
|
||||||
|
const string queryTypeToken = "\"type\":\"";
|
||||||
|
var typeStart = decodedUrl.IndexOf(queryTypeToken, StringComparison.OrdinalIgnoreCase);
|
||||||
|
if (typeStart < 0)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
typeStart += queryTypeToken.Length;
|
||||||
|
var typeEnd = decodedUrl.IndexOf('"', typeStart);
|
||||||
|
if (typeEnd <= typeStart)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
var parsedType = decodedUrl.Substring(typeStart, typeEnd - typeStart).Trim();
|
||||||
|
return string.IsNullOrWhiteSpace(parsedType) ? null : parsedType;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string ResolveDemoM42Server()
|
||||||
|
{
|
||||||
|
foreach (var sampleData in MockupData)
|
||||||
|
{
|
||||||
|
if (sampleData?.Tickets == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
foreach (var ticket in sampleData.Tickets)
|
||||||
|
{
|
||||||
|
if (ticket?.DirectLinks == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
foreach (var link in ticket.DirectLinks.Values)
|
||||||
|
{
|
||||||
|
if (TryExtractServerBase(link, out var serverBase))
|
||||||
|
return serverBase;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return "https://srvwsm001.imagoverum.com";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool TryExtractServerBase(string url, out string serverBase)
|
||||||
|
{
|
||||||
|
serverBase = null;
|
||||||
|
|
||||||
|
if (!Uri.TryCreate(url, UriKind.Absolute, out var uri))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
serverBase = uri.GetLeftPart(UriPartial.Authority);
|
||||||
|
return !string.IsNullOrWhiteSpace(serverBase);
|
||||||
|
}
|
||||||
|
|
||||||
private static Task SimulateTicketOverviewLatencyAsync(int count)
|
private static Task SimulateTicketOverviewLatencyAsync(int count)
|
||||||
{
|
{
|
||||||
int baseMs = 420;
|
int baseMs = 420;
|
||||||
@@ -1128,7 +1258,7 @@ namespace C4IT.FASD.Cockpit.Communication
|
|||||||
|
|
||||||
foreach (var demoTicket in demoTickets)
|
foreach (var demoTicket in demoTickets)
|
||||||
{
|
{
|
||||||
output.Add(new cF4sdApiSearchResultRelation() { id = demoTicket.Id, Name = demoTicket.Name, DisplayName = demoTicket.Name, Infos = new Dictionary<string, string>() { ["Summary"] = demoTicket.Summary, ["Status"] = demoTicket.Status.ToString(), ["StatusId"] = ((int)demoTicket.Status).ToString(), ["Asset"] = demoTicket.Asset }, Type = enumF4sdSearchResultClass.Ticket, Identities = new cF4sdIdentityList() { new cF4sdIdentityEntry() { Class = enumFasdInformationClass.User, Id = Guid.Parse(constGuidTimoTicket) }, new cF4sdIdentityEntry() { Class = enumFasdInformationClass.Ticket, Id = demoTicket.Id } } });
|
output.Add(new cF4sdApiSearchResultRelation() { id = demoTicket.Id, Name = demoTicket.Name, DisplayName = demoTicket.Name, Infos = new Dictionary<string, string>() { ["Summary"] = demoTicket.Summary, ["Status"] = demoTicket.Status.ToString(), ["StatusId"] = ((int)demoTicket.Status).ToString(), ["Asset"] = demoTicket.Asset, ["ActivityType"] = ResolveTicketActivityType(demoTicket.Name, demoTicket) }, Type = enumF4sdSearchResultClass.Ticket, Identities = new cF4sdIdentityList() { new cF4sdIdentityEntry() { Class = enumFasdInformationClass.User, Id = Guid.Parse(constGuidTimoTicket) }, new cF4sdIdentityEntry() { Class = enumFasdInformationClass.Ticket, Id = demoTicket.Id } } });
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -1187,7 +1317,8 @@ namespace C4IT.FASD.Cockpit.Communication
|
|||||||
["Summary"] = demoTicket.Summary ?? string.Empty,
|
["Summary"] = demoTicket.Summary ?? string.Empty,
|
||||||
["Status"] = demoTicket.Status.ToString(),
|
["Status"] = demoTicket.Status.ToString(),
|
||||||
["StatusId"] = ((int)demoTicket.Status).ToString(),
|
["StatusId"] = ((int)demoTicket.Status).ToString(),
|
||||||
["Asset"] = demoTicket.Asset ?? string.Empty
|
["Asset"] = demoTicket.Asset ?? string.Empty,
|
||||||
|
["ActivityType"] = ResolveTicketActivityType(demoTicket.Name, demoTicket)
|
||||||
},
|
},
|
||||||
Identities = new cF4sdIdentityList()
|
Identities = new cF4sdIdentityList()
|
||||||
{
|
{
|
||||||
@@ -2011,11 +2142,38 @@ namespace C4IT.FASD.Cockpit.Communication
|
|||||||
{
|
{
|
||||||
cCockpitConfiguration.Instance = new cCockpitConfiguration();
|
cCockpitConfiguration.Instance = new cCockpitConfiguration();
|
||||||
cCockpitConfiguration.Instance.agentApiConfiguration = new cAgentApiConfiguration() { ApiUrl = "", ClientId = "", ClientSecret = "", LogonUrl = "", OrganizationCode = 0 };
|
cCockpitConfiguration.Instance.agentApiConfiguration = new cAgentApiConfiguration() { ApiUrl = "", ClientId = "", ClientSecret = "", LogonUrl = "", OrganizationCode = 0 };
|
||||||
cCockpitConfiguration.Instance.m42ServerConfiguration = new cM42ServerConfiguration() { Server = "" };
|
cCockpitConfiguration.Instance.m42ServerConfiguration = new cM42ServerConfiguration() { Server = ResolveDemoM42Server() };
|
||||||
|
cCockpitConfiguration.Instance.GlobalConfig = LoadDemoGlobalConfig();
|
||||||
await Task.CompletedTask;
|
await Task.CompletedTask;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static cConfigHelperParameterList LoadDemoGlobalConfig()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var executingDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
||||||
|
var filePath = Path.Combine(executingDirectory, "Config", "F4SD-Global-Configuration.xml");
|
||||||
|
if (!File.Exists(filePath))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
var xmlDocument = new XmlDocument();
|
||||||
|
xmlDocument.Load(filePath);
|
||||||
|
|
||||||
|
var root = xmlDocument.DocumentElement;
|
||||||
|
if (root == null || !string.Equals(root.Name, "F4SD-Global-Configuration", StringComparison.OrdinalIgnoreCase))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return cF4sdGlobalConfigParameterParser.Parse(root);
|
||||||
|
}
|
||||||
|
catch (Exception E)
|
||||||
|
{
|
||||||
|
LogException(E);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public override Task<bool> GetAgentOnlineStatus(int AgentDeviceId, int? AgentUserId = null) => Task.FromResult(true);
|
public override Task<bool> GetAgentOnlineStatus(int AgentDeviceId, int? AgentUserId = null) => Task.FromResult(true);
|
||||||
|
|
||||||
public override Task<cF4sdAgentScript> GetQuickActionOfAgent(int ScriptId) => Task.FromResult(new cF4sdAgentScript() { Id = ScriptId, Name = "AgentScript", Type = enumAgentScriptType.user, UserPermissionRequired = false });
|
public override Task<cF4sdAgentScript> GetQuickActionOfAgent(int ScriptId) => Task.FromResult(new cF4sdAgentScript() { Id = ScriptId, Name = "AgentScript", Type = enumAgentScriptType.user, UserPermissionRequired = false });
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
{
|
{
|
||||||
"TileKey": "TicketsNew",
|
"TileKey": "TicketsNew",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayNamePrefix": "TCK",
|
"DisplayNamePrefix": "TCK",
|
||||||
"Summary": "Neue Störung: VPN trennt nach wenigen Minuten",
|
"Summary": "Neue Störung: VPN trennt nach wenigen Minuten",
|
||||||
@@ -30,6 +31,7 @@
|
|||||||
{
|
{
|
||||||
"TileKey": "TicketsNew",
|
"TileKey": "TicketsNew",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayNamePrefix": "TCK",
|
"DisplayNamePrefix": "TCK",
|
||||||
"Summary": "Teams-Meldungen kommen verzögert an",
|
"Summary": "Teams-Meldungen kommen verzögert an",
|
||||||
@@ -57,6 +59,7 @@
|
|||||||
{
|
{
|
||||||
"TileKey": "TicketsNew",
|
"TileKey": "TicketsNew",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayNamePrefix": "TCK",
|
"DisplayNamePrefix": "TCK",
|
||||||
"Summary": "Anfrage: Gerät startet nicht zuverlässig",
|
"Summary": "Anfrage: Gerät startet nicht zuverlässig",
|
||||||
@@ -84,6 +87,7 @@
|
|||||||
{
|
{
|
||||||
"TileKey": "TicketsNew",
|
"TileKey": "TicketsNew",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayNamePrefix": "TCK",
|
"DisplayNamePrefix": "TCK",
|
||||||
"Summary": "Bitte um Rückmeldung: Ticketsystem reagiert langsam",
|
"Summary": "Bitte um Rückmeldung: Ticketsystem reagiert langsam",
|
||||||
@@ -111,6 +115,7 @@
|
|||||||
{
|
{
|
||||||
"TileKey": "TicketsNew",
|
"TileKey": "TicketsNew",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayNamePrefix": "TCK",
|
"DisplayNamePrefix": "TCK",
|
||||||
"Summary": "Passwort-Reset für AD-Benutzer erforderlich",
|
"Summary": "Passwort-Reset für AD-Benutzer erforderlich",
|
||||||
@@ -138,6 +143,7 @@
|
|||||||
{
|
{
|
||||||
"TileKey": "TicketsNew",
|
"TileKey": "TicketsNew",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayNamePrefix": "TCK",
|
"DisplayNamePrefix": "TCK",
|
||||||
"Summary": "Netzwerkdrucker druckt nur leere Seiten",
|
"Summary": "Netzwerkdrucker druckt nur leere Seiten",
|
||||||
@@ -165,6 +171,7 @@
|
|||||||
{
|
{
|
||||||
"TileKey": "TicketsNew",
|
"TileKey": "TicketsNew",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayNamePrefix": "TCK",
|
"DisplayNamePrefix": "TCK",
|
||||||
"Summary": "Outlook: Speicherlimit erreicht – Postfach voll",
|
"Summary": "Outlook: Speicherlimit erreicht – Postfach voll",
|
||||||
@@ -192,6 +199,7 @@
|
|||||||
{
|
{
|
||||||
"TileKey": "TicketsNew",
|
"TileKey": "TicketsNew",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayNamePrefix": "TCK",
|
"DisplayNamePrefix": "TCK",
|
||||||
"Summary": "Softwareanfrage: Microsoft Visio Standard",
|
"Summary": "Softwareanfrage: Microsoft Visio Standard",
|
||||||
@@ -219,6 +227,7 @@
|
|||||||
{
|
{
|
||||||
"TileKey": "TicketsNew",
|
"TileKey": "TicketsNew",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayNamePrefix": "TCK",
|
"DisplayNamePrefix": "TCK",
|
||||||
"Summary": "Konto gesperrt nach mehrfachen Fehlversuchen",
|
"Summary": "Konto gesperrt nach mehrfachen Fehlversuchen",
|
||||||
@@ -250,6 +259,7 @@
|
|||||||
"UserId": "916db36b-fb6e-4212-81c1-e72acdab77d2",
|
"UserId": "916db36b-fb6e-4212-81c1-e72acdab77d2",
|
||||||
"TileKey": "UnassignedTickets",
|
"TileKey": "UnassignedTickets",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"DisplayName": "TCK00414",
|
"DisplayName": "TCK00414",
|
||||||
"Summary": "Pool Notebook fuer Schulungsteilnehmer fehlt",
|
"Summary": "Pool Notebook fuer Schulungsteilnehmer fehlt",
|
||||||
"StatusId": "New",
|
"StatusId": "New",
|
||||||
@@ -278,6 +288,7 @@
|
|||||||
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
"TileKey": "UnassignedTickets",
|
"TileKey": "UnassignedTickets",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"DisplayName": "TCK00415",
|
"DisplayName": "TCK00415",
|
||||||
"Summary": "Etikettendrucker im Lager meldet Papierstau",
|
"Summary": "Etikettendrucker im Lager meldet Papierstau",
|
||||||
"StatusId": "New",
|
"StatusId": "New",
|
||||||
@@ -306,6 +317,7 @@
|
|||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"TileKey": "UnassignedTicketsCritical",
|
"TileKey": "UnassignedTicketsCritical",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"DisplayName": "TCK00416",
|
"DisplayName": "TCK00416",
|
||||||
"Summary": "WLAN Controller im Werk startet zyklisch neu",
|
"Summary": "WLAN Controller im Werk startet zyklisch neu",
|
||||||
"StatusId": "InProgress",
|
"StatusId": "InProgress",
|
||||||
@@ -334,6 +346,7 @@
|
|||||||
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
"TileKey": "UnassignedTicketsCritical",
|
"TileKey": "UnassignedTicketsCritical",
|
||||||
"UseRoleScope": false,
|
"UseRoleScope": false,
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"DisplayName": "TCK00417",
|
"DisplayName": "TCK00417",
|
||||||
"Summary": "SAP Buchungsjob bricht nachts wiederholt ab",
|
"Summary": "SAP Buchungsjob bricht nachts wiederholt ab",
|
||||||
"StatusId": "InProgress",
|
"StatusId": "InProgress",
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
"TicketId": "2e9cb83d-ecb7-c93b-e8e4-08daaa97265f",
|
"TicketId": "2e9cb83d-ecb7-c93b-e8e4-08daaa97265f",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayName": "TCK00186",
|
"DisplayName": "TCK00186",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Mein OneDrive synchronisiert nicht mehr",
|
"Summary": "Mein OneDrive synchronisiert nicht mehr",
|
||||||
"UserDisplayName": "Ticket, Timo",
|
"UserDisplayName": "Ticket, Timo",
|
||||||
"UserAccount": "TT007",
|
"UserAccount": "TT007",
|
||||||
@@ -17,6 +18,7 @@
|
|||||||
"TicketId": "bb2e4a9d-2c1e-4b32-8f75-6e7c9f99f2d4",
|
"TicketId": "bb2e4a9d-2c1e-4b32-8f75-6e7c9f99f2d4",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayName": "TCK00761",
|
"DisplayName": "TCK00761",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "VPN-Verbindung bricht nach wenigen Minuten ab",
|
"Summary": "VPN-Verbindung bricht nach wenigen Minuten ab",
|
||||||
"UserDisplayName": "Ticket, Timo",
|
"UserDisplayName": "Ticket, Timo",
|
||||||
"UserAccount": "TT007",
|
"UserAccount": "TT007",
|
||||||
@@ -27,6 +29,7 @@
|
|||||||
"TicketId": "d63e5ea1-0785-4998-82ad-9a9e5a0f8c37",
|
"TicketId": "d63e5ea1-0785-4998-82ad-9a9e5a0f8c37",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayName": "TCK00765",
|
"DisplayName": "TCK00765",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Teams-Benachrichtigungen kommen verzögert an",
|
"Summary": "Teams-Benachrichtigungen kommen verzögert an",
|
||||||
"UserDisplayName": "Ticket, Timo",
|
"UserDisplayName": "Ticket, Timo",
|
||||||
"UserAccount": "TT007",
|
"UserAccount": "TT007",
|
||||||
@@ -37,6 +40,7 @@
|
|||||||
"TicketId": "f7771fde-33ba-421a-8d9b-cdf468e7541c",
|
"TicketId": "f7771fde-33ba-421a-8d9b-cdf468e7541c",
|
||||||
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
"DisplayName": "TCK00403",
|
"DisplayName": "TCK00403",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Neuer Monitor fuer Hotline Arbeitsplatz",
|
"Summary": "Neuer Monitor fuer Hotline Arbeitsplatz",
|
||||||
"UserDisplayName": "Busch, Andrea",
|
"UserDisplayName": "Busch, Andrea",
|
||||||
"UserAccount": "AB014",
|
"UserAccount": "AB014",
|
||||||
@@ -47,6 +51,7 @@
|
|||||||
"TicketId": "6294eec7-fb80-42f3-8ce8-7f7982ae200c",
|
"TicketId": "6294eec7-fb80-42f3-8ce8-7f7982ae200c",
|
||||||
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
"DisplayName": "TCK00404",
|
"DisplayName": "TCK00404",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Monitor flackert seit Firmware Update",
|
"Summary": "Monitor flackert seit Firmware Update",
|
||||||
"UserDisplayName": "Anwender, Peter",
|
"UserDisplayName": "Anwender, Peter",
|
||||||
"UserAccount": "PA010",
|
"UserAccount": "PA010",
|
||||||
@@ -61,6 +66,7 @@
|
|||||||
"TicketId": "75e08a29-4103-41d6-962c-009c3342bc46",
|
"TicketId": "75e08a29-4103-41d6-962c-009c3342bc46",
|
||||||
"UserId": "6180aa17-ba2d-455a-bf2f-ec4a075c2d64",
|
"UserId": "6180aa17-ba2d-455a-bf2f-ec4a075c2d64",
|
||||||
"DisplayName": "TCK00406",
|
"DisplayName": "TCK00406",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "CAD Software startet nach Update nicht mehr",
|
"Summary": "CAD Software startet nach Update nicht mehr",
|
||||||
"UserDisplayName": "Kohl, Carlos",
|
"UserDisplayName": "Kohl, Carlos",
|
||||||
"UserAccount": "CK102",
|
"UserAccount": "CK102",
|
||||||
@@ -73,6 +79,7 @@
|
|||||||
"TicketId": "2e9cb83d-ecb7-c93b-e8e4-08daaa97265f",
|
"TicketId": "2e9cb83d-ecb7-c93b-e8e4-08daaa97265f",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayName": "TCK00405",
|
"DisplayName": "TCK00405",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Mein OneDrive synchronisiert nicht mehr",
|
"Summary": "Mein OneDrive synchronisiert nicht mehr",
|
||||||
"UserDisplayName": "Ticket, Timo",
|
"UserDisplayName": "Ticket, Timo",
|
||||||
"UserAccount": "TT007",
|
"UserAccount": "TT007",
|
||||||
@@ -83,6 +90,7 @@
|
|||||||
"TicketId": "ff62a3e2-5004-4a8c-b71c-7ebb1877d1a4",
|
"TicketId": "ff62a3e2-5004-4a8c-b71c-7ebb1877d1a4",
|
||||||
"UserId": "0fad5e21-5a29-44c6-b532-46f862ea8694",
|
"UserId": "0fad5e21-5a29-44c6-b532-46f862ea8694",
|
||||||
"DisplayName": "TCK00407",
|
"DisplayName": "TCK00407",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Netzlaufwerk Projekt X nicht erreichbar",
|
"Summary": "Netzlaufwerk Projekt X nicht erreichbar",
|
||||||
"UserDisplayName": "Hanova, Hans",
|
"UserDisplayName": "Hanova, Hans",
|
||||||
"UserAccount": "HH101",
|
"UserAccount": "HH101",
|
||||||
@@ -97,6 +105,7 @@
|
|||||||
"TicketId": "1507691c-6d47-4ae3-83b3-ef483d84a246",
|
"TicketId": "1507691c-6d47-4ae3-83b3-ef483d84a246",
|
||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"DisplayName": "TCK00408",
|
"DisplayName": "TCK00408",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "VPN Konzentrator in Aussenstelle offline",
|
"Summary": "VPN Konzentrator in Aussenstelle offline",
|
||||||
"UserDisplayName": "Seifert, Dominik",
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
"UserAccount": "DS014",
|
"UserAccount": "DS014",
|
||||||
@@ -107,6 +116,7 @@
|
|||||||
"TicketId": "5c6d981e-9e67-4fde-b249-8c6288d325a7",
|
"TicketId": "5c6d981e-9e67-4fde-b249-8c6288d325a7",
|
||||||
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
"DisplayName": "TCK00409",
|
"DisplayName": "TCK00409",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "SAP Produktionsauftrag bricht ab",
|
"Summary": "SAP Produktionsauftrag bricht ab",
|
||||||
"UserDisplayName": "Boss, Bernd",
|
"UserDisplayName": "Boss, Bernd",
|
||||||
"UserAccount": "BB003",
|
"UserAccount": "BB003",
|
||||||
@@ -119,6 +129,7 @@
|
|||||||
"TicketId": "1507691c-6d47-4ae3-83b3-ef483d84a246",
|
"TicketId": "1507691c-6d47-4ae3-83b3-ef483d84a246",
|
||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"DisplayName": "TCK00408",
|
"DisplayName": "TCK00408",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "VPN Konzentrator in Aussenstelle offline",
|
"Summary": "VPN Konzentrator in Aussenstelle offline",
|
||||||
"UserDisplayName": "Seifert, Dominik",
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
"UserAccount": "DS014",
|
"UserAccount": "DS014",
|
||||||
@@ -129,6 +140,7 @@
|
|||||||
"TicketId": "9b7710d4-72da-4b2a-9d0c-be02575d2c52",
|
"TicketId": "9b7710d4-72da-4b2a-9d0c-be02575d2c52",
|
||||||
"UserId": "a2c35ad1-7cc7-4b2b-9aa5-d03fdaecd155",
|
"UserId": "a2c35ad1-7cc7-4b2b-9aa5-d03fdaecd155",
|
||||||
"DisplayName": "TCK00410",
|
"DisplayName": "TCK00410",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "WLAN im Lager faellt minutenweise aus",
|
"Summary": "WLAN im Lager faellt minutenweise aus",
|
||||||
"UserDisplayName": "Kiefer, Maximilian",
|
"UserDisplayName": "Kiefer, Maximilian",
|
||||||
"UserAccount": "MK009",
|
"UserAccount": "MK009",
|
||||||
@@ -139,6 +151,7 @@
|
|||||||
"TicketId": "5c6d981e-9e67-4fde-b249-8c6288d325a7",
|
"TicketId": "5c6d981e-9e67-4fde-b249-8c6288d325a7",
|
||||||
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
"DisplayName": "TCK00409",
|
"DisplayName": "TCK00409",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "SAP Produktionsauftrag bricht ab",
|
"Summary": "SAP Produktionsauftrag bricht ab",
|
||||||
"UserDisplayName": "Boss, Bernd",
|
"UserDisplayName": "Boss, Bernd",
|
||||||
"UserAccount": "BB003",
|
"UserAccount": "BB003",
|
||||||
@@ -153,6 +166,7 @@
|
|||||||
"TicketId": "de403992-98cb-4476-9e04-d645ab22e6de",
|
"TicketId": "de403992-98cb-4476-9e04-d645ab22e6de",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayName": "TCK00411",
|
"DisplayName": "TCK00411",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Passwort muss zur\u00fcckgesetzt werden",
|
"Summary": "Passwort muss zur\u00fcckgesetzt werden",
|
||||||
"UserDisplayName": "Ticket, Timo",
|
"UserDisplayName": "Ticket, Timo",
|
||||||
"UserAccount": "TT007",
|
"UserAccount": "TT007",
|
||||||
@@ -163,6 +177,7 @@
|
|||||||
"TicketId": "7c29dd33-1247-453c-9db6-f7a59107d276",
|
"TicketId": "7c29dd33-1247-453c-9db6-f7a59107d276",
|
||||||
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
"DisplayName": "TCK00412",
|
"DisplayName": "TCK00412",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Techniker bittet um Rueckmeldung zum Notebook",
|
"Summary": "Techniker bittet um Rueckmeldung zum Notebook",
|
||||||
"UserDisplayName": "Anwender, Peter",
|
"UserDisplayName": "Anwender, Peter",
|
||||||
"UserAccount": "PA010",
|
"UserAccount": "PA010",
|
||||||
@@ -175,6 +190,7 @@
|
|||||||
"TicketId": "de403992-98cb-4476-9e04-d645ab22e6de",
|
"TicketId": "de403992-98cb-4476-9e04-d645ab22e6de",
|
||||||
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
"UserId": "42c760d6-90e8-469f-b2fe-ac7d4cc6cb0a",
|
||||||
"DisplayName": "TCK00411",
|
"DisplayName": "TCK00411",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Passwort muss zur\u00fcckgesetzt werden",
|
"Summary": "Passwort muss zur\u00fcckgesetzt werden",
|
||||||
"UserDisplayName": "Ticket, Timo",
|
"UserDisplayName": "Ticket, Timo",
|
||||||
"UserAccount": "TT007",
|
"UserAccount": "TT007",
|
||||||
@@ -185,6 +201,7 @@
|
|||||||
"TicketId": "b207822d-7e1c-42a7-b8c9-4246f711dd18",
|
"TicketId": "b207822d-7e1c-42a7-b8c9-4246f711dd18",
|
||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"DisplayName": "TCK00413",
|
"DisplayName": "TCK00413",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Wartungsfenster fuer Firewall verschieben",
|
"Summary": "Wartungsfenster fuer Firewall verschieben",
|
||||||
"UserDisplayName": "Seifert, Dominik",
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
"UserAccount": "DS014",
|
"UserAccount": "DS014",
|
||||||
@@ -199,6 +216,7 @@
|
|||||||
"TicketId": "e0ba7c81-f9b1-4e99-a4d6-efecc5e4312e",
|
"TicketId": "e0ba7c81-f9b1-4e99-a4d6-efecc5e4312e",
|
||||||
"UserId": "f69dd1a9-591f-4004-b950-264238663bf0",
|
"UserId": "f69dd1a9-591f-4004-b950-264238663bf0",
|
||||||
"DisplayName": "INC00401",
|
"DisplayName": "INC00401",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Teams Telefonie ist fuer Standort Sued offline",
|
"Summary": "Teams Telefonie ist fuer Standort Sued offline",
|
||||||
"UserDisplayName": "Ottmann, Thomas",
|
"UserDisplayName": "Ottmann, Thomas",
|
||||||
"UserAccount": "TO011",
|
"UserAccount": "TO011",
|
||||||
@@ -209,6 +227,7 @@
|
|||||||
"TicketId": "a8deb50d-9f15-4371-9ebc-a28791f27d5c",
|
"TicketId": "a8deb50d-9f15-4371-9ebc-a28791f27d5c",
|
||||||
"UserId": "916db36b-fb6e-4212-81c1-e72acdab77d2",
|
"UserId": "916db36b-fb6e-4212-81c1-e72acdab77d2",
|
||||||
"DisplayName": "INC00402",
|
"DisplayName": "INC00402",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "SharePoint Bereich Vertrieb laedt extrem langsam",
|
"Summary": "SharePoint Bereich Vertrieb laedt extrem langsam",
|
||||||
"UserDisplayName": "Virtual, Vera",
|
"UserDisplayName": "Virtual, Vera",
|
||||||
"UserAccount": "VV004",
|
"UserAccount": "VV004",
|
||||||
@@ -221,6 +240,7 @@
|
|||||||
"TicketId": "fe15284f-f553-4434-8b59-7d8b9f481bf7",
|
"TicketId": "fe15284f-f553-4434-8b59-7d8b9f481bf7",
|
||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"DisplayName": "INC00403",
|
"DisplayName": "INC00403",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Firewall Cluster meldet Sync Fehler",
|
"Summary": "Firewall Cluster meldet Sync Fehler",
|
||||||
"UserDisplayName": "Seifert, Dominik",
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
"UserAccount": "DS014",
|
"UserAccount": "DS014",
|
||||||
@@ -231,6 +251,7 @@
|
|||||||
"TicketId": "9cdddacf-9395-476b-811a-09c5f1491d4b",
|
"TicketId": "9cdddacf-9395-476b-811a-09c5f1491d4b",
|
||||||
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
"DisplayName": "INC00404",
|
"DisplayName": "INC00404",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "CRM Anmeldung liefert Timeout fuer Kundencenter",
|
"Summary": "CRM Anmeldung liefert Timeout fuer Kundencenter",
|
||||||
"UserDisplayName": "Anwender, Peter",
|
"UserDisplayName": "Anwender, Peter",
|
||||||
"UserAccount": "PA010",
|
"UserAccount": "PA010",
|
||||||
@@ -245,6 +266,7 @@
|
|||||||
"TicketId": "7e852bb9-420b-4caa-b79a-9178d793fc06",
|
"TicketId": "7e852bb9-420b-4caa-b79a-9178d793fc06",
|
||||||
"UserId": "a2c35ad1-7cc7-4b2b-9aa5-d03fdaecd155",
|
"UserId": "a2c35ad1-7cc7-4b2b-9aa5-d03fdaecd155",
|
||||||
"DisplayName": "INC00405",
|
"DisplayName": "INC00405",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Windows Rollout haengt auf mehreren Clients",
|
"Summary": "Windows Rollout haengt auf mehreren Clients",
|
||||||
"UserDisplayName": "Kiefer, Maximilian",
|
"UserDisplayName": "Kiefer, Maximilian",
|
||||||
"UserAccount": "MK009",
|
"UserAccount": "MK009",
|
||||||
@@ -255,6 +277,7 @@
|
|||||||
"TicketId": "3c3c70cf-5c60-4ecc-9313-b5f9c1968fc7",
|
"TicketId": "3c3c70cf-5c60-4ecc-9313-b5f9c1968fc7",
|
||||||
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
"DisplayName": "INC00406",
|
"DisplayName": "INC00406",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Remotedesktop Sitzung trennt nach wenigen Minuten",
|
"Summary": "Remotedesktop Sitzung trennt nach wenigen Minuten",
|
||||||
"UserDisplayName": "Busch, Andrea",
|
"UserDisplayName": "Busch, Andrea",
|
||||||
"UserAccount": "AB014",
|
"UserAccount": "AB014",
|
||||||
@@ -267,6 +290,7 @@
|
|||||||
"TicketId": "486df93d-15b6-41d4-b902-2c1e1838c74b",
|
"TicketId": "486df93d-15b6-41d4-b902-2c1e1838c74b",
|
||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"DisplayName": "INC00407",
|
"DisplayName": "INC00407",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Firewall Cluster meldet weiterhin Sync Fehler",
|
"Summary": "Firewall Cluster meldet weiterhin Sync Fehler",
|
||||||
"UserDisplayName": "Seifert, Dominik",
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
"UserAccount": "DS014",
|
"UserAccount": "DS014",
|
||||||
@@ -277,6 +301,7 @@
|
|||||||
"TicketId": "86da28b0-013b-4542-bcff-175044d5bb02",
|
"TicketId": "86da28b0-013b-4542-bcff-175044d5bb02",
|
||||||
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
"DisplayName": "INC00408",
|
"DisplayName": "INC00408",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Produktionslinie meldet keine Sensordaten",
|
"Summary": "Produktionslinie meldet keine Sensordaten",
|
||||||
"UserDisplayName": "Zufall, Rainer",
|
"UserDisplayName": "Zufall, Rainer",
|
||||||
"UserAccount": "RZ011",
|
"UserAccount": "RZ011",
|
||||||
@@ -287,6 +312,7 @@
|
|||||||
"TicketId": "a1cf6635-a5c4-4401-b4f0-60b9c65b4d75",
|
"TicketId": "a1cf6635-a5c4-4401-b4f0-60b9c65b4d75",
|
||||||
"UserId": "0fad5e21-5a29-44c6-b532-46f862ea8694",
|
"UserId": "0fad5e21-5a29-44c6-b532-46f862ea8694",
|
||||||
"DisplayName": "INC00409",
|
"DisplayName": "INC00409",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Exchange Transportdienst setzt Mails in Warteschlange",
|
"Summary": "Exchange Transportdienst setzt Mails in Warteschlange",
|
||||||
"UserDisplayName": "Hanova, Hans",
|
"UserDisplayName": "Hanova, Hans",
|
||||||
"UserAccount": "HH101",
|
"UserAccount": "HH101",
|
||||||
@@ -301,6 +327,7 @@
|
|||||||
"TicketId": "9aae7eca-39d7-441e-8b33-5fc6f34765c8",
|
"TicketId": "9aae7eca-39d7-441e-8b33-5fc6f34765c8",
|
||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"DisplayName": "INC00410",
|
"DisplayName": "INC00410",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Kuehlung im Rechenzentrum U3 ausgefallen",
|
"Summary": "Kuehlung im Rechenzentrum U3 ausgefallen",
|
||||||
"UserDisplayName": "Seifert, Dominik",
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
"UserAccount": "DS014",
|
"UserAccount": "DS014",
|
||||||
@@ -313,6 +340,7 @@
|
|||||||
"TicketId": "9aae7eca-39d7-441e-8b33-5fc6f34765c8",
|
"TicketId": "9aae7eca-39d7-441e-8b33-5fc6f34765c8",
|
||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"DisplayName": "INC00410",
|
"DisplayName": "INC00410",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Kuehlung im Rechenzentrum U3 ausgefallen",
|
"Summary": "Kuehlung im Rechenzentrum U3 ausgefallen",
|
||||||
"UserDisplayName": "Seifert, Dominik",
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
"UserAccount": "DS014",
|
"UserAccount": "DS014",
|
||||||
@@ -323,6 +351,7 @@
|
|||||||
"TicketId": "130ec52f-dac3-427d-803e-e7cf67e4a744",
|
"TicketId": "130ec52f-dac3-427d-803e-e7cf67e4a744",
|
||||||
"UserId": "f69dd1a9-591f-4004-b950-264238663bf0",
|
"UserId": "f69dd1a9-591f-4004-b950-264238663bf0",
|
||||||
"DisplayName": "INC00411",
|
"DisplayName": "INC00411",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Kartenzahlung in den Filialen nicht moeglich",
|
"Summary": "Kartenzahlung in den Filialen nicht moeglich",
|
||||||
"UserDisplayName": "Ottmann, Thomas",
|
"UserDisplayName": "Ottmann, Thomas",
|
||||||
"UserAccount": "TO011",
|
"UserAccount": "TO011",
|
||||||
@@ -333,6 +362,7 @@
|
|||||||
"TicketId": "b7d22b65-c11e-459c-ac31-5b1c08e4118d",
|
"TicketId": "b7d22b65-c11e-459c-ac31-5b1c08e4118d",
|
||||||
"UserId": "8c3ca0fb-f18c-4893-ad83-290e6e02f352",
|
"UserId": "8c3ca0fb-f18c-4893-ad83-290e6e02f352",
|
||||||
"DisplayName": "INC00412",
|
"DisplayName": "INC00412",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Datenbank Cluster benoetigt manuellen Failover",
|
"Summary": "Datenbank Cluster benoetigt manuellen Failover",
|
||||||
"UserDisplayName": "Perschmann, Paul",
|
"UserDisplayName": "Perschmann, Paul",
|
||||||
"UserAccount": "PP201",
|
"UserAccount": "PP201",
|
||||||
@@ -347,6 +377,7 @@
|
|||||||
"TicketId": "d1a2c544-4f59-4f2b-875f-3621a23d4228",
|
"TicketId": "d1a2c544-4f59-4f2b-875f-3621a23d4228",
|
||||||
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
"DisplayName": "INC00413",
|
"DisplayName": "INC00413",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Backup Team hat Rueckfrage zur Sicherung",
|
"Summary": "Backup Team hat Rueckfrage zur Sicherung",
|
||||||
"UserDisplayName": "Busch, Andrea",
|
"UserDisplayName": "Busch, Andrea",
|
||||||
"UserAccount": "AB014",
|
"UserAccount": "AB014",
|
||||||
@@ -359,6 +390,7 @@
|
|||||||
"TicketId": "74846c1b-9a97-420f-8bf2-91e88aa0516a",
|
"TicketId": "74846c1b-9a97-420f-8bf2-91e88aa0516a",
|
||||||
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
"DisplayName": "INC00415",
|
"DisplayName": "INC00415",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Lieferant bittet um Rueckmeldung zu Offsite Backup",
|
"Summary": "Lieferant bittet um Rueckmeldung zu Offsite Backup",
|
||||||
"UserDisplayName": "Anwender, Peter",
|
"UserDisplayName": "Anwender, Peter",
|
||||||
"UserAccount": "PA010",
|
"UserAccount": "PA010",
|
||||||
@@ -369,6 +401,7 @@
|
|||||||
"TicketId": "1372b3cf-5d87-4099-ab83-ec0cccf7194e",
|
"TicketId": "1372b3cf-5d87-4099-ab83-ec0cccf7194e",
|
||||||
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
"DisplayName": "INC00416",
|
"DisplayName": "INC00416",
|
||||||
|
"ActivityType": "SPSActivityTypeIncident",
|
||||||
"Summary": "Fernwartung benoetigt Zugangsdaten zur SPS",
|
"Summary": "Fernwartung benoetigt Zugangsdaten zur SPS",
|
||||||
"UserDisplayName": "Zufall, Rainer",
|
"UserDisplayName": "Zufall, Rainer",
|
||||||
"UserAccount": "RZ011",
|
"UserAccount": "RZ011",
|
||||||
@@ -383,6 +416,7 @@
|
|||||||
"TicketId": "e2e49f85-1a81-47e8-935b-d76898c155f6",
|
"TicketId": "e2e49f85-1a81-47e8-935b-d76898c155f6",
|
||||||
"UserId": "916db36b-fb6e-4212-81c1-e72acdab77d2",
|
"UserId": "916db36b-fb6e-4212-81c1-e72acdab77d2",
|
||||||
"DisplayName": "TCK00414",
|
"DisplayName": "TCK00414",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Pool Notebook fuer Schulungsteilnehmer fehlt",
|
"Summary": "Pool Notebook fuer Schulungsteilnehmer fehlt",
|
||||||
"UserDisplayName": "Virtual, Vera",
|
"UserDisplayName": "Virtual, Vera",
|
||||||
"UserAccount": "VV004",
|
"UserAccount": "VV004",
|
||||||
@@ -393,6 +427,7 @@
|
|||||||
"TicketId": "ebe8818e-b197-411e-b56e-40b77b623ae2",
|
"TicketId": "ebe8818e-b197-411e-b56e-40b77b623ae2",
|
||||||
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
"DisplayName": "TCK00415",
|
"DisplayName": "TCK00415",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Etikettendrucker im Lager meldet Papierstau",
|
"Summary": "Etikettendrucker im Lager meldet Papierstau",
|
||||||
"UserDisplayName": "Anwender, Peter",
|
"UserDisplayName": "Anwender, Peter",
|
||||||
"UserAccount": "PA010",
|
"UserAccount": "PA010",
|
||||||
@@ -405,6 +440,7 @@
|
|||||||
"TicketId": "e2e49f85-1a81-47e8-935b-d76898c155f6",
|
"TicketId": "e2e49f85-1a81-47e8-935b-d76898c155f6",
|
||||||
"UserId": "916db36b-fb6e-4212-81c1-e72acdab77d2",
|
"UserId": "916db36b-fb6e-4212-81c1-e72acdab77d2",
|
||||||
"DisplayName": "TCK00414",
|
"DisplayName": "TCK00414",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Pool Notebook fuer Schulungsteilnehmer fehlt",
|
"Summary": "Pool Notebook fuer Schulungsteilnehmer fehlt",
|
||||||
"UserDisplayName": "Virtual, Vera",
|
"UserDisplayName": "Virtual, Vera",
|
||||||
"UserAccount": "VV004",
|
"UserAccount": "VV004",
|
||||||
@@ -415,6 +451,7 @@
|
|||||||
"TicketId": "ebe8818e-b197-411e-b56e-40b77b623ae2",
|
"TicketId": "ebe8818e-b197-411e-b56e-40b77b623ae2",
|
||||||
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
"UserId": "436e8d67-1b9b-4b1a-83e9-0b1e8fa0173b",
|
||||||
"DisplayName": "TCK00415",
|
"DisplayName": "TCK00415",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "Etikettendrucker im Lager meldet Papierstau",
|
"Summary": "Etikettendrucker im Lager meldet Papierstau",
|
||||||
"UserDisplayName": "Anwender, Peter",
|
"UserDisplayName": "Anwender, Peter",
|
||||||
"UserAccount": "PA010",
|
"UserAccount": "PA010",
|
||||||
@@ -425,6 +462,7 @@
|
|||||||
"TicketId": "9e1d5d1b-5a22-430e-99ea-59840257caab",
|
"TicketId": "9e1d5d1b-5a22-430e-99ea-59840257caab",
|
||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"DisplayName": "TCK00416",
|
"DisplayName": "TCK00416",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "WLAN Controller im Werk startet zyklisch neu",
|
"Summary": "WLAN Controller im Werk startet zyklisch neu",
|
||||||
"UserDisplayName": "Seifert, Dominik",
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
"UserAccount": "DS014",
|
"UserAccount": "DS014",
|
||||||
@@ -439,6 +477,7 @@
|
|||||||
"TicketId": "9e1d5d1b-5a22-430e-99ea-59840257caab",
|
"TicketId": "9e1d5d1b-5a22-430e-99ea-59840257caab",
|
||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"DisplayName": "TCK00416",
|
"DisplayName": "TCK00416",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "WLAN Controller im Werk startet zyklisch neu",
|
"Summary": "WLAN Controller im Werk startet zyklisch neu",
|
||||||
"UserDisplayName": "Seifert, Dominik",
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
"UserAccount": "DS014",
|
"UserAccount": "DS014",
|
||||||
@@ -451,6 +490,7 @@
|
|||||||
"TicketId": "9e1d5d1b-5a22-430e-99ea-59840257caab",
|
"TicketId": "9e1d5d1b-5a22-430e-99ea-59840257caab",
|
||||||
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
"UserId": "deece196-d8b6-4a9c-a2b9-3c2ae9c6d4ec",
|
||||||
"DisplayName": "TCK00416",
|
"DisplayName": "TCK00416",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "WLAN Controller im Werk startet zyklisch neu",
|
"Summary": "WLAN Controller im Werk startet zyklisch neu",
|
||||||
"UserDisplayName": "Seifert, Dominik",
|
"UserDisplayName": "Seifert, Dominik",
|
||||||
"UserAccount": "DS014",
|
"UserAccount": "DS014",
|
||||||
@@ -461,6 +501,7 @@
|
|||||||
"TicketId": "d427dc61-9842-4464-b37a-612878d3de0f",
|
"TicketId": "d427dc61-9842-4464-b37a-612878d3de0f",
|
||||||
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
"UserId": "a2164ecd-791f-482c-bea3-f089f14bec8a",
|
||||||
"DisplayName": "TCK00417",
|
"DisplayName": "TCK00417",
|
||||||
|
"ActivityType": "SPSActivityTypeTicket",
|
||||||
"Summary": "SAP Buchungsjob bricht nachts wiederholt ab",
|
"Summary": "SAP Buchungsjob bricht nachts wiederholt ab",
|
||||||
"UserDisplayName": "Boss, Bernd",
|
"UserDisplayName": "Boss, Bernd",
|
||||||
"UserAccount": "BB003",
|
"UserAccount": "BB003",
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ namespace FasdCockpitCommunicationDemo
|
|||||||
public string TileKey { get; set; } = "TicketsNew";
|
public string TileKey { get; set; } = "TicketsNew";
|
||||||
public bool UseRoleScope { get; set; }
|
public bool UseRoleScope { get; set; }
|
||||||
public Guid? UserId { get; set; }
|
public Guid? UserId { get; set; }
|
||||||
|
public string ActivityType { get; set; }
|
||||||
public string DisplayNamePrefix { get; set; } = "TCK";
|
public string DisplayNamePrefix { get; set; } = "TCK";
|
||||||
public string Summary { get; set; }
|
public string Summary { get; set; }
|
||||||
public string StatusId { get; set; } = "New";
|
public string StatusId { get; set; } = "New";
|
||||||
@@ -49,6 +50,7 @@ namespace FasdCockpitCommunicationDemo
|
|||||||
public Guid UserId { get; set; }
|
public Guid UserId { get; set; }
|
||||||
public string TileKey { get; set; }
|
public string TileKey { get; set; }
|
||||||
public bool UseRoleScope { get; set; }
|
public bool UseRoleScope { get; set; }
|
||||||
|
public string ActivityType { get; set; }
|
||||||
public string DisplayName { get; set; }
|
public string DisplayName { get; set; }
|
||||||
public string Summary { get; set; }
|
public string Summary { get; set; }
|
||||||
public string StatusId { get; set; }
|
public string StatusId { get; set; }
|
||||||
@@ -167,6 +169,7 @@ namespace FasdCockpitCommunicationDemo
|
|||||||
TileKey = source.TileKey,
|
TileKey = source.TileKey,
|
||||||
UseRoleScope = source.UseRoleScope,
|
UseRoleScope = source.UseRoleScope,
|
||||||
UserId = source.UserId,
|
UserId = source.UserId,
|
||||||
|
ActivityType = source.ActivityType,
|
||||||
DisplayNamePrefix = source.DisplayNamePrefix,
|
DisplayNamePrefix = source.DisplayNamePrefix,
|
||||||
Summary = source.Summary,
|
Summary = source.Summary,
|
||||||
StatusId = source.StatusId,
|
StatusId = source.StatusId,
|
||||||
@@ -188,6 +191,7 @@ namespace FasdCockpitCommunicationDemo
|
|||||||
UserId = source.UserId,
|
UserId = source.UserId,
|
||||||
TileKey = source.TileKey,
|
TileKey = source.TileKey,
|
||||||
UseRoleScope = source.UseRoleScope,
|
UseRoleScope = source.UseRoleScope,
|
||||||
|
ActivityType = source.ActivityType,
|
||||||
DisplayName = source.DisplayName,
|
DisplayName = source.DisplayName,
|
||||||
Summary = source.Summary,
|
Summary = source.Summary,
|
||||||
StatusId = source.StatusId,
|
StatusId = source.StatusId,
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ namespace FasdCockpitCommunicationDemo
|
|||||||
public Guid TicketId { get; set; }
|
public Guid TicketId { get; set; }
|
||||||
public Guid UserId { get; set; }
|
public Guid UserId { get; set; }
|
||||||
public string DisplayName { get; set; }
|
public string DisplayName { get; set; }
|
||||||
|
public string ActivityType { get; set; }
|
||||||
public string Summary { get; set; }
|
public string Summary { get; set; }
|
||||||
public string StatusId { get; set; }
|
public string StatusId { get; set; }
|
||||||
public string UserDisplayName { get; set; }
|
public string UserDisplayName { get; set; }
|
||||||
|
|||||||
@@ -540,6 +540,7 @@ namespace FasdDesktopUi.Basics.Services
|
|||||||
|
|
||||||
private cF4sdApiSearchResultRelation CreateRelationFromRecord(DemoTicketRecord record)
|
private cF4sdApiSearchResultRelation CreateRelationFromRecord(DemoTicketRecord record)
|
||||||
{
|
{
|
||||||
|
var activityType = ResolveDemoActivityType(record?.ActivityType);
|
||||||
var relation = new cF4sdApiSearchResultRelation
|
var relation = new cF4sdApiSearchResultRelation
|
||||||
{
|
{
|
||||||
Type = enumF4sdSearchResultClass.Ticket,
|
Type = enumF4sdSearchResultClass.Ticket,
|
||||||
@@ -553,7 +554,8 @@ namespace FasdDesktopUi.Basics.Services
|
|||||||
["StatusId"] = record.StatusId ?? string.Empty,
|
["StatusId"] = record.StatusId ?? string.Empty,
|
||||||
["UserDisplayName"] = record.UserDisplayName ?? string.Empty,
|
["UserDisplayName"] = record.UserDisplayName ?? string.Empty,
|
||||||
["UserAccount"] = record.UserAccount ?? string.Empty,
|
["UserAccount"] = record.UserAccount ?? string.Empty,
|
||||||
["UserDomain"] = record.UserDomain ?? string.Empty
|
["UserDomain"] = record.UserDomain ?? string.Empty,
|
||||||
|
["ActivityType"] = activityType
|
||||||
},
|
},
|
||||||
Identities = new cF4sdIdentityList
|
Identities = new cF4sdIdentityList
|
||||||
{
|
{
|
||||||
@@ -565,6 +567,13 @@ namespace FasdDesktopUi.Basics.Services
|
|||||||
return relation;
|
return relation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string ResolveDemoActivityType(string configuredActivityType)
|
||||||
|
{
|
||||||
|
return string.IsNullOrWhiteSpace(configuredActivityType)
|
||||||
|
? null
|
||||||
|
: configuredActivityType.Trim();
|
||||||
|
}
|
||||||
|
|
||||||
private DemoTicketDetail CloneDetail(DemoTicketDetail source)
|
private DemoTicketDetail CloneDetail(DemoTicketDetail source)
|
||||||
{
|
{
|
||||||
if (source == null)
|
if (source == null)
|
||||||
@@ -739,6 +748,7 @@ namespace FasdDesktopUi.Basics.Services
|
|||||||
TicketId = relationId,
|
TicketId = relationId,
|
||||||
TileKey = string.IsNullOrWhiteSpace(template.TileKey) ? "TicketsNew" : template.TileKey,
|
TileKey = string.IsNullOrWhiteSpace(template.TileKey) ? "TicketsNew" : template.TileKey,
|
||||||
UseRoleScope = template.UseRoleScope,
|
UseRoleScope = template.UseRoleScope,
|
||||||
|
ActivityType = ResolveDemoActivityType(template.ActivityType),
|
||||||
DisplayName = displayName,
|
DisplayName = displayName,
|
||||||
Summary = summary,
|
Summary = summary,
|
||||||
StatusId = string.IsNullOrWhiteSpace(template.StatusId) ? "New" : template.StatusId,
|
StatusId = string.IsNullOrWhiteSpace(template.StatusId) ? "New" : template.StatusId,
|
||||||
|
|||||||
@@ -105,12 +105,12 @@
|
|||||||
Padding="4"
|
Padding="4"
|
||||||
BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}"
|
BorderBrush="{DynamicResource BackgroundColor.Menu.SubCategory.Hover}"
|
||||||
BorderThickness="1">
|
BorderThickness="1">
|
||||||
<ScrollViewer x:Name="PART_CategoryScrollViewer"
|
<ScrollViewer x:Name="PART_ItemsScrollViewer"
|
||||||
MaxHeight="320"
|
MaxHeight="320"
|
||||||
VerticalScrollBarVisibility="Auto"
|
VerticalScrollBarVisibility="Auto"
|
||||||
Background="Transparent"
|
Background="Transparent"
|
||||||
BorderThickness="0"
|
BorderThickness="0"
|
||||||
PreviewMouseWheel="CategoryScrollViewer_PreviewMouseWheel">
|
PreviewMouseWheel="ItemsScrollViewer_PreviewMouseWheel">
|
||||||
<TreeView x:Name="PART_TreeView"
|
<TreeView x:Name="PART_TreeView"
|
||||||
Background="Transparent"
|
Background="Transparent"
|
||||||
BorderThickness="0"
|
BorderThickness="0"
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ using System.Windows.Controls;
|
|||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
using System.Windows.Threading;
|
using System.Windows.Threading;
|
||||||
using static C4IT.Logging.cLogManager;
|
|
||||||
|
|
||||||
namespace FasdDesktopUi.Basics.UserControls
|
namespace FasdDesktopUi.Basics.UserControls
|
||||||
{
|
{
|
||||||
@@ -22,7 +21,7 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
|
|
||||||
private TextBox searchTextBox;
|
private TextBox searchTextBox;
|
||||||
private TreeView treeViewControl;
|
private TreeView treeViewControl;
|
||||||
private ScrollViewer categoryScrollViewer;
|
private ScrollViewer itemsScrollViewer;
|
||||||
|
|
||||||
public ObservableCollection<HierarchicalSelectionItem> VisibleItems => visibleItems;
|
public ObservableCollection<HierarchicalSelectionItem> VisibleItems => visibleItems;
|
||||||
|
|
||||||
@@ -41,7 +40,6 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
EnsureTemplateParts();
|
EnsureTemplateParts();
|
||||||
if (treeViewControl != null)
|
if (treeViewControl != null)
|
||||||
treeViewControl.ItemsSource = VisibleItems;
|
treeViewControl.ItemsSource = VisibleItems;
|
||||||
UpdateDisplaySelection();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#region DependencyProperties
|
#region DependencyProperties
|
||||||
@@ -64,7 +62,6 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
{
|
{
|
||||||
control.RebuildLookup();
|
control.RebuildLookup();
|
||||||
control.ApplyFilter(control.lastSearchText);
|
control.ApplyFilter(control.lastSearchText);
|
||||||
control.TryExpandToSelectedItem();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,8 +81,8 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
{
|
{
|
||||||
if (d is HierarchicalSelectionControl control)
|
if (d is HierarchicalSelectionControl control)
|
||||||
{
|
{
|
||||||
control.LogSelectedItemChange(e.NewValue as HierarchicalSelectionItem);
|
|
||||||
control.TryExpandToSelectedItem();
|
control.TryExpandToSelectedItem();
|
||||||
|
control.SyncTreeSelectionWithSelectedItem(bringIntoView: false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,13 +106,15 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region UI Event Handling
|
||||||
|
|
||||||
private void ComboBoxControl_DropDownOpened(object sender, EventArgs e)
|
private void ComboBoxControl_DropDownOpened(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
EnsureTemplateParts();
|
EnsureTemplateParts();
|
||||||
searchTextBox?.Focus();
|
searchTextBox?.Focus();
|
||||||
searchTextBox?.SelectAll();
|
searchTextBox?.SelectAll();
|
||||||
suppressTreeSelectionChanged = false;
|
suppressTreeSelectionChanged = false;
|
||||||
LogEntry($"[CategoryPicker] DropDownOpened. Selected={SelectedItem?.FullPath ?? "<null>"}");
|
SyncTreeSelectionWithSelectedItem(bringIntoView: true);
|
||||||
DropDownOpened?.Invoke(this, e);
|
DropDownOpened?.Invoke(this, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,7 +122,6 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
{
|
{
|
||||||
searchDelayTimer.Stop();
|
searchDelayTimer.Stop();
|
||||||
suppressTreeSelectionChanged = false;
|
suppressTreeSelectionChanged = false;
|
||||||
LogEntry("[CategoryPicker] DropDownClosed");
|
|
||||||
DropDownClosed?.Invoke(this, e);
|
DropDownClosed?.Invoke(this, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,7 +135,6 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
{
|
{
|
||||||
searchDelayTimer.Stop();
|
searchDelayTimer.Stop();
|
||||||
lastSearchText = searchTextBox?.Text ?? string.Empty;
|
lastSearchText = searchTextBox?.Text ?? string.Empty;
|
||||||
LogEntry($"[CategoryPicker] Search text changed: '{lastSearchText}'");
|
|
||||||
ApplyFilter(lastSearchText);
|
ApplyFilter(lastSearchText);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,7 +149,6 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
if (original != null && !Equals(SelectedItem, original))
|
if (original != null && !Equals(SelectedItem, original))
|
||||||
{
|
{
|
||||||
SelectedItem = original;
|
SelectedItem = original;
|
||||||
LogEntry($"[CategoryPicker] Tree selection changed: {original.FullPath}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
suppressTreeSelectionChanged = true;
|
suppressTreeSelectionChanged = true;
|
||||||
@@ -160,6 +156,10 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Data Preparation and Filtering
|
||||||
|
|
||||||
private HierarchicalSelectionItem ResolveOriginalItem(HierarchicalSelectionItem item)
|
private HierarchicalSelectionItem ResolveOriginalItem(HierarchicalSelectionItem item)
|
||||||
{
|
{
|
||||||
if (item == null)
|
if (item == null)
|
||||||
@@ -203,6 +203,7 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
}
|
}
|
||||||
|
|
||||||
TryExpandToSelectedItem();
|
TryExpandToSelectedItem();
|
||||||
|
SyncTreeSelectionWithSelectedItem(bringIntoView: false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,6 +221,9 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
clone.SetExpandedRecursive(true);
|
clone.SetExpandedRecursive(true);
|
||||||
visibleItems.Add(clone);
|
visibleItems.Add(clone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the selected item is part of current results, keep it visually selected.
|
||||||
|
SyncTreeSelectionWithSelectedItem(bringIntoView: false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TryExpandToSelectedItem()
|
private void TryExpandToSelectedItem()
|
||||||
@@ -238,6 +242,101 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Tree Selection Sync
|
||||||
|
|
||||||
|
private void SyncTreeSelectionWithSelectedItem(bool bringIntoView)
|
||||||
|
{
|
||||||
|
if (SelectedItem == null || string.IsNullOrWhiteSpace(SelectedItem.Id))
|
||||||
|
return;
|
||||||
|
|
||||||
|
EnsureTemplateParts();
|
||||||
|
if (treeViewControl == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Wait for popup/template layout to finish so item containers are generated.
|
||||||
|
Dispatcher.BeginInvoke(new Action(() =>
|
||||||
|
{
|
||||||
|
var target = FindVisibleItemById(VisibleItems, SelectedItem.Id);
|
||||||
|
if (target == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var ancestor = target.Parent;
|
||||||
|
while (ancestor != null)
|
||||||
|
{
|
||||||
|
ancestor.IsExpanded = true;
|
||||||
|
ancestor = ancestor.Parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
treeViewControl.UpdateLayout();
|
||||||
|
var targetContainer = GetTreeViewItemContainer(treeViewControl, target);
|
||||||
|
if (targetContainer == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
suppressTreeSelectionChanged = true;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
targetContainer.IsSelected = true;
|
||||||
|
if (bringIntoView)
|
||||||
|
targetContainer.BringIntoView();
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
suppressTreeSelectionChanged = false;
|
||||||
|
}
|
||||||
|
}), DispatcherPriority.Loaded);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static HierarchicalSelectionItem FindVisibleItemById(IEnumerable<HierarchicalSelectionItem> items, string id)
|
||||||
|
{
|
||||||
|
if (items == null || string.IsNullOrWhiteSpace(id))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
foreach (var item in items)
|
||||||
|
{
|
||||||
|
if (item == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (string.Equals(item.Id, id, StringComparison.OrdinalIgnoreCase))
|
||||||
|
return item;
|
||||||
|
|
||||||
|
var childMatch = FindVisibleItemById(item.Children, id);
|
||||||
|
if (childMatch != null)
|
||||||
|
return childMatch;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TreeViewItem GetTreeViewItemContainer(ItemsControl root, object targetItem)
|
||||||
|
{
|
||||||
|
if (root == null || targetItem == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
var directContainer = root.ItemContainerGenerator.ContainerFromItem(targetItem) as TreeViewItem;
|
||||||
|
if (directContainer != null)
|
||||||
|
return directContainer;
|
||||||
|
|
||||||
|
foreach (var child in root.Items)
|
||||||
|
{
|
||||||
|
var childContainer = root.ItemContainerGenerator.ContainerFromItem(child) as TreeViewItem;
|
||||||
|
if (childContainer == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
childContainer.UpdateLayout();
|
||||||
|
var result = GetTreeViewItemContainer(childContainer, targetItem);
|
||||||
|
if (result != null)
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Template and Scroll Handling
|
||||||
|
|
||||||
private void EnsureTemplateParts()
|
private void EnsureTemplateParts()
|
||||||
{
|
{
|
||||||
if (treeViewControl == null)
|
if (treeViewControl == null)
|
||||||
@@ -257,15 +356,15 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
searchTextBox.TextChanged += SearchTextBox_TextChanged;
|
searchTextBox.TextChanged += SearchTextBox_TextChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (categoryScrollViewer == null)
|
if (itemsScrollViewer == null)
|
||||||
{
|
{
|
||||||
categoryScrollViewer = ComboBoxControl.Template.FindName("PART_CategoryScrollViewer", ComboBoxControl) as ScrollViewer;
|
itemsScrollViewer = ComboBoxControl.Template.FindName("PART_ItemsScrollViewer", ComboBoxControl) as ScrollViewer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CategoryScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
|
private void ItemsScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
|
||||||
{
|
{
|
||||||
var scroller = categoryScrollViewer ?? sender as ScrollViewer;
|
var scroller = itemsScrollViewer ?? sender as ScrollViewer;
|
||||||
if (scroller == null || scroller.ScrollableHeight <= 0)
|
if (scroller == null || scroller.ScrollableHeight <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -300,23 +399,9 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateDisplaySelection()
|
#endregion
|
||||||
{
|
|
||||||
// Display handled by template TextBlock bound to SelectedItem.FullPath.
|
|
||||||
}
|
|
||||||
|
|
||||||
private void LogSelectedItemChange(HierarchicalSelectionItem newValue)
|
#region Keyboard
|
||||||
{
|
|
||||||
var description = "<null>";
|
|
||||||
if (newValue != null)
|
|
||||||
{
|
|
||||||
var fullPath = string.IsNullOrWhiteSpace(newValue.FullPath) ? newValue.DisplayName : newValue.FullPath;
|
|
||||||
var id = string.IsNullOrWhiteSpace(newValue.Id) ? "<null>" : newValue.Id;
|
|
||||||
description = $"{fullPath} (Id={id})";
|
|
||||||
}
|
|
||||||
|
|
||||||
LogEntry($"[CategoryPicker] DependencyProperty SelectedItem updated -> {description}");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnPreviewKeyDown(KeyEventArgs e)
|
protected override void OnPreviewKeyDown(KeyEventArgs e)
|
||||||
{
|
{
|
||||||
@@ -338,5 +423,7 @@ namespace FasdDesktopUi.Basics.UserControls
|
|||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,30 @@
|
|||||||
<settingspagebase:SettingsPageBase
|
<settingspagebase:SettingsPageBase xmlns:settingspagebase="clr-namespace:FasdDesktopUi.Pages.SettingsPage"
|
||||||
xmlns:settingspagebase="clr-namespace:FasdDesktopUi.Pages.SettingsPage"
|
x:Class="FasdDesktopUi.Pages.SettingsPage.SettingsPageView"
|
||||||
x:Class="FasdDesktopUi.Pages.SettingsPage.SettingsPageView"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:local="clr-namespace:FasdDesktopUi.Pages.SettingsPage"
|
||||||
xmlns:local="clr-namespace:FasdDesktopUi.Pages.SettingsPage"
|
xmlns:ico="clr-namespace:FasdDesktopUi.Basics.UserControls.AdaptableIcon;assembly=F4SD-AdaptableIcon"
|
||||||
xmlns:ico="clr-namespace:FasdDesktopUi.Basics.UserControls.AdaptableIcon;assembly=F4SD-AdaptableIcon"
|
xmlns:vc="clr-namespace:FasdDesktopUi.Basics.Converter"
|
||||||
xmlns:vc="clr-namespace:FasdDesktopUi.Basics.Converter"
|
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
mc:Ignorable="d"
|
||||||
mc:Ignorable="d"
|
Title="SettingsPageView"
|
||||||
Title="SettingsPageView"
|
ResizeMode="NoResize"
|
||||||
ResizeMode="NoResize"
|
WindowStyle="None"
|
||||||
WindowStyle="None"
|
AllowsTransparency="True"
|
||||||
AllowsTransparency="True"
|
Background="Transparent"
|
||||||
Background="Transparent"
|
MinHeight="100"
|
||||||
MinHeight="100"
|
MinWidth="400"
|
||||||
MinWidth="400"
|
ShowInTaskbar="False"
|
||||||
ShowInTaskbar="False"
|
Topmost="True"
|
||||||
Topmost="True"
|
SizeToContent="WidthAndHeight"
|
||||||
SizeToContent="WidthAndHeight"
|
WindowStartupLocation="CenterScreen"
|
||||||
WindowStartupLocation="CenterScreen"
|
Initialized="Window_Initialized"
|
||||||
Initialized="Window_Initialized"
|
x:Name="SettingsWindow"
|
||||||
x:Name="SettingsWindow"
|
KeyDown="SettingsWindow_KeyDown"
|
||||||
KeyDown="SettingsWindow_KeyDown" Closed="SettingsWindow_Closed" IsVisibleChanged="SettingsWindow_IsVisibleChanged">
|
Closed="SettingsWindow_Closed"
|
||||||
|
IsVisibleChanged="SettingsWindow_IsVisibleChanged">
|
||||||
|
|
||||||
<settingspagebase:SettingsPageBase.Resources>
|
<settingspagebase:SettingsPageBase.Resources>
|
||||||
<vc:LanguageDefinitionsConverter x:Key="LanguageConverter" />
|
<vc:LanguageDefinitionsConverter x:Key="LanguageConverter" />
|
||||||
@@ -203,25 +204,39 @@
|
|||||||
SelectedCountryCode="GB" />
|
SelectedCountryCode="GB" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel x:Name="ShouldSkipSlimViewLabel" Orientation="Horizontal">
|
<StackPanel x:Name="ShouldSkipSlimViewLabel"
|
||||||
|
Orientation="Horizontal">
|
||||||
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Menu.ShouldSkipSlimView}" />
|
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Menu.ShouldSkipSlimView}" />
|
||||||
<ico:AdaptableIcon x:Name="ShouldSkipSlimViewPolicy" SelectedInternIcon="lock_closed" Margin="-25,-5,0,0" IconWidth="23" IconHeight="23" Visibility="Collapsed"/>
|
<ico:AdaptableIcon x:Name="ShouldSkipSlimViewPolicy"
|
||||||
|
SelectedInternIcon="lock_closed"
|
||||||
|
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
|
||||||
|
Margin="-25,-5,0,0"
|
||||||
|
IconWidth="23"
|
||||||
|
IconHeight="23"
|
||||||
|
Visibility="Collapsed" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<CheckBox x:Name="ShouldSkipSlimViewCheckBox"
|
<CheckBox x:Name="ShouldSkipSlimViewCheckBox"
|
||||||
Style="{DynamicResource ToggleSwitch}"
|
Style="{DynamicResource ToggleSwitch}"
|
||||||
IsChecked="{Binding ElementName=SettingsWindow, Path=ShouldSkipSlimView}"
|
IsChecked="{Binding ElementName=SettingsWindow, Path=ShouldSkipSlimView}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
Margin="0,3,0,10"
|
Margin="0,3,0,10">
|
||||||
>
|
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
|
|
||||||
<StackPanel x:Name="PositionOfSmallViewsLabel" Orientation="Horizontal">
|
<StackPanel x:Name="PositionOfSmallViewsLabel"
|
||||||
|
Orientation="Horizontal">
|
||||||
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Menu.PositionOfSmallViews}" />
|
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Menu.PositionOfSmallViews}" />
|
||||||
<ico:AdaptableIcon x:Name="PositionOfSmallViewsPolicy" SelectedInternIcon="lock_closed" Margin="-25,-5,0,0" IconWidth="23" IconHeight="23" Visibility="Collapsed"/>
|
<ico:AdaptableIcon x:Name="PositionOfSmallViewsPolicy"
|
||||||
|
SelectedInternIcon="lock_closed"
|
||||||
|
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
|
||||||
|
Margin="-25,-5,0,0"
|
||||||
|
IconWidth="23"
|
||||||
|
IconHeight="23"
|
||||||
|
Visibility="Collapsed" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Grid x:Name="PositionOfSmallViewsInput" Grid.IsSharedSizeScope="True"
|
<Grid x:Name="PositionOfSmallViewsInput"
|
||||||
|
Grid.IsSharedSizeScope="True"
|
||||||
HorizontalAlignment="Left">
|
HorizontalAlignment="Left">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto"
|
<ColumnDefinition Width="Auto"
|
||||||
@@ -269,12 +284,20 @@
|
|||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<StackPanel x:Name="PositionOfFavouriteBarLabel" Orientation="Horizontal">
|
<StackPanel x:Name="PositionOfFavouriteBarLabel"
|
||||||
|
Orientation="Horizontal">
|
||||||
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Menu.PositionOfFavouriteBar}" />
|
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Menu.PositionOfFavouriteBar}" />
|
||||||
<ico:AdaptableIcon x:Name="PositionOfFavouriteBarPolicy" SelectedInternIcon="lock_closed" Margin="-25,-5,0,0" IconWidth="23" IconHeight="23" Visibility="Collapsed"/>
|
<ico:AdaptableIcon x:Name="PositionOfFavouriteBarPolicy"
|
||||||
|
SelectedInternIcon="lock_closed"
|
||||||
|
PrimaryIconColor="{DynamicResource Color.Menu.Icon}"
|
||||||
|
Margin="-25,-5,0,0"
|
||||||
|
IconWidth="23"
|
||||||
|
IconHeight="23"
|
||||||
|
Visibility="Collapsed" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Grid x:Name="PositionOfFavouriteBarInput" Grid.IsSharedSizeScope="True"
|
<Grid x:Name="PositionOfFavouriteBarInput"
|
||||||
|
Grid.IsSharedSizeScope="True"
|
||||||
HorizontalAlignment="Left">
|
HorizontalAlignment="Left">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto"
|
<ColumnDefinition Width="Auto"
|
||||||
|
|||||||
@@ -18,8 +18,10 @@ namespace FasdDesktopUi.Pages.TicketCompletion
|
|||||||
{
|
{
|
||||||
public partial class TicketCompletion : Window, IBlurInvoker, INotifyPropertyChanged
|
public partial class TicketCompletion : Window, IBlurInvoker, INotifyPropertyChanged
|
||||||
{
|
{
|
||||||
|
private const double MinWindowHeightDip = 220d;
|
||||||
private const double WindowWorkingAreaMarginDip = 12d;
|
private const double WindowWorkingAreaMarginDip = 12d;
|
||||||
private const double DialogNonContentReserveDip = 180d;
|
private const double DialogNonContentReserveDip = 180d;
|
||||||
|
private bool isUpdatingDialogBounds;
|
||||||
private bool isCanceled = false;
|
private bool isCanceled = false;
|
||||||
|
|
||||||
private bool _WaitForClosing = false;
|
private bool _WaitForClosing = false;
|
||||||
@@ -53,6 +55,8 @@ namespace FasdDesktopUi.Pages.TicketCompletion
|
|||||||
|
|
||||||
cFocusInvoker.GotFocus += ElementGotFocus;
|
cFocusInvoker.GotFocus += ElementGotFocus;
|
||||||
cFocusInvoker.LostFocus += ElementLostFocus;
|
cFocusInvoker.LostFocus += ElementLostFocus;
|
||||||
|
SizeChanged += TicketCompletion_SizeChanged;
|
||||||
|
Loaded += TicketCompletion_Loaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnSourceInitialized(EventArgs e)
|
protected override void OnSourceInitialized(EventArgs e)
|
||||||
@@ -67,6 +71,10 @@ namespace FasdDesktopUi.Pages.TicketCompletion
|
|||||||
UpdateDialogMaxHeightToScreen();
|
UpdateDialogMaxHeightToScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void TicketCompletion_Loaded(object sender, RoutedEventArgs e) => UpdateDialogMaxHeightToScreen();
|
||||||
|
|
||||||
|
private void TicketCompletion_SizeChanged(object sender, SizeChangedEventArgs e) => UpdateDialogMaxHeightToScreen();
|
||||||
|
|
||||||
#region ClosingBusy
|
#region ClosingBusy
|
||||||
|
|
||||||
public bool IsClosingBusy
|
public bool IsClosingBusy
|
||||||
@@ -145,6 +153,10 @@ namespace FasdDesktopUi.Pages.TicketCompletion
|
|||||||
|
|
||||||
private void UpdateDialogMaxHeightToScreen()
|
private void UpdateDialogMaxHeightToScreen()
|
||||||
{
|
{
|
||||||
|
if (isUpdatingDialogBounds)
|
||||||
|
return;
|
||||||
|
|
||||||
|
isUpdatingDialogBounds = true;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
WinForms.Screen screen = null;
|
WinForms.Screen screen = null;
|
||||||
@@ -164,15 +176,45 @@ namespace FasdDesktopUi.Pages.TicketCompletion
|
|||||||
screen = screen ?? WinForms.Screen.PrimaryScreen;
|
screen = screen ?? WinForms.Screen.PrimaryScreen;
|
||||||
var workingArea = screen?.WorkingArea ?? WinForms.Screen.PrimaryScreen.WorkingArea;
|
var workingArea = screen?.WorkingArea ?? WinForms.Screen.PrimaryScreen.WorkingArea;
|
||||||
var dpiScaleY = VisualTreeHelper.GetDpi(this).DpiScaleY;
|
var dpiScaleY = VisualTreeHelper.GetDpi(this).DpiScaleY;
|
||||||
var maxHeightDip = (workingArea.Height / Math.Max(0.1, dpiScaleY)) - WindowWorkingAreaMarginDip;
|
var safeDpiScaleY = Math.Max(0.1, dpiScaleY);
|
||||||
|
var workingAreaTopDip = workingArea.Top / safeDpiScaleY;
|
||||||
|
var workingAreaBottomDip = workingArea.Bottom / safeDpiScaleY;
|
||||||
|
var workingAreaHeightDip = workingArea.Height / safeDpiScaleY;
|
||||||
|
var availableWindowHeightDip = workingAreaHeightDip - (WindowWorkingAreaMarginDip * 2);
|
||||||
|
|
||||||
MaxHeight = Math.Max(220, maxHeightDip);
|
MaxHeight = Math.Max(MinWindowHeightDip, availableWindowHeightDip);
|
||||||
CloseCaseDialogUc?.SetDialogContentMaxHeight(MaxHeight - DialogNonContentReserveDip);
|
|
||||||
|
if (!double.IsNaN(Top))
|
||||||
|
{
|
||||||
|
var minTop = workingAreaTopDip + WindowWorkingAreaMarginDip;
|
||||||
|
var maxBottom = workingAreaBottomDip - WindowWorkingAreaMarginDip;
|
||||||
|
|
||||||
|
if (Top < minTop)
|
||||||
|
Top = minTop;
|
||||||
|
|
||||||
|
var currentBottom = Top + ActualHeight;
|
||||||
|
if (currentBottom > maxBottom)
|
||||||
|
Top = Math.Max(minTop, maxBottom - ActualHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
double nonDialogReserve = DialogNonContentReserveDip;
|
||||||
|
if (CloseCaseDialogUc != null && CloseCaseDialogUc.IsLoaded)
|
||||||
|
{
|
||||||
|
var estimatedReserve = ActualHeight - CloseCaseDialogUc.ActualHeight;
|
||||||
|
if (estimatedReserve > 0)
|
||||||
|
nonDialogReserve = Math.Max(nonDialogReserve, estimatedReserve + WindowWorkingAreaMarginDip);
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseCaseDialogUc?.SetDialogContentMaxHeight(MaxHeight - nonDialogReserve);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
LogException(ex);
|
LogException(ex);
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
isUpdatingDialogBounds = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Internal Focus Events
|
#region Internal Focus Events
|
||||||
|
|||||||
Reference in New Issue
Block a user