Home Menu Errata
Open, Needs TriagePublic

Description

List of open items for Home Menu Items:

  • Making a Dashboard and finding it again is really hard on large installs
  • Dashboards application is hard to find, maybe auto-install
  • Dashboards should get visual touch-up
  • Dashboard creation does not autoselect default icon
  • On mobile, you can't add new menu items to any profile menu, I think?

Future?

  • DashboardInstall and table should get removed

Dealt with:

  • Build a Label Menu Item
  • Tooltip hover flicker should get addressed
  • Dashboard does not show rest of menu (home)
  • Some Project menu items do not show selected state
  • Top most Dashboard/Home should be the "default"
  • Dashboards don't work in the global menu, only the personal menu
  • Projects shows a "Global" crumb even though there's no Global/Personal option.
  • Can't Edit any Menu Item (like, change the name) on Home
  • Page title for on-page content, like dashboards, is incorrect ("Configure Menu" rather than dashboard name).
  • Default view on mobile is no longer the menu, but should be.
  • Dashboard (Home) shows crumbs, but probably shouldn't, Projects probably should... ??
  • Logged In/Out visibility toggle for Global (passed on implementing)
  • Magic Home should be more obvious in Global Menu
  • Drag and drop on dashboards to upload files doesn't work (only on "magic home")
  • If Admin "sets default" on Global, and users have not set a default, the page follow admin default. (I had to set my dashboard as default, as seems to be no way of un-setting a default). [Mooted by removing "Set Default"?]
  • Diviner Docs need updating
  • Write an Upgrading Guide

Details

Commits
rP027de23970c0: Fix a policy error for restricted applications in a profile menu
rP29114bea5f7e: Fix a policy error for restricted applications in a profile menu
D17309 / rPc8de563622cb: Update Profile Menu diviner
D17308 / rP42743810e914: When a viewer can't see some of a dashboard's panels, only hide those panels
D17307 / rPd054f87f93e5: Make drag-and-drop to upload files work on any Home dashboard, not just "Magic…
D17298 / rPd182d7eaf1d1: Remove menu item pinning from Home and Favorites profile menus
D17292 / rPf4943a37ee7e: Unselect "home" on mobile css
D17294 / rP67d9568fb5a9: Add better description to built-in Home
D17290 / rPfe3304168137: Restore old Home mobile menu behavior, hide crumbs
D17289 / rP6abdae8e7396: Allow "Magic Home" to be hidden
D17288 / rP3fc03c0da106: Show magic "Home" menu item for logged-out users on public installs
D17286 / rP638a9471fdea: Crisp CSS rules for JX.Tooltip
D17284 / rP113bdd9f7940: Fix application name toolip hover
D17285 / rP7fc8e1978675: Add some style to label in Favorites Menu
D17287 / rPf4dbe6330af2: Use a label for default home menu
D17277 / rP206b16d2bbe8: Slightly better "Simple Dashboard"
D17281 / rPe8c575819243: Improve page titles for menu items that render in-context content
D17280 / rPb2de1490093c: Allow menu items to be edited again
D17278 / rPf7c381358656: Add Label MenuItem
D17275 / rP2a527a51f26d: Put Project "Manage" item back
D17274 / rP27a33896ff1c: Fix a couple of home menu issues for logged-out viewers
D17273 / rPf23bfccc0467: Replace ProfileMenu bugs with different bugs
D17272 / rP49b03c03531f: Improve tooltip behavior for Application menu items
There are a very large number of changes, so older changes are hidden. Show Older Changes

Oh, or is that non-hypothetical?

The main thing right now is we have two different Home dashboards.

Can you just disable the one you don't like?

Is the issue that "Home" (the builtin item, not a dashboard) can't be disabled? Could we just let you disable that?

chad added a comment.Wed, Feb 1, 5:26 PM

As a user, being able to hide global links is probably going to come up, and is another way to resolve this.

chad added a comment.EditedWed, Feb 1, 5:31 PM

As far as Dashboards in general go, I was planning on that next (as a project to clean up) and haven't given a lot of thought about logged in / logged out versions. I have no idea how many installs rely on these, so assumed at least, we weren't removing the feature.

I'd like to wait until we have a good answer on how we'd use this feature before we pursue it. I worry that it adds a significant amount of complexity and may really have zero use cases. In the best case, it is useful to only a tiny number of open source installs.

I haven't given it tons of thought, but I can't personally come up with any ways to build a dashboard for logged-in users on this install that is more useful than the current dashboard for logged-out users. The obvious changes that I initially considered (like replacing "Recent Tasks" with "Your Assigned Tasks") don't feel great to me when considering that "Your Assigned Tasks" is empty for 99.9% of users, so I think this hypothetical dashboard would really be a net negative for almost everyone.

The best I can come up with offhand is perhaps adding a panel like "Tasks you filed". However, I think this will be mooted by Nuance in the next few months and most users will no longer visit the home page of this install to check on the status of bug reports.

I also, generally, can't come up with any uses for links that or other items which are only visible after you log in, outside of dashboards.

The best case I can come up with offhand is similar to the above: a link to "Tasks You Filed". But I think this is also mooted by Nuance soon, and it would be better to keep the link always visible, then prompt the user to login after they clicked it ("This query depends on your account, but you aren't logged in. Log in to run the query.").

chad added a comment.Wed, Feb 1, 5:37 PM

So let me walk through what I think you're suggesting.

  • Leave the default fake 'Home' as is (corporate install, your stuff)
  • Let installs build an actual Dashboard as default for all users (whatever they want, period)
  • For Open Source, that means it's on users to install a useful dashboard if they plan to contribute / work.
chad added a comment.Wed, Feb 1, 5:38 PM

Based on that, the problem to solve is making "contributor" type dashboards easy to find/install.

Leave the default fake 'Home' as is (corporate install, your stuff)

Yeah. I'd be fine with letting you disable it, too, if we get feedback that installs want to get rid of it.

The downside to this is that if you disable it AND also have no dashboard items which can be a default item, I think bad things happen. But we could special-case that to show it anyway, or show a message or something.

Let installs build an actual Dashboard as default for all users (whatever they want, period)

Yep.

For Open Source, that means it's on users to install a useful dashboard if they plan to contribute / work.

Yeah, if they aren't happy with the default dashboard (I use the default dashboard on this install).

chad added a comment.Wed, Feb 1, 5:41 PM

I looked briefly, but couldn't figure out how to move fake 'Home' into the Personal Menu as a built-in

I think that's a whole pile of work, I was just thinking that administrators could disable the global item.

I'm generally not very troubled by menu clutter if it isn't causing confusion. This is my menu after customizing it:

At least personally, I don't care that there are a bunch of documentation links that I'll never click/read, or duplicate links to Differential/Maniphest.

If we get pushback about this, I'd like to consider an option which is just "collapse/hide all global items by default, leaving only my personal menu" rather than letting individual users hide particular global items. But, purely as a user, all that stuff is already "below the fold" with the current design so I don't care about it.

I think a user who really doesn't want to see "Home" probably also really doesn't want to see "Installation Guide", etc., so just putting magic on "Home" presumably wouldn't solve that use case.

Also, we might be torpedoing open-source installs which don't have a dashboard right now since the magic "Home" doesn't show up if you're logged out. I'll look at that.

It looks like it works, it's just a little confusing since "Home" doesn't show up. I'll fix that:

chad added a comment.Wed, Feb 1, 5:57 PM

Also need to allow fake 'Home' to be hidden... somehow. I can make a fallback page if needed.

Why do we need to allow it to be hidden?

chad added a comment.Wed, Feb 1, 5:58 PM

We have 2 Homes, I'd like 1.

epriestley edited the task description. (Show Details)Wed, Feb 1, 6:01 PM
epriestley edited the task description. (Show Details)Wed, Feb 1, 6:18 PM
chad edited the task description. (Show Details)Wed, Feb 1, 6:27 PM
chad edited the task description. (Show Details)Wed, Feb 1, 7:03 PM
rphl added a subscriber: rphl.Wed, Feb 1, 11:26 PM

Is there a way to change the default dashboard used for Home? Couldnt find a config for this.

chad added a comment.Wed, Feb 1, 11:27 PM

It's no longer a config, nor do you need to "Install Dashboard", Just add your new one to the sidenav and disable the built in.

chad added a comment.Wed, Feb 1, 11:28 PM

I'll write up a blog post this week and I suspect we'll have a migration guide since it's new to old admins.

chad added a comment.Wed, Feb 1, 11:30 PM

You can now have multiple dashboards, and I think we'll default to the top-most.

chad added a comment.Wed, Feb 1, 11:31 PM

Theres a lot of flexibility here, so hollar if you get stuck trying to implement something.

rphl added a comment.Wed, Feb 1, 11:33 PM

Ok. But I see two different "Home" Dashboards on our install. It is expected?

My vs. an other User:

chad added a comment.EditedWed, Feb 1, 11:35 PM

You'd need to tell me more about how your install was previously, in case we missed something with migration.

Previously there was:

  • Builtin (hardwired) Home
  • Dashboards (Install as Personal Home)
  • Dashboards (Install as Default)

Hardwired Home is still present. Personal Home should have migrated to Personal Menu Item and Dashboard (Install as Default) should have migrated to Global Menu Item.

rphl added a comment.EditedWed, Feb 1, 11:44 PM

Before "Home Menu"

  1. All Users have set a customized dashboard (installed globally)

  1. Our small team (internal) have es second dashboard (installed personal)

The current visible dashboard on HOME, does not match the one from 1. or 2. It look like that is a default dashboard. It would be cool, if we could set it like 1.

chad added a comment.Wed, Feb 1, 11:47 PM

OK, yes, that is the default "Builtin" one we ship with. It wasn't previously visible if you installed a global default. When you migrate to HEAD, it should have ended up with 2 links, one for the built-in home, and one for the global dashboard that was migrated. You can disable the builtin Home under Global Menu Item.

chad added a comment.Wed, Feb 1, 11:48 PM

@epriestley This part of the migration might be confusing, should we disable the built-in home if they had a Default Dashboard?

chad edited the task description. (Show Details)Wed, Feb 1, 11:53 PM
chad added a comment.Thu, Feb 2, 12:08 AM

Not sure if you pulled today or yesterday, but we've had a dozen diffs on the new menu.

I think D17294 + guidance is maybe good enough?

If we try to disable "Home" I think we need to write rows for every builtin item, or "Home" will float to the top, since builtins with a row sort above builtins without one. If we continue tweaking builtins, that might lead to more confusion down the line than not disabling home would.

chad edited the task description. (Show Details)Thu, Feb 2, 2:57 AM

If Admin "sets default" on Global, and users have not set a default, the page follow admin default. (I had to set my dashboard as default, as seems to be no way of un-setting a default).

I'd say this behavior is reasonable -- if you want a different default, pin it? That is, my expectation is that we use these rules to choose a default:

  • If a personal item exists and is marked as a default, select it.
  • If a global item exists and is marked as a default, select it.
  • If any personal items exist which could be marked as a default, select the first one.
  • If any global items exist which could be marked as a default, select the first one.
  • Give up and select "magic home" if we make it this far without selecting anything else.

Would you expect different rules?

There isn't a way to un-set a default, or pick a different global default as a default, although you can effectively do either by creating a copy of whatever global item you want to be default and pinning it, except "magic home", which you can't copy. So there are a couple of messy edge cases there but they don't feel too important to me.

If we want to clean them up, we probably need to change defaults to be per-user, I guess? And change the pinning workflow to let you select any personal or global item. Doable, but not sure how valuable it is as a v1 feature.

chad added a comment.Thu, Feb 2, 3:20 PM

If you're a user and an admin pins a default, it's confusing and likely not expected.

chad added a comment.Thu, Feb 2, 3:23 PM

I assumed we were going with top-most displayable, which is simple and admins can't really force you into something else by mistake?

You can change the rules for picking a default item in PhabricatorProfileMenuEngine->loadItems() if you want to use different rules.

If we make a possible Personal default beat a selected Global default, we might end up in this scenario:

  • User adds a dashboard item to see what it does.
  • Their homepage changes, which they didn't expect/want.
  • They can't get back to the old one without deleting the item.

That feels a little more likely/surprising to me than the scenario you outline, but maybe it isn't.

chad added a comment.Thu, Feb 2, 3:27 PM

Basically I had this happen to me, thats why I filed it. Users just know they had a default page they installed and it suddenly went away as default - admins maybe figure out they messed up, but can't un-pin. So all users must then go and pin a default to fix.

You want to use top-most displayable even if the user has two personal dashboards and has explicitly clicked the pin icon on the second one to make it their default item?

chad added a comment.EditedThu, Feb 2, 3:28 PM

Do we need pinning at all on Home or Favorites? I think it's only for Workboards?

Pinning on Favorites has no effect.

Pinning on Home has an effect, but maybe it's simpler to remove it than try to resolve these cases.

I think D17298 is probably a good change for Favorites either way (so we don't have a "pin" UI there that doesn't do anything) since it's pretty simple.

I think just removing the feature on Home is reasonable for an initial version, too. I'm 100% happy with that solution forever on a personal level and it's a lot simpler than anything that involves the explicit "pin" action.

rphl added a comment.Thu, Feb 2, 3:52 PM

Got today a "Restricted" Report for "Home" from one of our users. Hmm.

chad added a comment.Thu, Feb 2, 4:12 PM

It says restricted application and only members of a certain project. Do you have steps I can reproduce the bug locally. I can't reverse guess here offhand how you've configured your instance to get here.

We should make sure to not error out the sidenav though.

rphl added a comment.EditedThu, Feb 2, 11:09 PM
  1. If I remove a user from our internal group (Project: contain internal members), I receive the error above.
  2. The internal group is only visible to its members (explains the "restricted project")
  3. Removing the "visible to" restriction, displays Projektname in error message

BUT: All our old Dashboards are visible to all users. hmm


chad added a comment.Thu, Feb 2, 11:18 PM

Please file a bug report with the steps we can follow to reproduce what your seeing. I still can't follow what I need to do here to see this locally.

epriestley edited the task description. (Show Details)Fri, Feb 3, 6:27 PM
chad added a comment.Fri, Feb 3, 6:30 PM

Awesome, thanks for hunting that down.

chad added a comment.Fri, Feb 3, 6:30 PM

I thought it might be that same issue, but sounded like it was a new issue and not a pre-existing one.

I'm not sure if I actually fixed @rphl's issue or not. D17308 was just aimed at the existing issue under the theory that we'll see more of it after this ships if we aren't already seeing it, but his report definitely might be a new issue.

It might have fixed @rphl's issue, if the underlying problem was something like: a dashboard contains a Query panel that runs a query for an application which the viewer can't see. Maybe. I'm not immediately sure how we can hit an Application policy exception from Home, unless that application is Home or Dashboards.

One thing I thought I might do is special-case the policy exception for applications so it says their name, since application names aren't secret. Then the dialog would at least say "You can't see Diffusion." or something instead of "You can't see an application.", and that would probably make it more clear what was going on in most cases. But the whole thing may have magically vanished at HEAD after D17308 if we're lucky.

Yeah, I don't think I fixed it. I tried this set of steps at master prior to D17308:

  • Create a Dashboard visible to All Users.
  • Add it to Home.
  • Add a Query panel showing Commits.
  • Restrict "Can Use Application" in Diffusion to only user A.
  • View the dashboard as user B.

This failed to reproduce the issue that @rphl reported. The dashboard and panel loaded normally, just with no commits visible.

chad edited the task description. (Show Details)Fri, Feb 3, 9:29 PM

I'm going to write up Diviner now, then Upgrading guide

rphl added a comment.Sat, Feb 4, 3:15 AM

got it! Could reproduce the "restricted error":

  • Our Phame Application is restricted to the "internal team" (specific project with members).
  • But we have added Phame it to the "global menu"
  • All other users without access to this team, receive this error for Home
  • If I remove Phame (restricted app) from the Global Menu, the dashboard is accessible to all users.

One other thought: it might be nice to provide a way to get to the dashboard from the dashboard-in-a-menu view. Currently, there's no way to "Edit This Dashboard" from Home or Projects: you have to go to Dashboards, hunt it down, and then manage things from there.

chad added a comment.Sun, Feb 5, 12:05 AM

Yeah that is one argument for crumbs

Two possible alternatives to crumbs I can come up with, although I don't love either:

  • Let menu items have a little edit action that shows up on the item itself, like workboard cards? (But 99% of the time you wouldn't want to click this?)
  • Put this workflow inside "Edit Menu" (but that's pretty obscure?)

If we did do crumbs + edit/dropdown button, dashboards could also have "View Standalone" as an option, although that doesn't feel huuugely useful to me.

Put this workflow inside "Edit Menu"

You might also want to edit the dashboard -- and be able to -- without having permission to edit the menu, which is another argument against this.

chad added a comment.Sun, Feb 5, 12:19 AM

I plan to go back to Photoshop and re-work dashboards top to bottom... at least, but a lot of time fixing the bad UX everywhere, then ship it as a default application. With Nuance + Facts possibly coming, seems right to get ahead of them.

chad added a comment.Sun, Feb 5, 12:20 AM

Might even contract some illustrations O.o

chad moved this task from Backlog to v2 on the Dashboards board.Fri, Feb 10, 4:36 AM
chad edited projects, added Dashboards (v2); removed Dashboards.
epriestley edited the task description. (Show Details)Fri, Feb 10, 4:59 PM
chad edited the task description. (Show Details)Fri, Feb 10, 5:07 PM

Just tested this out with having global menu items of Create Task forms and Projects, each which are only visible based on some policy - looks to not have any issues hiding/showing based on those policies. Thanks for all this, when I get these changes into production install I'll check for feedback but I'm anticipating it will be a smoother experience for everyone.