backdrop / backdrop-issues

Issue tracker for Backdrop core.
144 stars 40 forks source link

[UX] Display conditions for menu items on the layout overview page. #1929

Closed docwilmot closed 1 month ago

docwilmot commented 8 years ago

On layout list table we've added VCs as a column for layouts, but menus can have VCs too. An administrator on a complex site might end up really puzzled about 403/404 errors if he doesnt realise menu VCs have been set.

klonos commented 8 years ago

I don't see any visibility conditions for menus or menu items. Are you referring to menu blocks perhaps? ...or is it something I'm missing?

docwilmot commented 8 years ago

I don't see any visibility conditions for menus or menu items

You have to add a custom layout first, then click "menu settings"

layouts wilmurt

docwilmot commented 3 months ago

Five year delay! Took a look at this today, and here is the result. I think this should be done because the fact that paths can have VCs is completely hidden and could really confuse a person. Note for example dashboard layout has a VC, but who knew the path had a VC too? Is the page too busy now though? backdrop localhost_admin_structure_layouts

argiepiano commented 3 months ago

Who knew there were VC for paths! In fact you have to dig deep into the UI to find them - they are not set when you create a layout. This, in itself, is already problematic for me, but I can't think of a way to change this.

As for your screenshot: This is a UX question, and it's not my "cup of tea", but to me, the gray separators with the path should not follow the column (I think this is part of what makes the screenshot confusing). They should clearly look like separators.

Plus, there is another settings for paths that'd be nice to show: the "type" (i.e. "No menu entry", "Normal menu entry" etc).

So, perhaps more of a "summary" approach, rather than using the column?

Screen Shot 2024-06-30 at 10 23 05 AM
docwilmot commented 3 months ago

Good suggestion. If there are multiple VCs it would still be a bit crowded there though. Wonder if a "more" link like on the modules page would work here.

bugfolder commented 3 months ago

Wonder if a "more" link like on the modules page would work here.

So do I. https://github.com/backdrop/backdrop-issues/issues/5090. @klonos 😉

klonos commented 3 months ago

So do I.

I know 🙂 ...I have some vacation time towards the end of July and end of August, and this is on my (long) list of to-dos 👍🏼

bugfolder commented 3 months ago

Since I'm being such a nag, I hasten to add that I'll be happy and eager to test, etc.

klonos commented 3 months ago

This one is puzzling indeed 🤔

Anyway, I am suspecting that it's be hard to come up with something that's intuitive and readable, yet at the same time does not add to the complexity and "noise" in this table. However, can we please try the following?:

I admit that the above would still not be ideal - separators should be running across the length of the table. I'll do some more thinking and research and see if I come across anything that useful in this situation.

PS: I've tagged this issue with UX/design and am "summoning" the @wesruv for thoughts/ideas 😅

stpaultim commented 3 months ago

I really like the idea of exposing this. I'm not sure that I would have ever noticed that this was possible. I am a bit worried about this form getting too cluttered, as others have already expressed. But, don't have much new to offer in terms of ideas.

I look forward to testing the PR! ;-)

docwilmot commented 2 months ago

PR up for consideration. Used details element to hide things.

argiepiano commented 2 months ago

@docwilmot thanks for putting this together! I think this is much better than what we have (or don't have) currently. Here are a couple of thoughts (keep in mind that my UI chops == FALSE).

Screen Shot 2024-07-20 at 7 58 26 AM
docwilmot commented 2 months ago

Wondering if the info could extend beyond the first column? It's kind of strange to see the line break there, after "Normal menu \n entry"

OK made it colspan 3

Since "Menu Settings" now directly affect the "Path info", I wonder if it may be clear to call the button "Path settings" or the info "Menu info"? I like the first option better. Technically that button does more than Menu Settings. It does Path Settings, as you can set conditions

Makes sense, but would need some group decision-making. We can wait for some more input on that.

argiepiano commented 2 months ago

I like it.

olafgrabienski commented 1 month ago

Since "Menu Settings" now directly affect the "Path info", I wonder if it may be clear to call the button "Path settings" or the info "Menu info"? I like the first option better. Technically that button does more than Menu Settings. It does Path Settings, as you can set conditions

In theory, "Info" and "Settings" should be enough, but I guess "Settings" could be confused with the dropbutton link "Configure Layout" then. So, maybe just "Info" for the more link (to not repeat the term "Path" directly after the "Path" label), but "Path settings" for the Operations column? Mockup:

image

olafgrabienski commented 1 month ago

@docwilmot After creating a simple node layout (node/%) withour further conditions in the PR sandbox, I got some warnings (see below). Also "Menu" and "Menu item type" are missing from the Info, and there is no "Menu settings" button in the Operations column.

Warnings:

docwilmot commented 1 month ago

Ah, missed that, should be fixable shortly.

docwilmot commented 1 month ago

COde issues mostly resolved now, only some PHPCS fixes to go.

stpaultim commented 1 month ago

To give good feedback on the UX for this, I need to better understand how it's used.

I assumed that the idea was that I might have a path (example: admin/dashboard)

Then I might have two different layouts for this path, each with their own visibility condition. Example one dashboard for admins and one for editors. I assumed that the menu visibility condition would override the layout visiblity conditions.

However, I created the two layouts, one for admins and one for editors. I then ONLY gave menu/path access to admins. However, in this case, editors were still able to access their own special dashboards, despite not having permission to that menu/path.

So either there is a bug OR I'm not understanding menu visibility conditions for layouts.

Can anyone provide a practical example of how one might use menu level visibility consitions?

docwilmot commented 1 month ago

This seemed to be working for me.

Perhaps I need a bit more detail on how you tested @stpaultim

stpaultim commented 1 month ago

@docwilmot

My mistake. I created a new Dashboard and was experimenting with different roles accessing different versions of the Dashboard based upon visibility conditions. However, this seems to have been a bad choice, because the Dashboard has it's own access permission that may trump the visibility conditions for the menu or layout. Both roles had "Access Dashboard" permission, so my changes to visibility conditions had no effect.

I think that makes sense.

When I tried the same experiment with a new path and a completely new layout, it worked as expected and as you described.

stpaultim commented 1 month ago

@docwilmot - To be honest, this idea that the path for a layout might have it's own visibility conditions was a bit confusing for me. Given what I now understand much better, it seems important that path visibility conditions be in the same column as those for the layouts - so that they don't seem less important.

This might mean going back to the original idea of having them visilble all the time.

OR still hidden in the "Path Info" carrat, but when visible, visible in the same column as the other visibility conditions.

image

I actually think I like this second option better. Hidden, but when the info appears it's structured to show the VC in the same column as the other VCs.

I am also thinking about some tweaks to the help text under "How layouts work", but that will be a new issue.

docwilmot commented 1 month ago

@stpaultim I find that if I click a details element I'd want the info thats revealed to be right under the details link, not so far away. I can imagine someone might miss seeing the VCs on a wide screen if theyre over in a diffrent column. not sure I like this.

Or maybe give VCs their own details element? But that makes the table really busy to me, and Layouts are confusing enough it seems. Screenshot 2024-08-27 114126

@wesruv any design advice?

stpaultim commented 1 month ago

I can imagine someone might miss seeing the VCs on a wide screen if theyre over in a diffrent column. not sure I like this.

I see that point. But, I could argue the same that people might miss the VC's if they are not in the column labelled Visibility Conditions.

:-)

I don't see this as a blocker. Either way is a step forward in exposing "feature." I'm guessing that I am not the only one that didn't know that visiblity conditions are available for paths. Anything that helps expose them, might help folks better leverage the layout system

The best solution for exposing this feature MIGHT be better help text in the How Layouts Work section of the page. This is a different issue, I think.

Looking forward to hearing what others think?

quicksketch commented 1 month ago

I read all the comments above to get a handle on the approaches and I tried out the current sandbox. Thank you @docwilmot for patiently trying so many things!

My opinion: we might be getting more fancy than is really needed. I would prefer we just print the visibility conditions for a path all the time in the "Visibility Conditions" column, as @docwilmot originally suggested. I also don't think we need the "Path info" details element at all. Whether the page is a normal menu item or a tab is not so important it needs to be on the overview page.

stpaultim commented 1 month ago

As someone that originally expressed concerns over how cluttered this would make the UI, I think I've come around to liking that intial simple view, now that I understand the issue better and have seen the alternatives.

docwilmot commented 1 month ago

Did a new PR instead of fixing this one.

stpaultim commented 1 month ago

@docwilmot Thanks for trying those other things out. But, I like the simplicty of this last PR. I think it is the right solution for displaying menu-level visibility conditions.

I think we might also need some more help text regarding paths, but I think that can and should be left as a follow-up issue. Simply making them more visible is a good first step.

Here is a screenshot: image

This PR exposes and shows the info inside red boxes. This info was not available before, except on Menu Settings page.

quicksketch commented 1 month ago

https://github.com/backdrop/backdrop/pull/4857 looks good to me. There are a few code style failures but nothing caused specifically by this PR -- in fact it fixes dozens of code style issues. I don't want to merge this without further agreement however. @olafgrabienski, @argiepiano, @bugfolder, @klonos if you could post your thoughts that would be appreciated.

argiepiano commented 1 month ago

This looks good to me - the changes have minimal impact on the UI, and the PR does what the OP says.

I think the availability of two different visibility conditions (one for path, another for page) may confuse people (esp. which of those takes precedence, and why does the path visibility exist if one could simply use a VC in the page itself - this becomes clearer if you keep in mind that you could have more than one page that use the same path, and the path VC will then be like a global VC for all those pages). Adding some text to the details like @stpaultim suggested in https://github.com/backdrop/backdrop-issues/issues/6699 may help.

stpaultim commented 1 month ago

@argiepiano Thanks for mentioning https://github.com/backdrop/backdrop-issues/issues/6699

I would also like to see more done to help folks understand how paths and layouts work together. Issue #6699 is a first draft attempt and providing a little more context. I welcome additional ideas and feedback on my text suggestions in #6699. I opened that as a kind of follow-up issue to this one.

olafgrabienski commented 1 month ago

I think, it's a good step to show the former hidden menu-related visibility conditions. I'm not sure how many such conditions are expected to be on an average Backdrop site. If too many, we can still open a follow-up issue to explore new ideas for a less cluttered interface.

quicksketch commented 1 month ago

I merged https://github.com/backdrop/backdrop/pull/4857 into 1.x for 1.29.0. Thank you everyone for the collaboration! Again, huge thanks to @docwilmot for perseverance and trying different things. I think we all sincerely appreciate your patience and effort.

Thank you @stpaultim, @argiepiano, @olafgrabienski, @klonos, and @bugfolder for the reviewing, testing, and help!