Migrate Views interface patterns
This commit is contained in:
@@ -2,6 +2,7 @@ import { Eye, LockKeyhole } from "lucide-react";
|
||||
import { useState } from "react";
|
||||
import {
|
||||
dispatchPlatformViewChanged,
|
||||
usePlatformLanguage,
|
||||
useUnsavedChanges,
|
||||
type ViewSelectorProps
|
||||
} from "@govoplan/core-webui";
|
||||
@@ -14,6 +15,7 @@ export default function ViewSelector({
|
||||
}: ViewSelectorProps) {
|
||||
const [busy, setBusy] = useState(false);
|
||||
const [error, setError] = useState("");
|
||||
const { translateText } = usePlatformLanguage();
|
||||
const { requestNavigation } = useUnsavedChanges();
|
||||
const options = projection?.availableViews ?? [];
|
||||
|
||||
@@ -26,7 +28,11 @@ export default function ViewSelector({
|
||||
await selectEffectiveView(settings, viewId || null);
|
||||
dispatchPlatformViewChanged();
|
||||
} catch (caught) {
|
||||
setError(caught instanceof Error ? caught.message : "View selection failed");
|
||||
setError(
|
||||
caught instanceof Error
|
||||
? caught.message
|
||||
: "i18n:govoplan-views.view_selection_failed"
|
||||
);
|
||||
} finally {
|
||||
setBusy(false);
|
||||
}
|
||||
@@ -41,26 +47,30 @@ export default function ViewSelector({
|
||||
const locked = Boolean(projection?.locked);
|
||||
const diagnostic = projection?.diagnostics.find((item) => item.severity === "error")
|
||||
?? projection?.diagnostics[0];
|
||||
const title = error || diagnostic?.message || (
|
||||
const title = translateText(error || diagnostic?.message || (
|
||||
locked
|
||||
? "This View is required by an administrator."
|
||||
: "Choose which parts of GovOPlaN are shown."
|
||||
);
|
||||
? "i18n:govoplan-views.required_by_administrator"
|
||||
: "i18n:govoplan-views.selector_help"
|
||||
));
|
||||
|
||||
return (
|
||||
<label className="titlebar-view-selector" title={title}>
|
||||
{locked
|
||||
? <LockKeyhole size={16} aria-hidden="true" />
|
||||
: <Eye size={16} aria-hidden="true" />}
|
||||
<span className="sr-only">Current View</span>
|
||||
<span className="sr-only">i18n:govoplan-views.current_view</span>
|
||||
<select
|
||||
value={projection?.activeViewId ?? ""}
|
||||
disabled={busy || locked}
|
||||
aria-label="Current View"
|
||||
aria-label={translateText("i18n:govoplan-views.current_view")}
|
||||
aria-invalid={Boolean(error) || undefined}
|
||||
onChange={(event) => select(event.target.value)}
|
||||
>
|
||||
{!locked && <option value="">Full interface</option>}
|
||||
{!locked && (
|
||||
<option value="">
|
||||
{translateText("i18n:govoplan-views.full_interface")}
|
||||
</option>
|
||||
)}
|
||||
{options.map((option) => (
|
||||
<option key={option.id} value={option.id}>{option.name}</option>
|
||||
))}
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import {
|
||||
ActionBlockerHint,
|
||||
FormField,
|
||||
hasScope,
|
||||
i18nMessage,
|
||||
type ApiSettings,
|
||||
type AuthInfo
|
||||
} from "@govoplan/core-webui";
|
||||
import ViewsAdminPanel from "./ViewsAdminPanel";
|
||||
import type { ViewScopeType } from "../../api/views";
|
||||
import {
|
||||
VIEWS_DOCUMENTATION,
|
||||
VIEWS_FIELD_DOCUMENTATION,
|
||||
VIEWS_INTERFACE_I18N
|
||||
} from "./interfacePatterns";
|
||||
|
||||
|
||||
type OwnerOption = {
|
||||
@@ -38,9 +45,20 @@ export default function PersonalViewsPanel({
|
||||
const owner = options.find((option) => option.key === ownerKey) ?? options[0];
|
||||
if (!owner) {
|
||||
return (
|
||||
<p className="muted">
|
||||
You do not have access to personal or group View definitions.
|
||||
</p>
|
||||
<ActionBlockerHint
|
||||
reason={{
|
||||
summary: "i18n:govoplan-views.no_personal_access",
|
||||
requiredAction: VIEWS_INTERFACE_I18N.permissionGuidanceText,
|
||||
actor: VIEWS_INTERFACE_I18N.administratorText,
|
||||
target: VIEWS_INTERFACE_I18N.administrationTargetText
|
||||
}}
|
||||
labels={{
|
||||
requiredAction: VIEWS_INTERFACE_I18N.requiredActionText,
|
||||
actor: VIEWS_INTERFACE_I18N.actorText,
|
||||
target: VIEWS_INTERFACE_I18N.destinationText
|
||||
}}
|
||||
documentation={VIEWS_DOCUMENTATION}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -48,7 +66,10 @@ export default function PersonalViewsPanel({
|
||||
<div className="views-personal-panel">
|
||||
{options.length > 1 && (
|
||||
<div className="views-owner-toolbar">
|
||||
<FormField label="View owner">
|
||||
<FormField
|
||||
label="i18n:govoplan-views.view_owner"
|
||||
documentation={VIEWS_FIELD_DOCUMENTATION}
|
||||
>
|
||||
<select
|
||||
value={owner.key}
|
||||
onChange={(event) => setOwnerKey(event.target.value)}
|
||||
@@ -91,9 +112,8 @@ function ownerOptions(auth: AuthInfo): OwnerOption[] {
|
||||
key: `user:${auth.user.account_id}`,
|
||||
scopeType: "user",
|
||||
scopeId: auth.user.account_id,
|
||||
label: "My Views",
|
||||
description:
|
||||
"Design personal interface projections. Publishing a View makes it available to this account.",
|
||||
label: "i18n:govoplan-views.my_views",
|
||||
description: "i18n:govoplan-views.personal_description",
|
||||
canWrite:
|
||||
tenantManager ||
|
||||
hasScope(auth, "views:personal_definition:write")
|
||||
@@ -109,9 +129,10 @@ function ownerOptions(auth: AuthInfo): OwnerOption[] {
|
||||
key: `group:${group.id}`,
|
||||
scopeType: "group",
|
||||
scopeId: group.id,
|
||||
label: `Group: ${group.name}`,
|
||||
description:
|
||||
"Design reusable interface projections for this group. Publishing a View makes it available to all current group members.",
|
||||
label: i18nMessage("i18n:govoplan-views.group_value", {
|
||||
value0: group.name
|
||||
}),
|
||||
description: "i18n:govoplan-views.group_description",
|
||||
canWrite:
|
||||
tenantManager ||
|
||||
hasScope(auth, "views:group_definition:write")
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,63 @@
|
||||
import type { DocumentationHelpReference } from "@govoplan/core-webui";
|
||||
|
||||
export const VIEWS_DOCUMENTATION = {
|
||||
topicId: "views.interface-projections",
|
||||
documentationType: "admin"
|
||||
} satisfies DocumentationHelpReference;
|
||||
|
||||
export const VIEWS_FIELD_DOCUMENTATION = {
|
||||
topicId: "views.reference.fields-and-consequences",
|
||||
documentationType: "admin"
|
||||
} satisfies DocumentationHelpReference;
|
||||
|
||||
export const VIEWS_INTERFACE_I18N = {
|
||||
loadingText: "i18n:govoplan-views.loading",
|
||||
busyText: "i18n:govoplan-views.busy",
|
||||
definitionWriteText: "i18n:govoplan-views.definition_write_required",
|
||||
assignmentWriteText: "i18n:govoplan-views.assignment_write_required",
|
||||
missingCatalogueText: "i18n:govoplan-views.navigation_and_route_surfaces_required",
|
||||
noChangesText: "i18n:govoplan-views.no_pending_changes",
|
||||
nameRequiredText: "i18n:govoplan-views.name_required",
|
||||
inheritedText: "i18n:govoplan-views.inherited_definition_read_only",
|
||||
archivedText: "i18n:govoplan-views.archived_definition_read_only",
|
||||
publishedDefinitionText: "i18n:govoplan-views.published_definition_required",
|
||||
inheritedAssignmentText: "i18n:govoplan-views.inherited_assignment_read_only",
|
||||
targetRequiredText: "i18n:govoplan-views.assignment_target_required",
|
||||
lockoutText: "i18n:govoplan-views.required_view_must_keep_escape_surfaces",
|
||||
readOnlySummaryText: "i18n:govoplan-views.views_administration_is_read_only",
|
||||
requiredActionText: "i18n:govoplan-views.required_action",
|
||||
actorText: "i18n:govoplan-views.responsible_actor",
|
||||
destinationText: "i18n:govoplan-views.destination",
|
||||
administratorText: "i18n:govoplan-views.view_manager_or_scope_owner",
|
||||
permissionGuidanceText: "i18n:govoplan-views.request_view_management_permission",
|
||||
administrationTargetText: "i18n:govoplan-views.views_administration",
|
||||
directorySummaryText: "i18n:govoplan-views.assignment_directory_unavailable",
|
||||
directoryGuidanceText: "i18n:govoplan-views.enable_access_or_choose_a_scope_without_a_directory_target",
|
||||
moduleTargetText: "i18n:govoplan-views.module_administration"
|
||||
} as const;
|
||||
|
||||
export function definitionDisabledReason({
|
||||
loading = false,
|
||||
busy,
|
||||
permitted,
|
||||
editable = true,
|
||||
archived = false,
|
||||
changed = true,
|
||||
complete = true
|
||||
}: {
|
||||
loading?: boolean;
|
||||
busy: boolean;
|
||||
permitted: boolean;
|
||||
editable?: boolean;
|
||||
archived?: boolean;
|
||||
changed?: boolean;
|
||||
complete?: boolean;
|
||||
}): string | undefined {
|
||||
if (loading) return VIEWS_INTERFACE_I18N.loadingText;
|
||||
if (busy) return VIEWS_INTERFACE_I18N.busyText;
|
||||
if (!permitted) return VIEWS_INTERFACE_I18N.definitionWriteText;
|
||||
if (!editable) return archived ? VIEWS_INTERFACE_I18N.archivedText : VIEWS_INTERFACE_I18N.inheritedText;
|
||||
if (!complete) return VIEWS_INTERFACE_I18N.nameRequiredText;
|
||||
if (!changed) return VIEWS_INTERFACE_I18N.noChangesText;
|
||||
return undefined;
|
||||
}
|
||||
@@ -0,0 +1,264 @@
|
||||
import type { PlatformTranslations } from "@govoplan/core-webui";
|
||||
|
||||
export const generatedTranslations: PlatformTranslations = {
|
||||
en: {
|
||||
"i18n:govoplan-views.views": "Views",
|
||||
"i18n:govoplan-views.view_selector": "View selector",
|
||||
"i18n:govoplan-views.system_views_administration": "System Views administration",
|
||||
"i18n:govoplan-views.tenant_views_administration": "Tenant Views administration",
|
||||
"i18n:govoplan-views.personal_and_group_views": "Personal and group Views",
|
||||
"i18n:govoplan-views.view_selection_failed": "View selection failed.",
|
||||
"i18n:govoplan-views.required_by_administrator": "This View is required by an administrator.",
|
||||
"i18n:govoplan-views.selector_help": "Choose which parts of GovOPlaN are shown.",
|
||||
"i18n:govoplan-views.current_view": "Current View",
|
||||
"i18n:govoplan-views.full_interface": "Full interface",
|
||||
"i18n:govoplan-views.no_personal_access": "You do not have access to personal or group View definitions.",
|
||||
"i18n:govoplan-views.view_owner": "View owner",
|
||||
"i18n:govoplan-views.my_views": "My Views",
|
||||
"i18n:govoplan-views.personal_description": "Design personal interface projections. Publishing a View makes it available to this account.",
|
||||
"i18n:govoplan-views.group_value": "Group: {value0}",
|
||||
"i18n:govoplan-views.group_description": "Design reusable interface projections for this group. Publishing a View makes it available to all current group members.",
|
||||
"i18n:govoplan-views.system_views": "System Views",
|
||||
"i18n:govoplan-views.tenant_views": "Tenant Views",
|
||||
"i18n:govoplan-views.group_views": "Group Views",
|
||||
"i18n:govoplan-views.system_description": "Publish reusable interface projections and assign instance-wide defaults or requirements.",
|
||||
"i18n:govoplan-views.tenant_description": "Tailor the visible interface for this tenant, its groups, and individual users.",
|
||||
"i18n:govoplan-views.group_scope_description": "Design reusable interface projections for members of this group.",
|
||||
"i18n:govoplan-views.user_scope_description": "Design personal interface projections that remain available to this account.",
|
||||
"i18n:govoplan-views.loading": "View information is loading.",
|
||||
"i18n:govoplan-views.busy": "A View operation is in progress.",
|
||||
"i18n:govoplan-views.definition_write_required": "View-definition write permission is required.",
|
||||
"i18n:govoplan-views.assignment_write_required": "View-assignment write permission is required.",
|
||||
"i18n:govoplan-views.navigation_and_route_surfaces_required": "The installed surface catalogue must contain navigation and route surfaces.",
|
||||
"i18n:govoplan-views.no_pending_changes": "Make a change before saving.",
|
||||
"i18n:govoplan-views.name_required": "Enter a View name before continuing.",
|
||||
"i18n:govoplan-views.inherited_definition_read_only": "Inherited View definitions are read-only in this scope.",
|
||||
"i18n:govoplan-views.archived_definition_read_only": "Archived View definitions are read-only.",
|
||||
"i18n:govoplan-views.published_definition_required": "Publish at least one View before creating an assignment.",
|
||||
"i18n:govoplan-views.inherited_assignment_read_only": "This assignment is inherited from a higher scope and must be changed there.",
|
||||
"i18n:govoplan-views.assignment_target_required": "Select an assignment target.",
|
||||
"i18n:govoplan-views.assignment_target_immutable": "The target cannot be changed after this assignment is created.",
|
||||
"i18n:govoplan-views.assignment_view_immutable": "The View cannot be changed after this assignment is created.",
|
||||
"i18n:govoplan-views.required_view_must_keep_escape_surfaces": "A required View must retain the selector and administration escape surfaces.",
|
||||
"i18n:govoplan-views.views_administration_is_read_only": "Views administration is read-only.",
|
||||
"i18n:govoplan-views.required_action": "Required action",
|
||||
"i18n:govoplan-views.responsible_actor": "Responsible actor",
|
||||
"i18n:govoplan-views.destination": "Destination",
|
||||
"i18n:govoplan-views.view_manager_or_scope_owner": "A View manager or owner of this scope",
|
||||
"i18n:govoplan-views.request_view_management_permission": "Request the matching View-definition or assignment permission.",
|
||||
"i18n:govoplan-views.views_administration": "Administration or Settings > Views",
|
||||
"i18n:govoplan-views.assignment_directory_unavailable": "The assignment target directory is unavailable.",
|
||||
"i18n:govoplan-views.enable_access_or_choose_a_scope_without_a_directory_target": "Enable the Access directory or choose a system or tenant target.",
|
||||
"i18n:govoplan-views.module_administration": "Administration > Modules",
|
||||
"i18n:govoplan-views.reload_views": "Reload Views",
|
||||
"i18n:govoplan-views.new_view": "New View",
|
||||
"i18n:govoplan-views.definitions": "Definitions",
|
||||
"i18n:govoplan-views.view_definitions": "View definitions",
|
||||
"i18n:govoplan-views.revision_value": "revision {value0}",
|
||||
"i18n:govoplan-views.no_definitions": "No Views have been defined in this scope.",
|
||||
"i18n:govoplan-views.inherited": "Inherited",
|
||||
"i18n:govoplan-views.draft_revision_value": "Draft revision {value0}",
|
||||
"i18n:govoplan-views.published_revision_value": "published revision {value0}",
|
||||
"i18n:govoplan-views.not_published": "not published",
|
||||
"i18n:govoplan-views.discard": "Discard",
|
||||
"i18n:govoplan-views.save_revision": "Save revision",
|
||||
"i18n:govoplan-views.publish": "Publish",
|
||||
"i18n:govoplan-views.archive_view": "Archive View",
|
||||
"i18n:govoplan-views.name": "Name",
|
||||
"i18n:govoplan-views.description": "Description",
|
||||
"i18n:govoplan-views.visible_surfaces": "Visible surfaces",
|
||||
"i18n:govoplan-views.surface_security_help": "Permission checks remain active even when a surface is visible. Parent surfaces are retained automatically.",
|
||||
"i18n:govoplan-views.selected_count": "{value0} selected",
|
||||
"i18n:govoplan-views.stale_surfaces_value": "This revision references retired or currently unavailable surfaces: {value0}",
|
||||
"i18n:govoplan-views.remove_stale_references": "Remove stale references",
|
||||
"i18n:govoplan-views.no_view_selected": "No View selected",
|
||||
"i18n:govoplan-views.create_projection_help": "Create a View to define a focused interface projection.",
|
||||
"i18n:govoplan-views.create_view": "Create View",
|
||||
"i18n:govoplan-views.cancel": "Cancel",
|
||||
"i18n:govoplan-views.create": "Create",
|
||||
"i18n:govoplan-views.first_draft_help": "The first draft starts with all current surfaces visible. Refine the selection before publishing it.",
|
||||
"i18n:govoplan-views.archive_value_confirm": "Archive ‘{value0}’? Existing optional assignments will be deactivated. Required assignments must be removed first.",
|
||||
"i18n:govoplan-views.archive": "Archive",
|
||||
"i18n:govoplan-views.remove_assignment": "Remove View assignment",
|
||||
"i18n:govoplan-views.remove_assignment_confirm": "The target will no longer inherit this available, default, or required View from this assignment.",
|
||||
"i18n:govoplan-views.remove": "Remove",
|
||||
"i18n:govoplan-views.draft_saved": "View draft saved.",
|
||||
"i18n:govoplan-views.revision_published_value": "Revision {value0} published.",
|
||||
"i18n:govoplan-views.draft_created": "View draft created with all currently available surfaces.",
|
||||
"i18n:govoplan-views.view_archived": "View archived.",
|
||||
"i18n:govoplan-views.assignment_created": "View assignment created.",
|
||||
"i18n:govoplan-views.assignment_updated": "View assignment updated.",
|
||||
"i18n:govoplan-views.assignment_removed": "View assignment removed.",
|
||||
"i18n:govoplan-views.assignments": "Assignments",
|
||||
"i18n:govoplan-views.assignment_precedence_help": "User and group assignments take precedence over tenant and system assignments. Required assignments cannot be left.",
|
||||
"i18n:govoplan-views.add_assignment": "Add assignment",
|
||||
"i18n:govoplan-views.unavailable_scope_value": "Unavailable {value0}",
|
||||
"i18n:govoplan-views.priority_value": "Priority {value0}",
|
||||
"i18n:govoplan-views.pinned_revision": "Pinned revision",
|
||||
"i18n:govoplan-views.tracks_published": "Tracks published",
|
||||
"i18n:govoplan-views.assignment_active": "Assignment active",
|
||||
"i18n:govoplan-views.edit_assignment": "Edit assignment",
|
||||
"i18n:govoplan-views.no_assignments": "No View assignments exist in this scope.",
|
||||
"i18n:govoplan-views.add_view_assignment": "Add View assignment",
|
||||
"i18n:govoplan-views.edit_view_assignment": "Edit View assignment",
|
||||
"i18n:govoplan-views.save": "Save",
|
||||
"i18n:govoplan-views.target_level": "Target level",
|
||||
"i18n:govoplan-views.system": "System",
|
||||
"i18n:govoplan-views.tenant": "Tenant",
|
||||
"i18n:govoplan-views.group": "Group",
|
||||
"i18n:govoplan-views.user": "User",
|
||||
"i18n:govoplan-views.target": "Target",
|
||||
"i18n:govoplan-views.select_scope_value": "Select {value0}",
|
||||
"i18n:govoplan-views.select_a_scope_value": "Select a {value0}",
|
||||
"i18n:govoplan-views.search_scope_value": "Search {value0}s",
|
||||
"i18n:govoplan-views.no_matching_scope_value": "No matching {value0}s.",
|
||||
"i18n:govoplan-views.access_directory_unavailable": "The Access directory is not available.",
|
||||
"i18n:govoplan-views.current_system": "Current system",
|
||||
"i18n:govoplan-views.current_tenant": "Current tenant",
|
||||
"i18n:govoplan-views.view": "View",
|
||||
"i18n:govoplan-views.mode": "Mode",
|
||||
"i18n:govoplan-views.available": "Available",
|
||||
"i18n:govoplan-views.default": "Default",
|
||||
"i18n:govoplan-views.required": "Required",
|
||||
"i18n:govoplan-views.priority": "Priority",
|
||||
"i18n:govoplan-views.pin_revision": "Pin current published revision",
|
||||
"i18n:govoplan-views.pin_revision_help": "Pinned assignments keep the selected revision. Unpinned assignments follow future published revisions.",
|
||||
"i18n:govoplan-views.required_missing_value": "This revision cannot be required because it hides: {value0}.",
|
||||
"i18n:govoplan-views.required_warning": "Required Views cannot be left by affected users. The selector and administration escape surfaces remain available.",
|
||||
"i18n:govoplan-views.filter_surfaces": "Filter modules and surfaces",
|
||||
"i18n:govoplan-views.filter_view_surfaces": "Filter View surfaces",
|
||||
"i18n:govoplan-views.surface_count": "{value0}/{value1} surfaces",
|
||||
"i18n:govoplan-views.surface_detail": "{value0} · {value1}",
|
||||
"i18n:govoplan-views.no_matching_surfaces": "No matching surfaces."
|
||||
},
|
||||
de: {
|
||||
"i18n:govoplan-views.views": "Ansichten",
|
||||
"i18n:govoplan-views.view_selector": "Ansichtsauswahl",
|
||||
"i18n:govoplan-views.system_views_administration": "Systemweite Ansichten verwalten",
|
||||
"i18n:govoplan-views.tenant_views_administration": "Mandantenansichten verwalten",
|
||||
"i18n:govoplan-views.personal_and_group_views": "Persönliche und Gruppenansichten",
|
||||
"i18n:govoplan-views.view_selection_failed": "Die Ansicht konnte nicht ausgewählt werden.",
|
||||
"i18n:govoplan-views.required_by_administrator": "Diese Ansicht wurde administrativ vorgeschrieben.",
|
||||
"i18n:govoplan-views.selector_help": "Wählen Sie aus, welche Teile von GovOPlaN angezeigt werden.",
|
||||
"i18n:govoplan-views.current_view": "Aktuelle Ansicht",
|
||||
"i18n:govoplan-views.full_interface": "Vollständige Oberfläche",
|
||||
"i18n:govoplan-views.no_personal_access": "Sie haben keinen Zugriff auf persönliche oder gruppeneigene Ansichtsdefinitionen.",
|
||||
"i18n:govoplan-views.view_owner": "Eigentümerschaft der Ansicht",
|
||||
"i18n:govoplan-views.my_views": "Meine Ansichten",
|
||||
"i18n:govoplan-views.personal_description": "Entwerfen Sie persönliche Oberflächenansichten. Durch Veröffentlichung wird die Ansicht für dieses Konto verfügbar.",
|
||||
"i18n:govoplan-views.group_value": "Gruppe: {value0}",
|
||||
"i18n:govoplan-views.group_description": "Entwerfen Sie wiederverwendbare Oberflächenansichten für diese Gruppe. Durch Veröffentlichung wird die Ansicht für alle aktuellen Gruppenmitglieder verfügbar.",
|
||||
"i18n:govoplan-views.system_views": "Systemansichten",
|
||||
"i18n:govoplan-views.tenant_views": "Mandantenansichten",
|
||||
"i18n:govoplan-views.group_views": "Gruppenansichten",
|
||||
"i18n:govoplan-views.system_description": "Veröffentlichen Sie wiederverwendbare Oberflächenansichten und weisen Sie systemweite Vorgaben zu.",
|
||||
"i18n:govoplan-views.tenant_description": "Passen Sie die sichtbare Oberfläche für diesen Mandanten, seine Gruppen und einzelne Benutzer an.",
|
||||
"i18n:govoplan-views.group_scope_description": "Entwerfen Sie wiederverwendbare Oberflächenansichten für Mitglieder dieser Gruppe.",
|
||||
"i18n:govoplan-views.user_scope_description": "Entwerfen Sie persönliche Oberflächenansichten für dieses Konto.",
|
||||
"i18n:govoplan-views.loading": "Ansichtsinformationen werden geladen.",
|
||||
"i18n:govoplan-views.busy": "Eine Ansichtsoperation wird gerade ausgeführt.",
|
||||
"i18n:govoplan-views.definition_write_required": "Die Schreibberechtigung für Ansichtsdefinitionen ist erforderlich.",
|
||||
"i18n:govoplan-views.assignment_write_required": "Die Schreibberechtigung für Ansichtszuweisungen ist erforderlich.",
|
||||
"i18n:govoplan-views.navigation_and_route_surfaces_required": "Der installierte Oberflächenkatalog muss Navigations- und Routeneinträge enthalten.",
|
||||
"i18n:govoplan-views.no_pending_changes": "Nehmen Sie vor dem Speichern eine Änderung vor.",
|
||||
"i18n:govoplan-views.name_required": "Geben Sie einen Ansichtsnamen ein.",
|
||||
"i18n:govoplan-views.inherited_definition_read_only": "Geerbte Ansichtsdefinitionen sind in diesem Bereich schreibgeschützt.",
|
||||
"i18n:govoplan-views.archived_definition_read_only": "Archivierte Ansichtsdefinitionen sind schreibgeschützt.",
|
||||
"i18n:govoplan-views.published_definition_required": "Veröffentlichen Sie mindestens eine Ansicht, bevor Sie eine Zuweisung erstellen.",
|
||||
"i18n:govoplan-views.inherited_assignment_read_only": "Diese Zuweisung wurde aus einem höheren Bereich geerbt und muss dort geändert werden.",
|
||||
"i18n:govoplan-views.assignment_target_required": "Wählen Sie ein Zuweisungsziel aus.",
|
||||
"i18n:govoplan-views.assignment_target_immutable": "Das Ziel kann nach dem Erstellen dieser Zuweisung nicht geändert werden.",
|
||||
"i18n:govoplan-views.assignment_view_immutable": "Die Ansicht kann nach dem Erstellen dieser Zuweisung nicht geändert werden.",
|
||||
"i18n:govoplan-views.required_view_must_keep_escape_surfaces": "Eine vorgeschriebene Ansicht muss Auswahl und administrative Rückkehrmöglichkeiten enthalten.",
|
||||
"i18n:govoplan-views.views_administration_is_read_only": "Die Ansichtsverwaltung ist schreibgeschützt.",
|
||||
"i18n:govoplan-views.required_action": "Erforderliche Aktion",
|
||||
"i18n:govoplan-views.responsible_actor": "Zuständige Stelle",
|
||||
"i18n:govoplan-views.destination": "Ziel",
|
||||
"i18n:govoplan-views.view_manager_or_scope_owner": "Eine Ansichtsverwaltung oder Eigentümerschaft dieses Bereichs",
|
||||
"i18n:govoplan-views.request_view_management_permission": "Fordern Sie die passende Berechtigung für Ansichtsdefinitionen oder -zuweisungen an.",
|
||||
"i18n:govoplan-views.views_administration": "Administration oder Einstellungen > Ansichten",
|
||||
"i18n:govoplan-views.assignment_directory_unavailable": "Das Verzeichnis der Zuweisungsziele ist nicht verfügbar.",
|
||||
"i18n:govoplan-views.enable_access_or_choose_a_scope_without_a_directory_target": "Aktivieren Sie Access oder wählen Sie ein System- oder Mandantenziel.",
|
||||
"i18n:govoplan-views.module_administration": "Administration > Module",
|
||||
"i18n:govoplan-views.reload_views": "Ansichten neu laden",
|
||||
"i18n:govoplan-views.new_view": "Neue Ansicht",
|
||||
"i18n:govoplan-views.definitions": "Definitionen",
|
||||
"i18n:govoplan-views.view_definitions": "Ansichtsdefinitionen",
|
||||
"i18n:govoplan-views.revision_value": "Revision {value0}",
|
||||
"i18n:govoplan-views.no_definitions": "In diesem Bereich wurden keine Ansichten definiert.",
|
||||
"i18n:govoplan-views.inherited": "Geerbt",
|
||||
"i18n:govoplan-views.draft_revision_value": "Entwurfsrevision {value0}",
|
||||
"i18n:govoplan-views.published_revision_value": "veröffentlichte Revision {value0}",
|
||||
"i18n:govoplan-views.not_published": "nicht veröffentlicht",
|
||||
"i18n:govoplan-views.discard": "Verwerfen",
|
||||
"i18n:govoplan-views.save_revision": "Revision speichern",
|
||||
"i18n:govoplan-views.publish": "Veröffentlichen",
|
||||
"i18n:govoplan-views.archive_view": "Ansicht archivieren",
|
||||
"i18n:govoplan-views.name": "Name",
|
||||
"i18n:govoplan-views.description": "Beschreibung",
|
||||
"i18n:govoplan-views.visible_surfaces": "Sichtbare Oberflächen",
|
||||
"i18n:govoplan-views.surface_security_help": "Berechtigungsprüfungen bleiben auch bei sichtbaren Oberflächen aktiv. Übergeordnete Oberflächen werden automatisch beibehalten.",
|
||||
"i18n:govoplan-views.selected_count": "{value0} ausgewählt",
|
||||
"i18n:govoplan-views.stale_surfaces_value": "Diese Revision verweist auf entfernte oder derzeit nicht verfügbare Oberflächen: {value0}",
|
||||
"i18n:govoplan-views.remove_stale_references": "Veraltete Verweise entfernen",
|
||||
"i18n:govoplan-views.no_view_selected": "Keine Ansicht ausgewählt",
|
||||
"i18n:govoplan-views.create_projection_help": "Erstellen Sie eine Ansicht, um eine fokussierte Oberfläche zu definieren.",
|
||||
"i18n:govoplan-views.create_view": "Ansicht erstellen",
|
||||
"i18n:govoplan-views.cancel": "Abbrechen",
|
||||
"i18n:govoplan-views.create": "Erstellen",
|
||||
"i18n:govoplan-views.first_draft_help": "Der erste Entwurf zeigt alle aktuellen Oberflächen. Grenzen Sie die Auswahl vor der Veröffentlichung ein.",
|
||||
"i18n:govoplan-views.archive_value_confirm": "‚{value0}‘ archivieren? Bestehende optionale Zuweisungen werden deaktiviert. Vorgeschriebene Zuweisungen müssen zuerst entfernt werden.",
|
||||
"i18n:govoplan-views.archive": "Archivieren",
|
||||
"i18n:govoplan-views.remove_assignment": "Ansichtszuweisung entfernen",
|
||||
"i18n:govoplan-views.remove_assignment_confirm": "Das Ziel erbt diese verfügbare, standardmäßige oder vorgeschriebene Ansicht anschließend nicht mehr aus dieser Zuweisung.",
|
||||
"i18n:govoplan-views.remove": "Entfernen",
|
||||
"i18n:govoplan-views.draft_saved": "Ansichtsentwurf gespeichert.",
|
||||
"i18n:govoplan-views.revision_published_value": "Revision {value0} veröffentlicht.",
|
||||
"i18n:govoplan-views.draft_created": "Ansichtsentwurf mit allen derzeit verfügbaren Oberflächen erstellt.",
|
||||
"i18n:govoplan-views.view_archived": "Ansicht archiviert.",
|
||||
"i18n:govoplan-views.assignment_created": "Ansichtszuweisung erstellt.",
|
||||
"i18n:govoplan-views.assignment_updated": "Ansichtszuweisung aktualisiert.",
|
||||
"i18n:govoplan-views.assignment_removed": "Ansichtszuweisung entfernt.",
|
||||
"i18n:govoplan-views.assignments": "Zuweisungen",
|
||||
"i18n:govoplan-views.assignment_precedence_help": "Benutzer- und Gruppenzuweisungen haben Vorrang vor Mandanten- und Systemzuweisungen. Vorgeschriebene Zuweisungen können nicht verlassen werden.",
|
||||
"i18n:govoplan-views.add_assignment": "Zuweisung hinzufügen",
|
||||
"i18n:govoplan-views.unavailable_scope_value": "{value0} nicht verfügbar",
|
||||
"i18n:govoplan-views.priority_value": "Priorität {value0}",
|
||||
"i18n:govoplan-views.pinned_revision": "Revision angeheftet",
|
||||
"i18n:govoplan-views.tracks_published": "Folgt der Veröffentlichung",
|
||||
"i18n:govoplan-views.assignment_active": "Zuweisung aktiv",
|
||||
"i18n:govoplan-views.edit_assignment": "Zuweisung bearbeiten",
|
||||
"i18n:govoplan-views.no_assignments": "In diesem Bereich bestehen keine Ansichtszuweisungen.",
|
||||
"i18n:govoplan-views.add_view_assignment": "Ansichtszuweisung hinzufügen",
|
||||
"i18n:govoplan-views.edit_view_assignment": "Ansichtszuweisung bearbeiten",
|
||||
"i18n:govoplan-views.save": "Speichern",
|
||||
"i18n:govoplan-views.target_level": "Zielebene",
|
||||
"i18n:govoplan-views.system": "System",
|
||||
"i18n:govoplan-views.tenant": "Mandant",
|
||||
"i18n:govoplan-views.group": "Gruppe",
|
||||
"i18n:govoplan-views.user": "Benutzer",
|
||||
"i18n:govoplan-views.target": "Ziel",
|
||||
"i18n:govoplan-views.select_scope_value": "{value0} auswählen",
|
||||
"i18n:govoplan-views.select_a_scope_value": "{value0} auswählen",
|
||||
"i18n:govoplan-views.search_scope_value": "{value0} suchen",
|
||||
"i18n:govoplan-views.no_matching_scope_value": "Keine passenden Einträge für {value0}.",
|
||||
"i18n:govoplan-views.access_directory_unavailable": "Das Access-Verzeichnis ist nicht verfügbar.",
|
||||
"i18n:govoplan-views.current_system": "Aktuelles System",
|
||||
"i18n:govoplan-views.current_tenant": "Aktueller Mandant",
|
||||
"i18n:govoplan-views.view": "Ansicht",
|
||||
"i18n:govoplan-views.mode": "Modus",
|
||||
"i18n:govoplan-views.available": "Verfügbar",
|
||||
"i18n:govoplan-views.default": "Standard",
|
||||
"i18n:govoplan-views.required": "Vorgeschrieben",
|
||||
"i18n:govoplan-views.priority": "Priorität",
|
||||
"i18n:govoplan-views.pin_revision": "Aktuelle veröffentlichte Revision anheften",
|
||||
"i18n:govoplan-views.pin_revision_help": "Angeheftete Zuweisungen behalten die ausgewählte Revision. Nicht angeheftete Zuweisungen folgen späteren Veröffentlichungen.",
|
||||
"i18n:govoplan-views.required_missing_value": "Diese Revision kann nicht vorgeschrieben werden, weil sie folgende Oberflächen ausblendet: {value0}.",
|
||||
"i18n:govoplan-views.required_warning": "Vorgeschriebene Ansichten können von betroffenen Benutzern nicht verlassen werden. Auswahl und administrative Rückkehrmöglichkeiten bleiben verfügbar.",
|
||||
"i18n:govoplan-views.filter_surfaces": "Module und Oberflächen filtern",
|
||||
"i18n:govoplan-views.filter_view_surfaces": "Ansichtsoberflächen filtern",
|
||||
"i18n:govoplan-views.surface_count": "{value0}/{value1} Oberflächen",
|
||||
"i18n:govoplan-views.surface_detail": "{value0} · {value1}",
|
||||
"i18n:govoplan-views.no_matching_surfaces": "Keine passenden Oberflächen."
|
||||
}
|
||||
};
|
||||
+13
-8
@@ -12,6 +12,7 @@ import {
|
||||
resolveWorkflowView,
|
||||
selectEffectiveView
|
||||
} from "./api/views";
|
||||
import { generatedTranslations } from "./i18n/generatedTranslations";
|
||||
import "./styles/views.css";
|
||||
|
||||
|
||||
@@ -28,7 +29,7 @@ const viewsAdminSections: AdminSectionsUiCapability = {
|
||||
id: "system-views",
|
||||
moduleId: "views",
|
||||
kind: "settings",
|
||||
label: "Views",
|
||||
label: "i18n:govoplan-views.views",
|
||||
group: "SYSTEM",
|
||||
order: 15,
|
||||
surfaceId: "views.admin.system",
|
||||
@@ -49,7 +50,7 @@ const viewsAdminSections: AdminSectionsUiCapability = {
|
||||
id: "tenant-views",
|
||||
moduleId: "views",
|
||||
kind: "settings",
|
||||
label: "Views",
|
||||
label: "i18n:govoplan-views.views",
|
||||
group: "TENANT",
|
||||
order: 15,
|
||||
surfaceId: "views.admin.tenant",
|
||||
@@ -81,7 +82,7 @@ const viewsSettingsSections: SettingsSectionsUiCapability = {
|
||||
sections: [
|
||||
{
|
||||
id: "views",
|
||||
label: "Views",
|
||||
label: "i18n:govoplan-views.views",
|
||||
group: "ui",
|
||||
order: 35,
|
||||
surfaceId: "views.settings.personal",
|
||||
@@ -101,15 +102,19 @@ const viewsSettingsSections: SettingsSectionsUiCapability = {
|
||||
|
||||
export const viewsModule: PlatformWebModule = {
|
||||
id: "views",
|
||||
label: "Views",
|
||||
label: "i18n:govoplan-views.views",
|
||||
version: "0.1.0",
|
||||
optionalDependencies: ["access", "admin", "policy", "workflow"],
|
||||
translations: {
|
||||
en: generatedTranslations.en,
|
||||
de: generatedTranslations.de
|
||||
},
|
||||
viewSurfaces: [
|
||||
{
|
||||
id: "views.selector",
|
||||
moduleId: "views",
|
||||
kind: "selector",
|
||||
label: "View selector",
|
||||
label: "i18n:govoplan-views.view_selector",
|
||||
order: 1,
|
||||
required: true
|
||||
},
|
||||
@@ -117,21 +122,21 @@ export const viewsModule: PlatformWebModule = {
|
||||
id: "views.admin.system",
|
||||
moduleId: "views",
|
||||
kind: "section",
|
||||
label: "System Views administration",
|
||||
label: "i18n:govoplan-views.system_views_administration",
|
||||
order: 20
|
||||
},
|
||||
{
|
||||
id: "views.admin.tenant",
|
||||
moduleId: "views",
|
||||
kind: "section",
|
||||
label: "Tenant Views administration",
|
||||
label: "i18n:govoplan-views.tenant_views_administration",
|
||||
order: 30
|
||||
},
|
||||
{
|
||||
id: "views.settings.personal",
|
||||
moduleId: "views",
|
||||
kind: "section",
|
||||
label: "Personal and group Views",
|
||||
label: "i18n:govoplan-views.personal_and_group_views",
|
||||
order: 40
|
||||
}
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user