Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Most work is expected to be carried out through the following ticket/epic. This ticket, as well as linked support tickets hold several

 

See this ticket and linked support tickets as well for concrete scenarios.

Jira
serverMagnolia - Issue tracker
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId500b06a6-e204-3125-b989-2d75b973d05f
keyMGNLUI-2542

 

1. Use cases

We need to support such dynamic forms in a much easier way. Collecting some commons requirements:

  • populating select options based on the value of another field
  • validating a field depending on the value of another field (including within a composite field itself)
  • enabling/disabling fields conditionally
  • potentially custom handling of any field, via plain Vaadin code
  • updating form buttons (enabling/disabling/relabeling)

 

2. General directions & goals

  • Exposing hooks on form-level
    • currently only possible on field-level via FieldFactories
    • fields & factories are only aware about themselves, in isolation. They're not aware about other fields and this is harder to do than it should.
  • Use more of Vaadin out of the box
    • less customizations
    • get rid of legacy Vaadin 6.x or client-side code
  • Open up APIs to offer more possibilities (data-binding, or dynamic/ cross-field behaviors)
  • Reduce technical debt

 

3. PoC phase

  • Goals

    • Validate several assumptions from Mika

    • If all goes well, put it all together at the end, through an Integration phase
  • Process

    • To be carried out by the VN Core Team
    • Try to work in pairs (can still switch afterwards), or alternate between group phases and individual work/thinking
    • Keep each PoC standalone until the end of the PoC phase
  • Target date:
    •  

PoC #1: New FormPresenter

...

  • Inspired from AccessControlField$PathChooserHandler
  • Result: small Vaadin application
    • see info.magnolia.dev.acls.AccessControlFieldUI in Mika's sandbox
    • opens a Vaadin Window
      • field inside the window shares property data-source with text field

 

4.

...

Integration phase

- To be

...

determined

  • One "Integration PoC" of existing work
    • e.g. still as a small Vaadin application, but combining configured forms, complex fields, sub-field validation and a dynamic behavior
  • Compatibility research
    • preserve old behaviors/factories and classes to work side-by-side with the new ones 

 

...