Print view with PDF export, board info card, cover fields and logo #15

Closed
Grovy311 wants to merge 0 commits from feature/print-view into main
Collaborator

Seitenansicht im kbp-Design mit PDF-Export über den Browserdruck:

  • Deckblatt, Verteilerübersicht mit Struktur, Verteilerpläne mit Titelblock
  • Verteiler-Infokarte (Nummer, Örtlichkeit, „gespeist von“ vorerst als Freitext, siehe #3)
  • Deckblattfelder am Projekt, Büroangaben, Logo-Upload
  • Migrationen 0007/0008, Snapshot-Schema 6, Restore älterer Snapshots
  • Neu seit #4: Drucker-Icon am Button, weiße Seitenränder beim Drucken im Dark Mode

Ersetzt #4. Keine Abhängigkeiten.

Geprüft auf dem Branch allein: alle drei tsc-Konfigurationen, npm test 429/429, Produktions-Build (build:api + build:web). Zusammen mit allen anderen Branches: 509/509 Tests, konfliktfrei in jeder Merge-Reihenfolge.

Merge-Reihenfolge aller Branches:

  1. fix/client-id-insecure-context (#9)
  2. feature/editor-ui (#10)
  3. feature/cable-sizing (#11)
  4. feature/overview-filters (#12)
  5. feature/circuit-list-usability (#13)
  6. feature/card-look (#14)
  7. feature/print-view (#15)
  8. feature/building-structure (#16)
  9. feature/estimate-balance (#17)

🤖 Generated with Claude Code

Seitenansicht im kbp-Design mit PDF-Export über den Browserdruck: - Deckblatt, Verteilerübersicht mit Struktur, Verteilerpläne mit Titelblock - Verteiler-Infokarte (Nummer, Örtlichkeit, „gespeist von“ vorerst als Freitext, siehe #3) - Deckblattfelder am Projekt, Büroangaben, Logo-Upload - Migrationen `0007`/`0008`, Snapshot-Schema 6, Restore älterer Snapshots - Neu seit #4: Drucker-Icon am Button, weiße Seitenränder beim Drucken im Dark Mode Ersetzt #4. Keine Abhängigkeiten. Geprüft auf dem Branch allein: alle drei `tsc`-Konfigurationen, `npm test` 429/429, Produktions-Build (`build:api` + `build:web`). Zusammen mit allen anderen Branches: 509/509 Tests, konfliktfrei in jeder Merge-Reihenfolge. Merge-Reihenfolge aller Branches: 1. `fix/client-id-insecure-context` (#9) 2. `feature/editor-ui` (#10) 3. `feature/cable-sizing` (#11) 4. `feature/overview-filters` (#12) 5. `feature/circuit-list-usability` (#13) 6. `feature/card-look` (#14) 7. `feature/print-view` (#15) 8. `feature/building-structure` (#16) 9. `feature/estimate-balance` (#17) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Grovy311 added 4 commits 2026-09-26 20:14:46 +02:00
- Seitenansicht (/projects/:projectId/print): tabular cover page, board
  overview with supply structure and power sums, one plan per board with a
  repeating title block; PDF via the browser print dialog with named @page
  rules (A4 portrait cover, A4/A3 landscape plans, page x of y).
- Distribution-board info card (board number, location, fed-from, remark)
  in the board edit dialog, persisted through the additively extended
  distribution-board.update command (migration 0008, snapshot schema 6,
  legacy subtree commands normalized).
- Global document logo upload (PNG/JPEG/SVG, max 2 MB) outside project
  revisions and snapshots.
- fed-from stays free text; the overview hierarchy and cumulated sums are
  preliminary until the feed link is modeled.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Project settings gain siteAddress, workStage, projectLead and
  projectEditor (project.update-settings schema version 3, migration 0009);
  versions 2 and 1 stay executable and keep the current cover values.
  Snapshot schema 6 carries the fields; older versions upgrade with null.
- Global office profile (office name/address) next to the document logo:
  table document_branding_settings, PUT /api/document-branding/office,
  editable from the print view toolbar.
- Cover page reads all fields; empty values show the "[ergänzen]" marker.
  The Planstände editor column shows the project editor.
- Shared logo constants moved to a dependency-free module so the Next.js
  bundler can import them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The "Seitenansicht" link in the project header had text only, while the
other header buttons show an icon plus text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The dark theme sets color-scheme: dark on the root element; Chrome then
paints the page margins of printed pages dark, even with a white
background. The print view forces the light scheme and a white root
background while printing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner

Integriert in main mit Merge-Commit 4643c8d11a.

Anpassungen beim Merge:

  • Konsistenter Datenstand beim Laden: Die Seitenansicht vergleicht die Projektrevision aller geladenen Stromkreislisten mit einem abschließend erneut gelesenen Projektstand (assertPrintRevisionConsistency). Ändert sich das Projekt während des Ladens, erscheint eine Aufforderung zum Neuladen, statt gemischte Daten zu drucken.
  • Vorläufige Verteilerhierarchie: „Gespeist von“ ordnet einen Verteiler nur noch unter, wenn der Text eindeutig zu genau einer Verteilernummer oder -bezeichnung passt. Mehrdeutige Treffer bleiben ohne Zuordnung, der Hinweistext im Druck ist entsprechend angepasst.
  • Leitungsangabe: Im Verteilerplan erscheinen Kabeltyp und Querschnitt (Typ · Querschnitt), vorher wurde bei gesetztem Typ der Querschnitt verschluckt.
  • Tests: 3 neue Modelltests (Revisionsmix, Kabelangabe, mehrdeutiges „gespeist von“), ein Migrationstest (befüllte Datenbank vor 0007/0008 wird ohne Änderung bestehender Datensätze hochgezogen), und die Snapshot-/Restore-Tests prüfen jetzt die neuen Deckblatt- und Verteilerfelder bei Kopie und Wiederherstellung.
  • Doku: docs/print-view.md ergänzt um Abschnitt „Bestehende Datenbanken“ (Backup vor 0007/0008, Snapshot-Schema 6), Verhalten beim Laden und die Abgrenzung globaler Büroangaben. README.md und docs/current-architecture.md nennen die Seitenansicht, Snapshot-Schema 6 und die erweiterte Verteilersuche (Nummer, Örtlichkeit).
Integriert in `main` mit Merge-Commit 4643c8d11a97b7ebb838123176b27b0a2d597bb3. Anpassungen beim Merge: - **Konsistenter Datenstand beim Laden:** Die Seitenansicht vergleicht die Projektrevision aller geladenen Stromkreislisten mit einem abschließend erneut gelesenen Projektstand (`assertPrintRevisionConsistency`). Ändert sich das Projekt während des Ladens, erscheint eine Aufforderung zum Neuladen, statt gemischte Daten zu drucken. - **Vorläufige Verteilerhierarchie:** „Gespeist von“ ordnet einen Verteiler nur noch unter, wenn der Text *eindeutig* zu genau einer Verteilernummer oder -bezeichnung passt. Mehrdeutige Treffer bleiben ohne Zuordnung, der Hinweistext im Druck ist entsprechend angepasst. - **Leitungsangabe:** Im Verteilerplan erscheinen Kabeltyp *und* Querschnitt (`Typ · Querschnitt`), vorher wurde bei gesetztem Typ der Querschnitt verschluckt. - **Tests:** 3 neue Modelltests (Revisionsmix, Kabelangabe, mehrdeutiges „gespeist von“), ein Migrationstest (befüllte Datenbank vor 0007/0008 wird ohne Änderung bestehender Datensätze hochgezogen), und die Snapshot-/Restore-Tests prüfen jetzt die neuen Deckblatt- und Verteilerfelder bei Kopie und Wiederherstellung. - **Doku:** `docs/print-view.md` ergänzt um Abschnitt „Bestehende Datenbanken“ (Backup vor 0007/0008, Snapshot-Schema 6), Verhalten beim Laden und die Abgrenzung globaler Büroangaben. `README.md` und `docs/current-architecture.md` nennen die Seitenansicht, Snapshot-Schema 6 und die erweiterte Verteilersuche (Nummer, Örtlichkeit).
jappel closed this pull request 2026-09-27 10:59:32 +02:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: jappel/leistungsbilanz-ts#15
No description provided.