Problem/Motivation
During the usability sessions, some participants struggled to find the expected link when visiting the "structure" page. They expected structure to present a hierarchy, instead of presenting a list of equal choices.
Larger categories should not be equal to smaller categories."
When using a tool like Drupal, there are certain concepts that are key. But
when looking at links and structure, everything appears equal.
Proposed resolution
- Order the structure navigation items by importance, so the most important appear at the top.
- Consider removing some not important items from structure
- Consider designing a new visual hierarchy for the structure page, potentially using styling from the configuration page.
Remaining tasks
- Implement the change recommended changes
- Test
- Assess whether we need to take further action
User interface changes
A change to the structure page
API changes
None
Data model changes
None
Comment | File | Size | Author |
---|---|---|---|
#75 | 2518960-drupal-admin-structure.png | 332.33 KB | Rajeshreeputra |
#72 | 2518960-nr-bot.txt | 132 bytes | needs-review-queue-bot |
#56 | admin_structure_with_promoted.png | 39.42 KB | marcoscano |
#56 | edit_menu_item_promoted.png | 41.19 KB | marcoscano |
#56 | 2518960-56.patch | 13.15 KB | marcoscano |
Issue fork drupal-2518960
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #1
Bojhan CreditAttribution: Bojhan as a volunteer commentedMy first thought was to disable contact module, and to place display modes as a tab under content types?
Comment #2
andypostnot sure it will help, contrib exposes own menus
also it makes sense to add a help page with suggestions for contrib module developers
Comment #3
Bojhan CreditAttribution: Bojhan as a volunteer commentedWe do already have this, frankly if a contrib adds its page here it should fit in the "important" category.
Comment #4
LewisNyman@andypost I agree, this should scale with contrib.
I think we already have guidance on which menu item to use for module developers, right? I think the term 'structure' is a guiding factor, it's more about describing the role of the menu item rather than how important it is.
What if we break structure into two sections? I can't think of the correct wording but this is what I mean:
Comment #5
andypost@LewisNyman nice idea! so we could end up with same layout that we have for Configuration menu
Comment #6
cilefen CreditAttribution: cilefen commentedWhat about "Essential" and "Advanced"?
Comment #7
cilefen CreditAttribution: cilefen commented#2516902: Introduce a visual hierarchy to the help page. is a similar issue. Perhaps there could be a combined solution.
Comment #8
legolasbo+1 for #6 if we go for #4.
However, I think much of the confusion is caused because the structure page actually contains a lot of links to things which aren't really structural.
All items listed as "not important" and even "content types" are actually better categorised as "behaviour" or "configuration". In my opinion a "structure" page should only list items which define a site's content structure (Menu, views, taxonomy and (arguably) block layout)
Comment #9
tkoleary CreditAttribution: tkoleary at Acquia commentedLots of good initial thinking here but I'm not sold on any of the suggestions yet, not sure they scale well.
As I see it there are three main issues:
I would suggest:
The hierarchy can actually illuminate the meanings by the way things are grouped. Additionally we should consider the categories not just with their current contents, but as sensible buckets for additional items contrib will add.
The result might look something like this (with page layout, galleries and surveys standing in for future module provided links):
Content model
Build a structured content model using content types, display modes and relationships
Layout
Build your page layouts using blocks, page regions and visibility settings
Way-finding
Add and edit menus, rename and reorganize links, tag and categorize content.
Dynamic content
Manage automatically updated content like custom content lists and galleries.
Forms
Create and manage the forms used by site visitors
Comment #10
tkoleary CreditAttribution: tkoleary at Acquia commentedComment #11
legolasbo@tkoleary,
I like your suggestion, but if we implement it, we would also need to find a new name for the page.
Comment #12
tkoleary CreditAttribution: tkoleary at Acquia commentedSite building?
Comment #13
andypost"Construct" looks better in that case, overall ++ to the idea to make hierarchical!
Comment #14
LewisNymanChanging the name of the 'structure' page would mean changing a lot of URLs. This would be impossible to do before Drupal 8 release, if I understand webchicks explanation correctly.
If we can avoid changing the page title here and move it to another issue that would be great.
Considering how this scales with contrib is great. It would be nice to see how it would look with just standard modules installed and with all of core+popular contrib installed.
Comment #15
legolasboChanging the urls should not cause a really big change, because we are using routes in stead of hard coded paths. Also, if a change of the title without changing the paths would improve people's understanding of this page, then we should do it. I would consider changing the paths out of scope for this issue and they should be changed in a follow-up. Unless it adds only minor overhead to this patch.
Comment #16
tkoleary CreditAttribution: tkoleary at Acquia commentedSince this issue is about the structure of the structure page (sorry), not it's name I think we should offload that to another issue.
Comment #17
LewisNymanYeah let's move this to a follow up. A core committer already told me we can't do this at this stage of the release cycle.
Comment #18
tkoleary CreditAttribution: tkoleary at Acquia commentedIt's a good issue for 8.1 though.
Comment #19
Bojhan CreditAttribution: Bojhan as a volunteer commented@Lewis just wondering should we introduce a pattern that is similair to /config? I am not sure if making those pages look more identical is ideal though. The core of the issue is simply too many items that shouldn't be here.
Comment #20
LewisNyman@Bojhan I was unsure because I think the config page has it's own issues with ordering and heirachy on mobile. The items that are top of the page in the right column on desktop end up halfway down the page on mobile. If we keep everything in one column then we don't add the same heirachy problems here.
On the other hand, it would be really nice if /config wasn't it's own special snowflake. I'll leave the decision to you :P
Comment #21
yoroy CreditAttribution: yoroy at Roy Scholten commentedComment #22
ifrikHow is anybody deciding what's important and what not?
This will be a subjective way of diving the list into two, so instead of looking through one alphabetic list, site builders will look need to scan through two lists. If these lists are not even alphabetic any more then site builders need to spend even more time looking for the items they are looking. This might not be considered a problem with core only but it will get messy fast when more modules are installed.
Also by any contrib module will probably need to go into the important/essential list because if the module would not be important for a site it would not be installed anyway. And if the items are not sorted alphabetically: What stops module maintainers to give their items the weight to be on top of the list, no matter whether anybody else thinks that the item is important?
A more consistent approach would be to organize the Structure page like the Configuration page and group items topically.
Comment #23
Gábor HojtsyI agree a topical grouping makes sense here. That would also allow to extend this further and not be very hard to implement hopefully.
Comment #24
dasjohere's an exemplary hierarchy, i put together based on what drupal core offers + 1 contrib module and my assumptions of how i would categorize them:
Blocks
- Block layout
- Custom block library
Content structure
- Content types
- Taxonomy
- Menus
Listings
- Views
Display modes
- Form modes
- View modes
Other
- Books
- Contact forms
- Comment types
- Paragraph types (contrib)
In the /config space we follow a pattern where every item is also placed in the url folder of its category. So based on the above views would now live under /admin/structure/listings/views
Comment #25
Gábor HojtsyIs that now easier to achieve with routes? Are paths part of our frozen API? https://www.drupal.org/core/d8-allowed-changes#minor does not say that. Neither at https://www.drupal.org/node/2550249 which is linked as further discussion.
Comment #26
Gábor HojtsyAsked at #2550249-83: [meta] Document @internal APIs both explicitly in phpdoc and implicitly in d.o documentation.
Comment #27
catchI opened #2695771: Re-organise user/account items under admin/ last week without being aware of this issue.
For me when I'm actually site building, I get very confused about what's on admin/structure and what's on admin/config. Part of this is that I still to some extent have 3 versions of IA (plus odd remnants of 5.x and 4.7) in my head and forget which version I'm working on, but also I think where some things are at the moment is arbitrary.
I'd like to consider moving all the 'multiples'/config entities to admin/structure - and possibly renaming it to site building similar to suggestions above.
Multiples means all the config entities so:
blocks/menus/content type all stay.
Image styles, ckeditor profiles, text formats, user fields, contact forms, languages all move.
User account settings (not fields), performance, site configuration, cron all stay on config.
However, that still leaves some grey areas:
- Views UI has its static configuration on a tab, should really be on admin/config, except you might want to get there straight from configuring a view.
- Search combines static configuration and config entities on a single admin page.
- Path aliases don't neatly fit anywhere, although for me they're more site building or even a tab under /content
- Language settings are the only example where everything fits neatly into one place (except for possibly translation settings for individual fields), but this suggestion could end up splitting it between the two pages.
- Users are still split between 2-3 places.
While to actually make the change in core with the current architecture we'll need an upgrade path, none of that matters for new installs - so it ought to be possible to write a prototype patch that's testable locally and on simplytest.me quite easily.
Comment #29
tkoleary CreditAttribution: tkoleary at Acquia commented@catch
I think the wholesale IA changes you suggest may be good, but the scope of this issue I am beginning to think should be narrower.
If we make it simply about expressing hierarchy in these admin pages, not about *what* the hierarchy is we can commit a change that enables admin page items to have children, than decide which are the parents and which are the children in further issues.
Comment #30
yoroy CreditAttribution: yoroy at Roy Scholten commentedYeah, more interesting for now to explore design options for how to create hierarchy on these kinds of pages.
We can vary size, placement, grouping, number of columns…
Comment #31
catchHmm I feel like admin/config already has a hierarchy of sorts via the categories. Whereas admin/structure is completely flat with no categorisation. My suggestion was to add the categorisation to admin/structure then move a bunch of items from admin/config over. That would in turn reduce the number of items on admin/config dramatically.
I'm struggling a bit with adding hierarchy to admin/config as to what an actual parent -> child relationship would be between the items on there. For me there are not really many at least with core modules. So examples would help even if this issue is kept entirely about the visual structure and not the IA itself.
Comment #32
Gábor HojtsySo looking at #30, I think admin/config is doing (2) now. That would certainly be the "easiest" to implement, except that paths would need to change for structure pages. That theoretically is not a problem for backwards compatibility as per #2550249-83: [meta] Document @internal APIs both explicitly in phpdoc and implicitly in d.o documentation.
Comment #33
tkoleary CreditAttribution: tkoleary at Acquia commented@catch @gaborhojtsy
That's an excellent idea. Especially since "panel__title" is a string so we can use whatever category name we like and are not bound to using an existing link as a category.
Also per roy's sketches, a three, as opposed to two column layout might be better since there's less content and it would shorten line lengths and make them more legible.
Comment #34
tkoleary CreditAttribution: tkoleary at Acquia commented@catch @gaborhojtsy @yoroy
Hacked in chrome inspector with no particular order, just to see what the classes produced.
I think it works.
Comment #35
catchIs that worth opening a side-issue for? In terms of code both getting the page set-up to mimic admin/config and moving things around are both noviceable. Three columns should also be straightforward. That then gives a good basis for trying to actually decide where things might fit (since you're forced to put everything somewhere), while looking at other visual options.
Comment #36
Bojhan CreditAttribution: Bojhan as a volunteer commentedJust wondering, does this solve the issue - or should we really just be removing items from here? Turning everything into a index, is not an IA solution :)
Comment #37
tkoleary CreditAttribution: tkoleary at Acquia commentedIt is if you are Jared Spool. :)
Secret lives of links
Comment #38
Bojhan CreditAttribution: Bojhan as a volunteer commentedI dont understand, thats not at all what Jared Spool says?
Comment #39
yoroy CreditAttribution: yoroy at Roy Scholten commentedComment #40
jhodgdonQuestion: Are users confused about what Structure is vs. Configuration anyway? Maybe we should combine them, and put the items currently into Structure into either existing Configuration categories, or a few new ones?
Comment #41
Bojhan CreditAttribution: Bojhan as a volunteer commented@jhogdon That's not the scope of this issue. There have been several tests and 350+ comment threads on this. The tests confirmed though there is no confusion over the two - people expect more "site building" like tools layout, content types in structure and this is correct. We have bloated up Structure, in D8. I am still keen on finding a way to remove or relabel some of these - without needing to make an index.
Comment #42
yoroy CreditAttribution: yoroy at Roy Scholten commentedOk, here's an issue for moving Display modes into Field UI:
#2721727: Allow user to add display modes from respective field UI's.
Comment #43
ifrikCan we discuss this at DevDays in Milan?
Comment #44
Gábor HojtsySo we looked at this yesterday with @ifrik and agreed the suggestions are so wildly divergent that this is not anywhere close to doing a proposed implementation or even a prototype :( Would be nice to figure out how to distill and pick where we want to go.
Comment #45
yoroy CreditAttribution: yoroy at Roy Scholten commentedThat is a correct assessment :-)
Comment #47
tkoleary CreditAttribution: tkoleary at Acquia commentedComment #48
Bojhan CreditAttribution: Bojhan as a volunteer commentedComment #50
yoroy CreditAttribution: yoroy at Roy Scholten commentedIt would indeed be a subjective call to decide what is more important than others, and we should also look at which items should live here in the first place. It would still be helpful if we would have a way to introduce visual hierarchy here.
Comment #51
ifrikI'm pretty sure that this will be hijacked by contrib modules in no time at all.
So at least you will need to give some information on how you decided what is important and what isn't.
Comment #52
catchFor me I think this ought to be postponed on #2755613: Restructure the admin interface Information Architecture. The biggest problem we have is that admin items aren't logically grouped at the moment, emphasising within those groupings is going to run into immediate trouble when some items just shouldn't be there or are missing even in core.
Comment #53
Bojhan CreditAttribution: Bojhan as a volunteer commentedYes, and no. We do need to look carefully at the IA. But we also need a way to distinguish items on a page into groups, no matter what IA we choose. I think as a intermediate solution, yoroy's suggestion here still stands and could be implemented.
Comment #55
webchickAgreed that #50 is the "simplest thing that could possibly work" for a pretty critical UX issue, and would love to see a patch in that direction.
Comment #56
marcoscano+1 for the simplest-doable-thing approach :) We can always improve with a complete overhaul of the admin interface when concepts are clearer.
First shot of a patch, to spark the discussion about the code.
Here, the idea is to provide a mechanism for modules to define their links as "Promoted". In order to do so, a
promoted
property can be added to the menu link yaml file. For example:menu_ui.links.menu.yml:
On the UI users can always edit this menu link and override that setting, un-promoting the item, or promoting other items:
With that in place, then the
/admin/structure
page can use that information to group links together and style the promoted ones differently.Patch applied to current 8.5.x HEAD:
Next steps:
- Collect feedback if this approach sounds reasonable or if it's a terrible hack
- Review the code
- Decide which items should be "promoted" by default on this first iteration.
- Figure out how to promote the views link (couldn't do it now and ran out time to dig further)
- Write tests
Comment #57
andypostGood idea, btw he can use a kind of approach we have for tables (adaptive columns) to help frontend in BC way
Comment #59
marcoscanoComment #61
nithinkolekar CreditAttribution: nithinkolekar commentedsorting on
1. Tracking of most visits to admin pages.
2. Shortcut created(take it as bookmark).
If it is for long running, another approach is to expose admin links to admins to add tags to each link and build views menu on them and set that views as admin menu source.Taxonomy menu will do that out of the box but with views we can have icons/images too.
I have done that with with taxonomy menu to build and expose menus to sub-admin/editors but by creating links manually.
Comment #63
clemens.tolboomComment #72
needs-review-queue-bot CreditAttribution: needs-review-queue-bot as a volunteer commentedThe Needs Review Queue Bot tested this issue. It either no longer applies to Drupal core, or fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".
Apart from a re-roll or rebase, this issue may need more work to address feedback in the issue or MR comments. To progress an issue, incorporate this feedback as part of the process of updating the issue. This helps other contributors to know what is outstanding.
Consult the Drupal Contributor Guide to find step-by-step guides for working with issues.
Comment #73
bnjmnmComment #75
RajeshreeputraNot sure if this helps or not, but I thing keeping 2 column(with grouped) is better for smaller screen devices like(14 inch devices).
Comment #76
BramDriesen#75 Also feels more in line with the /admin/config pages