cta-Block bekommt seinen Entitaets-Bezug (Auswahl + Interessens-Automatik)
Der cta-Block ist mit 252 Vorkommen der viert-haeufigste Block im Seiten-Bestand und war der einzige Conversion-Block ohne Entitaets-Bezug - der Redakteur tippte Texte ein zweites Mal ab, die als CTA-Entitaet laengst gepflegt waren.
- Katalog-Eintrag 'cta' mit paletteHidden (Sonder-Maske BLEIBT, Inline-Weg ist der Rueckfall): _cta (Auswahl echter Werte), _ctaAuto, _ctaInterest. - DREI Marker-Entscheidungen weichen vom popup-Nachbarn ab, alle am Bestand gemessen (2026-08-23, 55 Datensaetze): KEIN scopeByWebsite (_website fehlt 55/55), KEIN markUnpublished (published fehlt 55/55 - die popup-Regel prueft published !== true und haette alle 55 als 'nicht veroeffentlicht' gekennzeichnet), dafuer markForeignLanguage MIT dem neuen langField. - CatalogRefSource.langField (neu, Vorgabe 'lang'): CTAs fuehren ihre Sprache in 'locale'. Ohne den Zeiger laese foreignLanguageSuffix 'lang', saehe undefined und kennzeichnete NICHTS - waehrend der Zeichner sehr wohl filtert. Der Schalter waere lautlos wirkungslos gewesen. - block-renderer: catalog-block-editor unter der cta-Sondermaske verdrahtet. Ohne diese Zeile waere der ganze Katalog-Eintrag unsichtbar. - Beide Bestands-Waechter der Probe-Datei erweitert (Renderer-Schluessel-Gleichheit, Zeichenketten-Filter-Ausnahme) plus 6 neue cta-Proben. 64/64 gruen; Flip-Probe belegt (langField + locale-Projektion entfernt -> genau 2 rot).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Newpage-editor
Feld "Frühere Adressen" in der Seiten-Maske
Neben dem Adress-Kürzel ein mehrwertiges Feld (Chips, dem bestehenden Schlagwort-Muster folgend): der Redakteur sieht die automatisch fortgeschriebenen Vorgänger UND kann einen falsch angehängten Eintrag entfernen — der abweichende Wert gewinnt serverseitig gegen die Automatik.
- eigene Kopie der Liste im Dialog, damit "Abbrechen" wirklich abbricht (dieselbe Falle, die der Kommentar für die Schlagwörter beschreibt) - eingetippte Adressen werden auf die gespeicherte Schreibweise gebracht (kein führender/abschließender Schrägstrich) — sonst leitet die Adresse nie um - alle vier Sprachen (de/en/it/es)
11 Proben: Schreibweise + Sprach-Vollständigkeit, je mit Positiv-Kontrolle.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Newpage-editor
dynamische UCD-Rolle je Baustein anbieten und anzeigen
Der Bauer bot `settings.id` bisher UEBERHAUPT NICHT an (15 Schluessel, `id` keiner davon) — ein Redakteur konnte einen Baustein also nicht einmal von Hand als dynamisch markieren, obwohl der Renderer die Kante seit 2026-08-23 traegt.
- `ucd-slots.ts`: dritte Kopie der 13 Vertrags-Namen mit Klartext-Beschriftungen; angeboten werden nur die 7, die eine DOM-Kennung brauchen. `h1`-`h6` bewusst nicht — der Klient findet sie ueber den Element-Namen. - Panel "Kennung & dynamischer Inhalt": Auswahl der Rolle PLUS Freitext-Anker. Beide schreiben auf dieselbe `settings.id`, deshalb sperrt eine gewaehlte Rolle das Anker-Feld — die Grenze "ein Baustein traegt genau eine Kennung" wird von der Oberflaeche gezeigt, nicht in einer Fussnote erklaert. - Dauerhafte Marke am Baustein auf der Leinwand (nicht erst beim Ueberfahren), nur ein Merkmal, keine eigene Aktions-Leiste.
Proben: 10 neue am gerenderten Bauteil + 7 auf der Liste; Gruppe 95/95 gruen. Vier Flip-Proben beissen (h1 in der Auswahl 4 rot, Freitext als Rolle 2 rot, Marke aus + Anker-Sperre aus 3 rot). Renderer-Probe cms-api 11/11 unveraendert.
Newpage-editor
Pflege-Flaeche fuer die Entitaets-Bloecke — Auswahl, Automatik, Filter
Der Renderer bedient elf Entitaets-Blocktypen; der Editor bot die Felder fuer drei an. Die uebrigen waren ueber die Schnittstelle voll bedienbar und ueber die Oberflaeche gar nicht.
🔴 Die elf zerfallen in DREI Klassen, nicht in eine — der Brief nahm eine an: • Im Katalog (references/partners/portfolio/jobs): Felder ergaenzt. `portfolio` hatte KEINEN Auto-Schalter, `jobs` trug null Entitaets-Schluessel, obwohl der Eintrag seit dem 2026-08-21 im Katalog steht und damit versorgt aussah. • Mit Sonder-Maske (gallery/faq/logos/testimonial/pricing): ein Katalog-Eintrag allein waere hier TOT — `block-renderer` hat fuer sie eigene @case-Zweige, der Katalog-Editor laeuft nur im @default. Sie bekommen den Katalog-Editor jetzt ZUSAETZLICH unter die Sonder-Maske; der Inline-Weg bleibt unangetastet. • Im Editor gar nicht vorhanden (awards/quotes): weder Kachel noch Maske — sie waren nicht bloss unpflegbar, sie waren nicht EINFUEGBAR.
Neu: `entity-picker-field` — kuratierte Auswahl MIT Reihenfolge. Ein `mat-select multiple` traegt das strukturell nicht (es liefert Options- statt Wahl-Reihenfolge), und bei der Galerie IST die Reihenfolge die Kuration; der Renderer haelt sie ausdruecklich ein. Verschieben per Ziehen, wie es dieser Ordner schon tut (team/stats/navigation).
Gemessen statt angenommen: die Entitaeten liegen NICHT alle im cms-Modul (References/Partners/CustomerLogos/Ratings/Awards/Portfolios → marketing, Faqs/Quotes → hub, HRJobs → hr, Images → cms, PricingTables → config). `hub` und `hr` kannte der Host-Aufloeser nicht — ein falscher Rechner liefert eine LEERE Auswahl, ohne dass etwas fehlschlaegt.
Der Kriterien-Riegel ist jetzt in der Oberflaeche sichtbar: `_imagesAuto` und `_quotesAuto` ziehen OHNE Kriterium NICHTS (Absicht — 1.303 Bilder bzw. 48.428 importierte Fremdzitate bei je einem Mandanten). Am Renderer gemessen sind das die einzigen zwei mit Riegel; `partners` etwa zieht auch ohne, dort waere die Warnung falsch.
Verify: Bau gruen, Typpruefung gruen, 50/50 Proben. Flip-Proben BEIDSEITIG — verdrehter Feldname, entfernter Riegel-Hinweis und falscher Rechner werden je rot gemeldet (4 Proben), ebenso eine zerstoerte Wahl-Reihenfolge; danach zurueckgerollt und wieder gruen. Die Galerie-Sonder-Maske ist unveraendert.
⚠ Der Ende-zu-Ende-Beleg am laufenden Editor (Feld setzen → speichern → ausliefern) steht aus — siehe Handoff.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015yTiSkb8SH9siwzkjmMDHT