This is part of the #779 meta.

There is this issue in d.org: https://www.drupal.org/node/2539740. They seem to intent to add that as an experimental core module. Here's the contrib version of it: Dream Fields and a couple of links to screencasts:

https://www.youtube.com/watch?v=6SgUCVJ_oAk https://www.youtube.com/watch?v=bCu_0d_hOdo

The user is asked to select the widget first:

d8-dream_fields-select_widget

...and then depending on the selected widget, there is a list of options ranging from very simple such as just a label and whether the field is required or not (for "single line of text", "multiple lines of text", "email address" etc):

...to more elaborate options such as for "number input" fields:

This reversed workflow of adding fields (selecting the widget first and the exact field type last) might need some getting used to from Drupal old-timers, but I think will be more straight-forward for beginners. For example, in order to add tags, you first select either one of the "a list of checkboxes", "a list of radio buttons" or "a dropdown list" widgets, and then you can select either one of the options to select an existing or create a new vocabulary:

I think that as a first phase we can initially go with the same approach as D8:

  1. Replace the "Add new field" and "Add existing field" special table rows with a "+Add field" link.
  2. Have that link present a list of icons with the available widgets.
  3. Selecting a widget would open the field selection wizard on a dialog.
  4. Adding the field would return the user to the list of fields where they can reorder, remove or edit the fields (in D8 they moved that to a separate "Manage form display" tab).

...as a second phase, we take this all the way:

  1. Convert the "Manage fields" page to a layout-UI-like interface (similar to our "Manage blocks" page) with regions etc. instead of having it be a table.
  2. Move the "+Add field" link from being a single link at the top left of the page to become individual "Add field" buttons on each form region.

Sounds like a plan?

GitHub Issue #: 
5292