Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13f389ff2c |
@@ -116,6 +116,8 @@ DOCUMENTATION = (
|
|||||||
title="Configure Helpdesk routing and service-target profiles",
|
title="Configure Helpdesk routing and service-target profiles",
|
||||||
summary="Match bounded Ticket types and priorities to one queue and a priority-specific target.",
|
summary="Match bounded Ticket types and priorities to one queue and a priority-specific target.",
|
||||||
body=(
|
body=(
|
||||||
|
"Open the documentation book immediately beside Helpdesk profiles for routing-profile "
|
||||||
|
"guidance. "
|
||||||
"Each active tenant profile has a stable key, ordered precedence, supported Ticket types and priorities, a queue reference, and optional target minutes by priority or default. "
|
"Each active tenant profile has a stable key, ordered precedence, supported Ticket types and priorities, a queue reference, and optional target minutes by priority or default. "
|
||||||
"At Ticket intake Helpdesk evaluates active profiles in order. An explicit profile key or queue hint narrows the match. The selected profile revision, queue, target duration, and explanation are recorded with the Ticket. "
|
"At Ticket intake Helpdesk evaluates active profiles in order. An explicit profile key or queue hint narrows the match. The selected profile revision, queue, target duration, and explanation are recorded with the Ticket. "
|
||||||
"If no profile matches, intake succeeds without an automatic target and authorized Ticket staff choose queue and target manually. Profile edits are revision-guarded, replay-safe, and append immutable configuration history."
|
"If no profile matches, intake succeeds without an automatic target and authorized Ticket staff choose queue and target manually. Profile edits are revision-guarded, replay-safe, and append immutable configuration history."
|
||||||
@@ -128,7 +130,9 @@ DOCUMENTATION = (
|
|||||||
"de": {
|
"de": {
|
||||||
"title": "Helpdesk-Profile für Weiterleitung und Serviceziele konfigurieren",
|
"title": "Helpdesk-Profile für Weiterleitung und Serviceziele konfigurieren",
|
||||||
"summary": "Begrenzte Ticketarten und Prioritäten einer Warteschlange und einem prioritätsabhängigen Ziel zuordnen.",
|
"summary": "Begrenzte Ticketarten und Prioritäten einer Warteschlange und einem prioritätsabhängigen Ziel zuordnen.",
|
||||||
"body": "Jedes aktive Mandantenprofil besitzt einen stabilen Schlüssel, eine Reihenfolge, unterstützte Ticketarten und Prioritäten, einen Warteschlangenverweis und optionale Zielminuten je Priorität oder als Standard. Bei der Ticketaufnahme wertet Helpdesk aktive Profile der Reihe nach aus. Ein ausdrücklicher Profilschlüssel oder Warteschlangenhinweis grenzt die Auswahl ein. Profilrevision, Warteschlange, Zieldauer und Begründung werden am Ticket festgehalten. Trifft kein Profil zu, gelingt die Aufnahme ohne automatisches Ziel; berechtigte Ticket-Bearbeitende wählen Warteschlange und Ziel manuell. Profiländerungen sind revisionsgeschützt, wiederholungssicher und erzeugen unveränderliche Konfigurationshistorie.",
|
"body": "Öffnen Sie das Dokumentationsbuch unmittelbar neben Helpdesk-Profile für Hinweise zu "
|
||||||
|
"Routing-Profilen. "
|
||||||
|
"Jedes aktive Mandantenprofil besitzt einen stabilen Schlüssel, eine Reihenfolge, unterstützte Ticketarten und Prioritäten, einen Warteschlangenverweis und optionale Zielminuten je Priorität oder als Standard. Bei der Ticketaufnahme wertet Helpdesk aktive Profile der Reihe nach aus. Ein ausdrücklicher Profilschlüssel oder Warteschlangenhinweis grenzt die Auswahl ein. Profilrevision, Warteschlange, Zieldauer und Begründung werden am Ticket festgehalten. Trifft kein Profil zu, gelingt die Aufnahme ohne automatisches Ziel; berechtigte Ticket-Bearbeitende wählen Warteschlange und Ziel manuell. Profiländerungen sind revisionsgeschützt, wiederholungssicher und erzeugen unveränderliche Konfigurationshistorie.",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
related_modules=("tickets",),
|
related_modules=("tickets",),
|
||||||
|
|||||||
@@ -114,12 +114,13 @@ export default function HelpdeskProfilesPage({ settings, auth }: PlatformRouteCo
|
|||||||
<main className="helpdesk-page">
|
<main className="helpdesk-page">
|
||||||
<WorkspaceFrame className="helpdesk-shell" label="Helpdesk profiles" interfaceId="helpdesk.route.profiles" helpContextId="helpdesk.route.profiles" helpModuleId="helpdesk">
|
<WorkspaceFrame className="helpdesk-shell" label="Helpdesk profiles" interfaceId="helpdesk.route.profiles" helpContextId="helpdesk.route.profiles" helpModuleId="helpdesk">
|
||||||
<WorkspaceActionBar
|
<WorkspaceActionBar
|
||||||
|
title="Helpdesk profiles"
|
||||||
|
titleHelp={<DocumentationHelpLink reference={{ topicId: "helpdesk.configure-routing-profiles", documentationType: "admin" }} label="Open Helpdesk profile documentation" />}
|
||||||
scope="workspace"
|
scope="workspace"
|
||||||
variant="collection"
|
variant="collection"
|
||||||
refreshable
|
refreshable
|
||||||
reloadAction={{ onReload: () => void reload(), loading }}
|
reloadAction={{ onReload: () => void reload(), loading }}
|
||||||
contextActions={<span className="helpdesk-count">{profiles.length} profiles · ordered first match wins</span>}
|
contextActions={<span className="helpdesk-count">{profiles.length} profiles · ordered first match wins</span>}
|
||||||
helpAction={<DocumentationHelpLink reference={{ topicId: "helpdesk.configure-routing-profiles", documentationType: "admin" }} label="Open Helpdesk profile documentation" />}
|
|
||||||
createAction={<Button type="button" variant="primary" onClick={() => { setEditing(null); setEditorError(""); setEditorOpen(true); }}><Plus size={16} /> New profile</Button>}
|
createAction={<Button type="button" variant="primary" onClick={() => { setEditing(null); setEditorError(""); setEditorOpen(true); }}><Plus size={16} /> New profile</Button>}
|
||||||
/>
|
/>
|
||||||
{error && <DismissibleAlert tone="danger" onDismiss={() => setError("")}>{error}</DismissibleAlert>}
|
{error && <DismissibleAlert tone="danger" onDismiss={() => setError("")}>{error}</DismissibleAlert>}
|
||||||
|
|||||||
Executable
+12
@@ -0,0 +1,12 @@
|
|||||||
|
import type { PlatformTranslations } from "@govoplan/core-webui";
|
||||||
|
|
||||||
|
/** Module-owned translations for contextual headings. */
|
||||||
|
export const generatedTranslations: PlatformTranslations = {
|
||||||
|
en: {
|
||||||
|
"Helpdesk profiles": "Helpdesk profiles",
|
||||||
|
},
|
||||||
|
de: {
|
||||||
|
"Helpdesk profiles": "Helpdesk-Profile",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
import { createElement, lazy } from "react";
|
import { createElement, lazy } from "react";
|
||||||
import type { PlatformWebModule } from "@govoplan/core-webui";
|
import type { PlatformWebModule } from "@govoplan/core-webui";
|
||||||
|
import { generatedTranslations } from "./i18n/generatedTranslations";
|
||||||
import "./styles/helpdesk.css";
|
import "./styles/helpdesk.css";
|
||||||
|
|
||||||
|
|
||||||
const HelpdeskProfilesPage = lazy(() => import("./features/helpdesk/HelpdeskProfilesPage"));
|
const HelpdeskProfilesPage = lazy(() => import("./features/helpdesk/HelpdeskProfilesPage"));
|
||||||
|
|
||||||
export const helpdeskModule: PlatformWebModule = {
|
export const helpdeskModule: PlatformWebModule = {
|
||||||
|
translations: generatedTranslations,
|
||||||
id: "helpdesk",
|
id: "helpdesk",
|
||||||
label: "Helpdesk",
|
label: "Helpdesk",
|
||||||
version: "0.1.20",
|
version: "0.1.20",
|
||||||
|
|||||||
Reference in New Issue
Block a user