-
{{ publishedLabel() }} {{ publishedVersion() }}
+
Gepubliceerde versie:
+ {{ publishedVersion() }}
@if (pendingPublish()) {
{{ impactText() }}
-
- {{ confirmLabel() }}
-
-
- {{ cancelLabel() }}
-
+
Bevestigen
+
Annuleren
} @else {
Publiceren
- {{ publishLabel() }}
-
@if (!draftValid()) {
{{ invalidHint() }}
}
}
-
- {{ proefbriefLabel() }}
-
+
Proefbrief
`,
})
@@ -300,14 +217,6 @@ export class OrgTemplateEditorComponent {
protected readonly MIN = MARGIN_MIN_MM;
protected readonly MAX = MARGIN_MAX_MM;
- protected logoCategory = computed(() =>
- this.uploadState().categories.find((c) => c.categoryId === LOGO_CATEGORY),
- );
- protected logoUploads = computed(() =>
- this.uploadState().uploads.filter((u) => u.categoryId === LOGO_CATEGORY),
- );
- protected logoRejection = computed(() => this.uploadState().rejections[LOGO_CATEGORY]);
-
protected onSelectSubOrg(event: Event) {
this.selectSubOrg.emit((event.target as HTMLSelectElement).value);
}
@@ -334,20 +243,9 @@ export class OrgTemplateEditorComponent {
$localize`:@@orgTemplate.publish.impact:Dit raakt ${this.unsentBriefs()}:count: nog niet verzonden brieven. Publiceren?`,
);
- protected subOrgLabel = input($localize`:@@orgTemplate.subOrg:Organisatieonderdeel`);
protected marginsLegend = input(
$localize`:@@orgTemplate.margins:Marges (mm, tussen ${MARGIN_MIN_MM}:min: en ${MARGIN_MAX_MM}:max:)`,
);
- protected logoHeading = input($localize`:@@orgTemplate.logo:Logo`);
- protected historyHeading = input($localize`:@@orgTemplate.history:Versiegeschiedenis`);
- protected noHistory = input($localize`:@@orgTemplate.history.none:Nog niets gepubliceerd.`);
- protected versionLabel = input($localize`:@@orgTemplate.version:Versie`);
- protected rollbackLabel = input($localize`:@@orgTemplate.rollback:Terugzetten in concept`);
- protected publishedLabel = input($localize`:@@orgTemplate.published:Gepubliceerde versie:`);
- protected publishLabel = input($localize`:@@orgTemplate.publish:Publiceren`);
- protected confirmLabel = input($localize`:@@orgTemplate.publish.confirm:Bevestigen`);
- protected cancelLabel = input($localize`:@@orgTemplate.publish.cancel:Annuleren`);
- protected proefbriefLabel = input($localize`:@@orgTemplate.proefbrief:Proefbrief`);
protected invalidHint = input(
$localize`:@@orgTemplate.invalid:Vul organisatienaam en ondertekenaar in; marges tussen ${MARGIN_MIN_MM}:min: en ${MARGIN_MAX_MM}:max: mm.`,
);
diff --git a/apps/ssp/src/app/brief/ui/org-template-editor/version-history.component.ts b/apps/ssp/src/app/brief/ui/org-template-editor/version-history.component.ts
new file mode 100644
index 0000000..c65309d
--- /dev/null
+++ b/apps/ssp/src/app/brief/ui/org-template-editor/version-history.component.ts
@@ -0,0 +1,78 @@
+import { Component, input, output } from '@angular/core';
+import { DatePipe } from '@angular/common';
+import { HeadingComponent } from '@shared/ui/heading/heading.component';
+import { ButtonComponent } from '@shared/ui/button/button.component';
+import { OrgTemplateVersion } from '@brief/domain/org-template';
+
+/**
+ * Organism: the org-template editor's version-history block, split out of
+ * `org-template-editor.component.ts` (RD-25) — one of its two self-contained
+ * mutation clusters. Presentational: `rollback` is the parent's own output,
+ * re-emitted unchanged.
+ */
+@Component({
+ selector: 'app-version-history',
+ imports: [DatePipe, HeadingComponent, ButtonComponent],
+ styles: [
+ `
+ :host {
+ display: block;
+ }
+ .section {
+ margin-block-start: var(--rhc-space-max-xl);
+ }
+ .history-list {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ display: flex;
+ flex-direction: column;
+ gap: var(--rhc-space-max-sm);
+ }
+ .history-row {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: var(--rhc-space-max-md);
+ border-block-end: var(--rhc-border-width-sm) solid var(--rhc-color-border-default);
+ padding-block-end: var(--rhc-space-max-sm);
+ }
+ .published {
+ color: var(--rhc-color-foreground-subtle);
+ }
+ `,
+ ],
+ template: `
+