e14f94ba63
SSR auto-purge: purge only the pages that show a saved record, megamenu purges everything
orascheandClaude Opus 5.52026-11-12 12:16:44 +01:00
06b9bc8293
SSR cockpit: label the response time, leave test reports out of the client error counts (0114-FE)
orascheandClaude Opus 5.52026-11-12 11:42:57 +01:00
cda26947f2
Ordner mit genau einer Uebersichtsseite leiten auf diese (RF Gateway, AV over IP & KVM)
orascheandClaude Fable 5.12026-11-11 10:59:02 +01:00
1b72e65a1d
301 fuer die /products-Gruppenordner auf /products (Entscheidung Harry 11.11.)
orascheandClaude Fable 5.12026-11-11 10:56:43 +01:00
a9923e19e0
Paginierte/gefilterte Listen: eigener Titel und Description (Page N, Kategorie)
orascheandClaude Fable 5.12026-11-11 10:49:48 +01:00
8cdcd99eb3
Why-VITEC-Band auf den 3 alten Kategorieseiten (0106-FE, Entscheidung Harry)
orascheandClaude Fable 5.12026-11-11 10:25:29 +01:00
086a178341
SSR module: rebuilt on TYPO3 module layout, cards and core components
orascheandClaude Fable 5.12026-11-11 10:15:42 +01:00
07f74e372b
Antworten auf 0100/0102/0104/0108-FE: Canonical paginierter Listen, JSON-LD-Breadcrumb auf den Datensatz, Story-Liste ohne crops, Startseiten-Daten
orascheandClaude Fable 5.12026-11-11 10:14:49 +01:00
8f8ae039d4
Real JSON null for empty product feature; SSR warm-cache button and CLI
orascheandClaude Fable 5.22026-11-10 10:59:24 +01:00
cb53ff67ee
SSR dashboard: new errors-and-hit-rate tile fed by /__stats samples in vitec:ssr-health (stat_* columns in healthlog)
orascheandClaude Fable 52026-11-09 22:51:13 +01:00
bc2e031b0c
SSR health: alert mails on ok/down transitions + auto-failover to SPA after N consecutive misses (SSR_ALERT_EMAIL / SSR_FAILOVER_AFTER in var/vitec-ssr-purge.env)
orascheandClaude Fable 52026-11-09 22:18:06 +01:00
8e67f5db23
Sub-solution workbook pipeline on layout 5, fix element order in both importers - New, deliberately separate pipeline for sub-solutions (markets and solutions must never break each other): generator vitec:generate-subsolution-workbooks (list from the page tree below /solutions, 39 workbooks, every sub-solution matched to its record), SubsolutionWorkbookImporter + CLI vitec:import-subsolution-workbooks, and a "Sub-Solutions" tab in the VITEC Import module with its own inbox migrations/subsolutions_xlsx_in/ - Targets the existing template 5 "Solution Detail" without changing it: hero element in colPos 1, the remaining sections in fixed order in colPos 0, found again by CType on re-import; existing empty sub-solution pages are switched to layout 5, missing ones created hidden; detail_page set on the solution record - Workbook per the Figma "07 Solution Detail page": hero without video teaser, intro with headline and without learn-more/portfolio, extended icon list, own page-layout reference image - Shared content elements: market hero/intro/insights relabelled "Market/Solution", market intro gains the optional intro_headline field (new column, requires extension:setup) - Fix: DataHandler puts every NEW record with a positive pid at the top of its column, so pages built in one run came out reversed. Both importers now track the page order per colPos and write tt_content.sorting explicitly after the DataHandler run; re-applying repairs pages imported earlier (verified on the control-room sub-solution and sub-market page 443) - migrations/fill_test_subsolution.php: realistic test content from vitec.com copy and images for the control-room sub-solution - Docs section 5z
orasche2026-10-07 15:39:18 +02:00
3d5459b8d2
Sub-market workbook import as a backend module tab - Extract the complete import logic (label-scan reading, page find-or-create, slot filling, content-idempotent image attach) from ImportSubmarketWorkbooksCommand into the shared service SubmarketWorkbookImporter; the CLI command and the new controller are thin shells around importFile(), so both entry points cannot drift. CLI regression verified: identical dry-run report for the reference workbook (12 elements, page 443) - New "Sub-Markets" tab in the VITEC Import module (SubmarketImportController + Import/Submarkets.html): upload multiple filled workbooks into the SAME inbox the CLI uses (migrations/submarkets_xlsx_in/), per-file checkboxes, dry-run and apply buttons, result cards with the familiar report and a direct link into the page module; backend dry-run verified against the CLI - Submitted filenames are whitelisted against the actual directory listing (no path traversal); uploads restricted to sanitized .xlsx basenames - Routes submarkets/submarket_upload/submarket_process in Modules.php, Sub-Markets tab link in the sibling module views, ok/danger badge colors in backend-import.css - Docs section 5y (incl. operations note: apply in small batches in the module, mass runs via CLI - image downloads run inside the web request)
orasche2026-10-05 15:35:40 +02:00
d496877a53
fe_comment: widget v2, overview link setting and inline mail images - Rebuild the widget server-backed: it renders only when GET state allows (logged-in FE user of the configured group), so the script tag is safe on public pages; form with mini rich text (bold/italic/ list), file attachment chips and Ctrl+V image paste - a paste lazily creates the draft feedback, uploads and inserts the image inline - Note pad badge mirrors the server item count; the pad button links to the overview page via new extension setting overviewPid, exposed as overviewUrl in GET state (slug lookup) - Embed /fileadmin images of notes into the feedback mail as CID parts: relative srcs are dead in mail clients and dev sits behind basic auth; attachment links stay absolute URLs - public/widget-test.html: dev test page, doubles as the reference implementation of the React login flow (fetch felogin JSON form incl. __RequestToken, urlencoded POST to /_json + form.action) - Docs section 5x (fe_comment v2 incl. CSRF login lesson, templateRootPaths.10 collision, cache:flush before extension:setup)
orasche2026-10-02 16:57:52 +02:00