refactor: strip WP-/RB- ticket refs from apps and libs (RD-18)

204 WP-NN/RB-NN comments named a closed ticket instead of the code they
sit next to. git blame already records history and stays correct when
code moves; the comment does not. This sweep removes the reference and
keeps the sentence, across 95 files in apps/ and libs/ plus the
behaviour-spec generator's header text.

Eleven references stay: five story files justify an a11y disable per
the README's rule, and one line in a11y.mdx documents that convention.
Two sentences needed a rewrite, not a deletion, so the reference's
meaning survives its removal. behaviour-spec.mdx is regenerated, not
hand-edited.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
eho
2026-09-04 21:23:07 +02:00
co-authored by Claude Sonnet 5
parent 3895588b9a
commit dd11eafe50
102 changed files with 361 additions and 197 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ import { AuditAdapter, parseAuditEntries } from '@beheer/infrastructure/audit.ad
type Err = Error | undefined;
/**
* Admin view of the persisted authz/PII-reveal audit trail (WP-41/42). One root singleton
* Admin view of the persisted authz/PII-reveal audit trail. One root singleton
* owning the list as a RemoteData signal, parsed at the trust boundary. Read-only.
*/
@Injectable({ providedIn: 'root' })
@@ -44,7 +44,7 @@ function setup(blobPresenter?: BlobPresenter): StamdataStore {
return TestBed.inject(StamdataStore);
}
describe('StamdataStore undo/redo (WP-32)', () => {
describe('StamdataStore undo/redo', () => {
it('records a cell edit, undoes and redoes it', async () => {
const store = setup();
await store.load();
@@ -82,10 +82,10 @@ describe('StamdataStore undo/redo (WP-32)', () => {
});
});
// --- RB-28 (TE-006): download() ends in BLOB_PRESENTER.download, not raw DOM calls,
// --- TE-006: download() ends in BLOB_PRESENTER.download, not raw DOM calls,
// so the seam makes both the guard's branches and the success path assertable. ---
describe('StamdataStore.download (RB-28)', () => {
describe('StamdataStore.download', () => {
it('does not call the presenter while the two-clause guard blocks (nothing dirty yet)', async () => {
// Given a freshly loaded table with no edits — canDownload() is false.
const { presenter, downloaded } = fakeBlobPresenter();
@@ -99,7 +99,7 @@ export class StamdataStore {
this.previewDate.set(date);
}
/** Undo/redo over the edited rows (WP-32): the document snapshot is `rows`; restore via
/** Undo/redo over the edited rows: the document snapshot is `rows`; restore via
the existing `Seed` msg. Only real edits are recorded (a no-op reduce leaves no step). */
private history = createHistory<readonly StamRow[]>(50);
readonly canUndo = this.history.canUndo;
+1 -1
View File
@@ -1,4 +1,4 @@
/** One authz/PII-reveal audit row as the FE sees it (WP-41 backend → WP-42 view). Pure
/** One authz/PII-reveal audit row as the FE sees it. Pure
type; data-minimised (no PII) by construction on the server. */
export interface AuditEntry {
at: string; // ISO timestamp
@@ -5,8 +5,8 @@ import type { AuthzAuditDto } from '@shared/infrastructure/api-client';
import { AuditEntry } from '@beheer/domain/audit-entry';
/**
* Infrastructure adapter for the admin authz/PII-reveal audit trail (`GET /admin/audit`,
* WP-41). The single place the ApiClient lives for audit; the store parses at the boundary.
* Infrastructure adapter for the admin authz/PII-reveal audit trail (`GET /admin/audit`).
* The single place the ApiClient lives for audit; the store parses at the boundary.
*/
@Injectable({ providedIn: 'root' })
export class AuditAdapter {
+1 -1
View File
@@ -9,7 +9,7 @@ import { successOr } from '@shared/application/remote-data';
import { AuditStore } from '@beheer/application/audit.store';
/**
* Admin page: the persisted authz/PII-reveal audit trail (WP-41/42) — data-minimised, no PII.
* Admin page: the persisted authz/PII-reveal audit trail — data-minimised, no PII.
* Deny-by-default capability gate (`cases:manage`, reused for admin audit read). Read-only table.
*/
@Component({
+1 -1
View File
@@ -7,7 +7,7 @@ import { AccessStore } from '@shared/application/access.store';
import { FeatureFlagStore } from '@shared/application/feature-flags.store';
/**
* Admin page: toggle runtime feature flags (WP-47). Deny-by-default capability gate
* Admin page: toggle runtime feature flags. Deny-by-default capability gate
* (`flags:manage`). The catalog is server-owned (code); this only flips the on/off state, which
* the whole app reads via the same `FeatureFlagStore`.
*/
@@ -242,13 +242,13 @@ export class StamdataTableEditorComponent {
protected expireLabel = $localize`:@@beheer.expire:Sluiten per vandaag`;
private removeConfirm = $localize`:@@beheer.removeConfirm:Rij verwijderen? Als andere gegevens ernaar verwijzen, faalt de build-controle (CI). Bij een tabel met een geldigheidsperiode kunt u de rij beter sluiten (geldig tot) in plaats van verwijderen.`;
/** Deletions can orphan a reference (the CI gate catches it); confirm first (WP-48). */
/** Deletions can orphan a reference (the CI gate catches it); confirm first. */
protected onRemove(index: number) {
if (confirm(this.removeConfirm)) this.rowRemoved.emit(index);
}
/** Steer temporal tables toward expiring (close the validity per today) over hard delete —
preserves history and can't orphan a reference that was valid earlier (WP-48). */
preserves history and can't orphan a reference that was valid earlier. */
protected onExpire(index: number) {
const col = this.table().columns.find((c) => /geldigtot/i.test(c.name));
if (col) this.cellEdited.emit({ row: index, column: col.name, value: this.today });
+2 -2
View File
@@ -79,7 +79,7 @@ export class StamdataPage {
constructor() {
// Load once the capability resolves to `allowed` (a 403 GET would be wasted otherwise).
// Depends only on canEdit() + a plain flag — never on the store model, so dispatching
// `Loading` inside load() can't retrigger this effect (the WP-26 runaway-loop lesson).
// `Loading` inside load() can't retrigger this effect (the runaway-loop lesson).
effect(() => {
if (this.canEdit() && !this.loadRequested) {
this.loadRequested = true;
@@ -92,7 +92,7 @@ export class StamdataPage {
void this.store.load();
}
/** Ctrl/Cmd+Z undo, Ctrl/Cmd+Shift+Z redo (WP-32). Ignored while focus is in a grid
/** Ctrl/Cmd+Z undo, Ctrl/Cmd+Shift+Z redo. Ignored while focus is in a grid
cell input so the browser's native text-undo still works there (mirrors brief.page). */
protected onKeydown(e: KeyboardEvent) {
if (!this.canEdit() || !(e.ctrlKey || e.metaKey) || (e.key !== 'z' && e.key !== 'Z')) return;