Release govoplan-scheduling v0.1.22: unify interface contracts and documentation

This commit is contained in:
2026-09-08 01:32:52 +02:00
parent 44e53ce2ce
commit 2081bd18c3
8 changed files with 39 additions and 68 deletions
@@ -140,6 +140,7 @@ const I18N = {
actions: "i18n:govoplan-core.actions.c3cd636a",
add: "i18n:govoplan-core.add.61cc55aa",
addRequest: "i18n:govoplan-scheduling.add_scheduling_request.3c71be15",
createPermissionRequired: "i18n:govoplan-scheduling.create_permission_required",
addParticipant: "i18n:govoplan-scheduling.add_participant.6cff957d",
addSlot: "i18n:govoplan-scheduling.add_slot.9fcff3ed",
answered: "i18n:govoplan-scheduling.answered.e0aafffa",
@@ -933,39 +934,17 @@ export default function SchedulingPage({ settings, auth }: { settings: ApiSettin
return (
<WorkspaceFrame as="main" height="viewport" surface="plain" className="scheduling-page" label="Scheduling workspace">
<section className="scheduling-workspace">
<WorkspaceActionBar
scope="workspace"
variant="collection"
refreshable
reloadAction={{ onReload: () => void loadRequests(selected?.id), loading: loading || saving, disabledReason: saving ? I18N.saving : undefined, label: I18N.refresh }}
helpAction={<DocumentationHelpLink reference={{ topicId: "scheduling.find-and-decide-meeting-time", documentationType: "user" }} />}
createAction={<Button type="button" variant="primary" onClick={beginCreate} disabled={!canCreateOrWrite || saving} disabledReason={saving ? I18N.saving : !canCreateOrWrite ? I18N.createPermissionRequired : undefined}><Plus aria-hidden="true" size={16} /> {I18N.newRequest}</Button>}
/>
<div className="scheduling-workspace-layout">
<aside className="scheduling-request-sidebar">
<Card
title={I18N.requests}
actions={(
<WorkspaceActionBar
scope="collection-pane"
variant="collection"
refreshable
reloadAction={{
onReload: () => void loadRequests(selected?.id),
loading: loading || saving,
disabledReason: saving ? I18N.saving : undefined,
label: I18N.refresh
}}
className="scheduling-sidebar-actions"
helpAction={<DocumentationHelpLink
reference={{
topicId: "scheduling.find-and-decide-meeting-time",
documentationType: "user"
}} />}
createAction={canCreateOrWrite ? (
<Button
type="button"
variant="primary"
onClick={beginCreate}
disabled={saving}
disabledReason={saving ? I18N.saving : undefined}>
<Plus aria-hidden="true" size={16} /> {I18N.add}
</Button>
) : undefined}
/>
)}>
<Card title={I18N.requests}>
{loading ? <p className="scheduling-note" role="status">{I18N.loading}</p> : null}
<RequestGroup
title={I18N.myRequests}
@@ -1003,7 +982,6 @@ export default function SchedulingPage({ settings, auth }: { settings: ApiSettin
scope="editor-pane"
variant="editor"
state={saving ? "saving" : draftDirty && !title.trim() ? "invalid" : draftDirty ? "dirty" : "clean"}
className="scheduling-page-header"
contextActions={<div className="scheduling-page-title">
<CalendarCheck aria-hidden="true" size={20} />
<div>
+2
View File
@@ -206,6 +206,7 @@ export const generatedTranslations = {
"i18n:govoplan-scheduling.the_response_replaces_your_previous_availability_choices.74c16d53": "The response replaces your previous availability choices.",
"i18n:govoplan-scheduling.title.768e0c1c": "Title",
"i18n:govoplan-scheduling.unavailable.2c9c1f79": "Unavailable",
"i18n:govoplan-scheduling.create_permission_required": "Creating a scheduling request requires Scheduling write or administration permission. Ask an Access or tenant administrator to grant it.",
"i18n:govoplan-scheduling.unchecked.1b927dec": "Unchecked",
"i18n:govoplan-scheduling.update_response.346233cf": "Update response",
"i18n:govoplan-scheduling.use_a_calendar_for_availability_checks_tentative_holds_a.20ccc1fa": "Use a calendar for availability checks, tentative holds, and the final event.",
@@ -424,6 +425,7 @@ export const generatedTranslations = {
"i18n:govoplan-scheduling.the_response_replaces_your_previous_availability_choices.74c16d53": "Die Antwort ersetzt Ihre vorherige Verfügbarkeitsauswahl.",
"i18n:govoplan-scheduling.title.768e0c1c": "Titel",
"i18n:govoplan-scheduling.unavailable.2c9c1f79": "Nicht verfügbar",
"i18n:govoplan-scheduling.create_permission_required": "Zum Anlegen einer Terminanfrage benötigen Sie Schreib- oder Administrationsrechte für Scheduling. Bitten Sie die Access- oder Mandantenadministration um diese Berechtigung.",
"i18n:govoplan-scheduling.unchecked.1b927dec": "Nicht geprüft",
"i18n:govoplan-scheduling.update_response.346233cf": "Antwort aktualisieren",
"i18n:govoplan-scheduling.use_a_calendar_for_availability_checks_tentative_holds_a.20ccc1fa": "Einen Kalender für Verfügbarkeitsprüfungen, vorläufige Reservierungen und den endgültigen Termin verwenden.",
-29
View File
@@ -145,18 +145,6 @@
padding: 10px 12px;
}
.scheduling-sidebar-actions {
display: flex;
align-items: center;
gap: 6px;
}
.scheduling-sidebar-actions .btn {
display: inline-flex;
align-items: center;
gap: 5px;
}
.scheduling-main-panel {
display: flex;
flex-direction: column;
@@ -176,18 +164,6 @@
overflow: hidden;
}
.scheduling-page-header {
min-height: 58px;
flex: 0 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 10px 14px;
border-bottom: var(--border-line);
background: var(--panel-header);
}
.scheduling-page-title,
.scheduling-page-actions,
.scheduling-card-actions,
@@ -468,11 +444,6 @@
border-bottom: var(--border-line);
}
.scheduling-page-header {
align-items: flex-start;
flex-wrap: wrap;
}
.scheduling-page-actions,
.scheduling-card-actions,
.scheduling-actions {