Skip to content

Improve block editing experience with declarative metadata and flattened forms#32

Draft
erral wants to merge 4 commits into
mainfrom
feature/improve-block-editing
Draft

Improve block editing experience with declarative metadata and flattened forms#32
erral wants to merge 4 commits into
mainfrom
feature/improve-block-editing

Conversation

@erral

@erral erral commented May 22, 2026

Copy link
Copy Markdown
Member

This PR improves the block editing experience by introducing a declarative metadata system and simplifying the edit/add forms.

Key changes:

  • Declarative Metadata: Introduced IRowTypeMetadata interface and RowViewBase. View classes can now define allowed_fields, icon, and has_featured flags directly in code.
  • Hybrid Configuration: The system merges code-defined defaults with Registry overrides (Registry takes precedence).
  • Flattened Forms: Restricted block forms now render all allowed fields in a single fieldset, removing unnecessary tabs.
  • Strict Ordering: The form now strictly obeys the order of fields specified in the metadata configuration.
  • Robust Filtering: Disallowed fields are now removed server-side in updateFields, preventing ComponentLookupError for complex widgets (like those in ICollection) that lack a 'hidden' mode template.
  • Performance: The frontend JavaScript now reads the configuration directly from a JSON blob in the DOM, avoiding an extra network request to the Registry API.
  • Cleanup: Hid the IShortName.id field from the edit form. Removed .tox directory from Git tracking and updated .gitignore.

Cc: @libargutxi @ionlizarazu

@erral

erral commented May 22, 2026

Copy link
Copy Markdown
Member Author

PR honek blokeen edizio esperientzia hobetzen du, metadata sistema deklaratibo bat sartuz eta editatze/gehitze inprimakiak sinplifikatuz.

Aldaketa nagusiak:

  • Metadata Deklaratiboa: IRowTypeMetadata interfazea eta RowViewBase klasea gehitu dira. Ikuspegi klaseek orain allowed_fields, icon, eta has_featured flag-ak kodean zuzenean definitu ditzakete.
  • Konfigurazio Hibridoa: Sistemak kodean definitutako lehenetsitako balioak eta Erregistroko (Registry) gainidazteak batzen ditu (Erregistroak du lehentasuna).
  • Inprimaki Lautuak: Blokeen inprimaki mugatuek orain onartutako eremu guztiak fieldset bakar batean erakusten dituzte, beharrezkoak ez diren fitxak kenduz.
  • Ordena Zorrotza: Inprimakiak orain metadaten konfigurazioan zehaztutako eremuen ordena zorrotz errespetatzen du.
  • Iragazketa Sendoa: Onartu gabeko eremuak zerbitzari-aldean kentzen dira orain updateFields metodoan. Honela, ComponentLookupError akatsak ekiditen dira 'hidden' moduko txantiloirik ez duten widget konplexuekin (adibidez, ICollection-ekoak).
  • Errendimendua: Frontend-eko JavaScript-ak orain konfigurazioa DOM-eko JSON blob batetik irakurtzen du zuzenean, Erregistroko APIari sare-eskaera gehigarri bat egitea saihestuz.
  • Garbiketa: IShortName.id eremua ezkutatu da edizio inprimakian, blokeen eskuzko ediziorako oso gutxitan behar delako. .tox direktorioa Git-etik kendu da eta .gitignore eguneratu da.

Cc: @libargutxi @ionlizarazu

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.

1 participant