Skip to content

fix: Tooltip-, CESSDA- und Qualitätsprüfungs-Bugs aus Live-Test (v2.11.3)#52

Merged
daimpad merged 1 commit into
mainfrom
claude/openbyte-dpi-structure-ktomhl
Jun 28, 2026
Merged

fix: Tooltip-, CESSDA- und Qualitätsprüfungs-Bugs aus Live-Test (v2.11.3)#52
daimpad merged 1 commit into
mainfrom
claude/openbyte-dpi-structure-ktomhl

Conversation

@daimpad

@daimpad daimpad commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Überblick

Vier Bugs aus dem Praxis-Feedback bei der Live-Installation behoben.

🐛 Behobene Fehler

1. Hilfe-Tooltip (ⓘ) sprang in die nächste Zeile

Das ⓘ wurde als Geschwister-Element an .cf-field__head gehängt; da das Label block-level ist, brach es in die nächste Zeile um.
→ Das ⓘ wird jetzt innerhalb des .cf-field__label verankert und sitzt damit inline in derselben Zeile wie die Formularfrage.

2. CESSDA-Themenklassifikation ohne Erklärung/Tooltip

Das eigentliche Carbon-Fields-Feld (mit Hilfetext) ist per CSS ausgeblendet (.cf-field:has([data-odw-backing])), das sichtbare Eingabefeld baut JS — dort fehlte jede Erklärung.
→ Das JS-Widget erhält nun denselben ⓘ-Tooltip mit Erklärung (dct:subject) und einer Handlungsaufforderung („Thema eintippen oder auswählen…"). Die passende URI wird weiterhin automatisch verknüpft. Der Tooltip-Code wurde in einen wiederverwendbaren Builder ausgelagert, damit Feld- und Widget-Tooltips identisch aussehen.

3. Fehlende DCAT-AP-Namen in der Qualitätsprüfung

In config/dcat-ap-fields.php trugen Beschreibung, Herausgeber und Lizenz noch die reine Formularfrage als Label, während alle übrigen Indikatoren „Noun (dct:x)" verwenden.
→ Vereinheitlicht zu Beschreibung (dct:description), Herausgeber (dct:publisher), Lizenz (dct:license). Wirkt auch auf die Validierungs-Fehlermeldungen (gleiche Registry-Labels).

4. Qualitäts-Score erst beim zweiten Speichern korrekt

Der Neuberechnungs-Hook lief auf save_post_odw_dataset. WordPress feuert save_post_{post_type} vor dem generischen save_post — und genau dort persistiert Carbon Fields seine Meta-Werte (Priorität 10). Der Score wurde daher aus veralteten Meta-Daten berechnet und stimmte erst nach dem zweiten Speichern.
→ Hook auf save_post (Priorität 30, nach dem CF-Save) verschoben + expliziter Post-Type-Guard. Zusätzlich berechnet der Batch-Import die Qualität jetzt explizit nach dem Schreiben der Metadaten (sein wp_insert_post() feuert save_post, bevor die Meta existieren).

🔧 Betroffene Dateien

  • assets/js/odw-admin-fields.js — Tooltip-Builder ausgelagert, ⓘ ins Label, CESSDA-Tooltip
  • includes/class-admin.phpcessdaWidget.help lokalisiert
  • config/dcat-ap-fields.php — Labels mit DCAT-AP-Namen
  • includes/class-quality.php — Recalc-Hook-Reihenfolge + Post-Type-Guard
  • includes/class-batch-import.php — explizite Qualitätsberechnung nach Import
  • tests/test-registry-schema.php — neuer Test: jedes Label trägt seinen DCAT-AP-Namen
  • i18n (.pot/.po/.mo), Version 2.11.3, CHANGELOG

✅ Qualität

  • PHPCS: 0 Verstöße · PHPStan Level 6: keine Fehler · PHPUnit: 138 Tests grün (1 neu) · JS-Syntax: OK

🤖 Generated with Claude Code

https://claude.ai/code/session_01QipNktYu915Uv3Nj13mWRY


Generated by Claude Code

- Hilfe-Tooltip (i) jetzt im Label verankert -> gleiche Zeile wie die
  Formularfrage (statt Umbruch unter dem block-level Label).
- CESSDA-Themenklassifikation: das ausgeblendete CF-Feld hatte keinen
  sichtbaren Tooltip; das JS-Widget erhaelt nun denselben i-Tooltip mit
  Erklaerung (dct:subject) und Handlungsaufforderung.
- Qualitaetspruefung: Labels Beschreibung/Herausgeber/Lizenz tragen nun
  ihren DCAT-AP-Namen (dct:description/publisher/license), konsistent mit
  den uebrigen Indikatoren (auch in Validierungsmeldungen).
- Qualitaets-Score beim ersten Speichern korrekt: Recalc-Hook von
  save_post_odw_dataset auf generisches save_post (Prio 30, nach dem
  Carbon-Fields-Save bei Prio 10) verschoben + Post-Type-Guard. WordPress
  feuert save_post_{post_type} vor save_post, daher lasen wir zuvor
  veraltete Meta (Score erst beim 2. Speichern korrekt). Batch-Import
  berechnet die Qualitaet nun explizit nach dem Schreiben der Meta.
- Neuer Registry-Test: jedes Label traegt seinen DCAT-AP-Property-Namen.

Version 2.11.3, CHANGELOG, i18n (.pot/.po/.mo).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QipNktYu915Uv3Nj13mWRY
@daimpad daimpad merged commit c1fc658 into main Jun 28, 2026
10 checks passed
@daimpad daimpad deleted the claude/openbyte-dpi-structure-ktomhl branch June 28, 2026 09:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants