Problem/Motivation
Currently, the basic "short form" for blocks in outside-in looks like this:
This doesn't include settings such as visibility or region selector; for these, you must click "Advanced options" to move to the full form.
We should discuss and implement a) what the optimal set of "80% options" are here, and b) how to expose them in a way that doesn't make the sidebar form overwhelming (e.g. sidebar tabs?)
Proposed resolution
1. Rewrite block quickedit markup as summary/details, not fieldsets.
2. Add jQuery UI accordion classes to all those summary/details.
3. Set accordion state to collapsed on first load.
... or as close to "everything is closed on load and all panels have accordion behavior"
Other points that might need a separate issue raised:
* Re-order fields across potentially several different modules (at least within core, using weighting?) From #9: "the form items that come first should always be the ones that relate to the 'content' of the block. The user understands 'content' as what is printed on the screen."
* Pair each text field with its toggle checkbox.
* Identify and remove any items in core that don't belong here, and implement functionality to add multiple "Advanced X options" links to take the user elsewhere instead.
Remaining tasks
1. Propose a patch for the definitely-required resolution items above.
2. Determine any other points that are relevant for this issue.
3. Open issues for any remaining points.
4. RTBC patch.
User interface changes
* Use summary/details for outside-in template, not fieldset.
* Use accordion classes for each summary/details, with all closed by default.
* Reorder sections in outside-in template to be "content first".
* Remove any non-relevant items to separate pages and add "Advanced X options" links.
API changes
None.
Data model changes
None.
Comment | File | Size | Author |
---|---|---|---|
#27 | 2781575-27.patch | 11.97 KB | tedbow |
#24 | determine_ideal_field-2781575-24.patch | 11.43 KB | yogeshmpawar |
#24 | interdiff-2781575-22-24.txt | 1.23 KB | yogeshmpawar |
#22 | 2781575-22.patch | 11.4 KB | jofitz |
#19 | 2781575-18.patch | 11.39 KB | tedbow |
Comments
Comment #2
xjmI think we definitely need to put some thought into (a) what is exposed and (b) how it is organized/ordered/etc. Couple of specific things I noticed related to this while testing the patch:
Comment #3
xjmAlso, the problem of what is shown vs. not also exposes some existing usability bugs in core, where I want to change things but cannot for reasons that are obscure from an end user perspective.
For Outside In, it would be great if we had a way to surface important messages like that into this interaction as well. But I am at a loss on how we would do so.
Comment #4
xjmSort of related, but probably its own scope: #2782891: The Page Title block's title behaves in a confusing way with Settings Tray and the Help block incorrectly has Settings Tray styling
Comment #5
xjmAnother specific issue: #2782927: Block description does not belong in Outside In sidebar; make it part of the sidebar title instead?.
Comment #6
xjmComment #7
webchickComment #8
tkoleary CreditAttribution: tkoleary at Acquia commentedComment #9
tkoleary CreditAttribution: tkoleary at Acquia commentedI would suggest three (hopefully) simple changes to make this better
Even if we can't implement it exactly that way, whatever solution gets us to "everything is closed on load and all panels have accordion behavior" will do.
As far as order is concerned the form items that come first should always be the ones that relate to the 'content' of the block. The user understands 'content' as what is printed on the screen. In the case of the branding block, that's the logo, site name and site slogan. The order of these should match their order in the rendered html.
It would be nice to actually be able to pair each text field with it's corresponding toggle checkbox, but barring that we can at least put the 'toggle branding elements' fieldset immediately after site details.
As for the "advanced" link, if a details pane adds configuration from a form other than the block configuration form, it should have it's own advanced options link and that link should probably be labeled to refer to the form eg. 'Advanced menu options'
To the comment in #5, there are many things we could do with the menu form, but ideally we don't want to take users away from the page unless absolutely neccesary. "add link", and even "edit" on the links do that. Until we have a way to click and add or edit the link text in place I think we should remove them and have only "advanced menu options"
Comment #10
jp.stacey CreditAttribution: jp.stacey at Magnetic Phield commentedFor clarity, I've reworded the description to propose what "done" will look like, using the standard template and some of @tkoleary's previous comments to try to flesh it out.
Please do edit the description if any of it doesn't make sense, or is contrary to the UX guidelines.
Comment #11
tkoleary CreditAttribution: tkoleary at Acquia commentedComment #12
tkoleary CreditAttribution: tkoleary at Acquia commentedComment #13
tkoleary CreditAttribution: tkoleary at Acquia commentedChanging to feature request since this is about optimizing the experience rather than fixing a usability bug. The module is usable in int's current state.
Comment #14
tkoleary CreditAttribution: tkoleary at Acquia commentedComment #16
tedbowOk. so starting a patch to address these issues.
Now there are no fieldsets in the Settings Tray block forms. I think the only fieldset were Visibility Settings which are not being show in these forms.
The other items we are adding use details.
Do we actually have add classes for this. I think the accordion functionality is just built into our details field elements. We are getting accordion functionality now.
We are leaving some of the accordion state to open on some of the details because we explicitly adding elements we want to expose on the menu and branding blocks
so when you edit a Menu block you see the menu items automatically which is what you probably want to edit.
Also with Branding we are leaving site name and slogan details open because this is likely what the user wants to edit.
This has been done. The menu and branding blocks are the only blocks currently where we are adding extra form elements that relate to "content" of the block.
The only form elements that are before this are for the label of the block.
I am assuming this means for the Branding block? This has not been done.
In this patch I have added a "Advanced menu options" link to the menu block. I did not add it this link for the Branding block because usually this is edit on the "Basic site settings" but the other settings on the form really don't relate to anything on the Branding block. I also changed "Advanced Options" to "Advanced block options" so this is clearer.
The other block in core that I thought would make sense to add an advanced link to would be the "Search Block" to link to /admin/config/search. Right now we don't have an "SearchOffCanvasForm" class so it just uses the regular SearchBlock class. We could add SearchOffCanvasForm to add the advanced link but that seems like a lot of trouble.
What if we added a new property in the annotations for blocks, advance_link link this:
Then any block that simple needed to make a link to advanced options could add it here.
In this module we could alter the plugin definition of SearchBlock in outside_in_block_alter like are doing for forms. The move it to SearchBlock when the module is stable.
Comment #17
tedbowComment #18
tedbowOk this patch adds Off-Canvas form for the search block. This just adds a link to the search documentation page
It also changes the way the block label text field behaves.
In an effort simplify the forms it not does not display the field if field if "Display title" is not checked. This way if the title of the block is not currently being show when you open the off-canvas for you won't see the title of the first.
I think this helps a lot with blocks such as branding, menu, and tab where you are not likely to show the title. Then you can focus on the other options on the form such as the menu items.
Comment #19
tedbowok would help if uploaded the patch
Comment #20
tedbowNeeds re-roll because of #2862625: Rename offcanvas to two words in code and comments. and other recent commits
Comment #21
tedbowComment #22
jofitz CreditAttribution: jofitz at ComputerMinds commentedRe-rolled.
Comment #23
tedbow@Jo Fitzgerald thanks for the reroll! Looks good except a couple small things related to #2862625: Rename offcanvas to two words in code and comments. which was committed since my last patch in #19
'offcanvas' should be 'off_canvas'
'offcanvas' should be 'off_canvas'
I think I found all these but you can check and make sure "offcanvas"(all lower, no - or _ ) doesn't appear anywhere in the patch.
Also tagging with "Needs tests" because new functionality in this patch doesn't have tests and they is why there was fail from 2 problems mentioned here.
Comment #24
yogeshmpawarChanges made as per comment #23.
Comment #25
yogeshmpawarSetting state to "Needs work" for further testing of new functionality added in patch.
Comment #26
tedbow@Yogesh Pawar yep reroll look good. Thanks!
This issue still needs
Comment #27
tedbowRe-roll of #24 because of #2785135: Rename protected property SystemMenuOffCanvasForm::$entity to $menu
Comment #28
tedbowI have extracted out the title input portion of this patch to #2882729: In off-canvas block form hide Title input unless it will be displayed and change label to Block Title
Probably the other portions of the this patch should be grouped into other issues
Comment #29
tedbowComment #30
tedbowCreated follow up #2888567: Add links to relevant off-canvas block forms to blocks to link to related configuration
Marking as because all tasks in this issue are either in the module now or have their own issue.
see #2882729: In off-canvas block form hide Title input unless it will be displayed and change label to Block Title
Comment #31
tedbowChanging to new settings_tray.module component. @drpal thanks for script help!