Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Dashboard Usability] Unified Dashboard Options #144532

Closed
Tracked by #144752
ThomThomson opened this issue Nov 3, 2022 · 8 comments · Fixed by #153862
Closed
Tracked by #144752

[Dashboard Usability] Unified Dashboard Options #144532

ThomThomson opened this issue Nov 3, 2022 · 8 comments · Fixed by #153862
Assignees
Labels
enhancement New value added to drive a business result Feature:Dashboard Dashboard related features impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. loe:medium Medium Level of Effort Project:Dashboard Usability Related to the Dashboard Usability initiative Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas

Comments

@ThomThomson
Copy link
Contributor

ThomThomson commented Nov 3, 2022

Describe the feature:
Currently, options and settings for dashboard are spread around the application. As part of the Dashboard Usability initiative we should seek to unify them into one pane for ease of editing. These options include:

This will allow dashboard authors to more easily rename their dashboards, and to change settings without opening up the save as panel and accidentally creating a new dashboard.

The existing options top nav menu item should be extended to provide this functionality.

@ThomThomson ThomThomson added Feature:Dashboard Dashboard related features enhancement New value added to drive a business result Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas loe:medium Medium Level of Effort impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. labels Nov 3, 2022
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-presentation (Team:Presentation)

@ThomThomson ThomThomson added the Project:Dashboard Usability Related to the Dashboard Usability initiative label Nov 3, 2022
@ThomThomson ThomThomson changed the title [Dashboard] Unified Options Pane [Dashboard Usability] Unified Dashboard Options Dec 13, 2022
@nickpeihl
Copy link
Member

Here's an early design mock-up (definitely missing some of the options). The "Options" (maybe this should be "Settings") link on the nav bar opens a flyout showing the settings. This is similar to the new flyout for changing Panel Settings.

However, there is one key difference that I want to get a consensus on. The Dashboard settings flyout does not have a "Save" button. Any changes to the settings in the flyout apply immediately to the dashboard (as the current "Options" do) which puts the dashboard in a dirty state triggering the "Unsaved changes" badge. Persisting the changes simply requires clicking the "Save" button in the Navigation bar.

Screenshot showing design mockup of Dashboard settings flyout

Also, we currently try to dissuade the user from saving a dashboard when a matching title already exists. The screenshot below shows how we warn the user about a duplicate title, but still allow the user to save, creating the duplicate titled dashboard.

Screenshot showing current Save as modal with duplicate title warning

Should we warn the user in the flyout if their new title matches an existing dashboard? If so, when do we perform the duplicate title check? I think there are a few options, but happy to hear more suggestions.

  1. Check for duplicate titles on input change (debounce to accomodate user typing). Show the warning in the flyout form using form validation.
  2. Check for duplicate titles when focus is lost (such as switching to the description textarea). Show the warning in the flyout form using form validation.
  3. Only perform the duplicate title check when the user clicks the "Save" button? Show the warning as an EuiConfirmModal.

Of those options, I'm leaning towards number 3. IMO, this is a very common (but maybe undesirable 🤔) UX pattern. But I would love to get other opinions.

@Heenawter
Copy link
Contributor

Hmmm... I wonder if the lack of a Save button in the flyout is ideal? To me, having two different saving patterns between panel options and Dashboard options could be quite confusing, especially since the flyouts look so similar - I would expect their behaviour to be similar, as well. Users may be cautious to leave the flyout, because they do not realize that their changes are being automatically applied - and it may not be totally obvious how to discard these changes once they do leave the flyout (although this could be mitigated when we finally add the Reset button to the TopNavMenu, since discarding changes by switching to view mode is something users already struggle with).

If we decide to give the Dashboard options flyout a Save button, I personally think going with number 3 for warning about duplicate titles is a pretty good solution - if they click save and their Dashboard has a duplicate title, the warning can take them back to the flyout if they say Cancel, which makes it easy for them to change the title to something unique.

If we continue with the Dashboard options being automatically applied, it might feel a bit awkward to change the title when you find out it is a duplicate... Open the flyout, change some settings, exit the flyout, go to save your changes, find out the title is a duplicate, press cancel on the confirm modal, go back in to the settings flyout, change the title, then click save again. That's a lot of steps! We could include a way to change the title in the confirm modal (as we currently do), which could make the experience a bit smoother... But if we go this route, I'm almost leaning towards something more like number 2 so that they don't have to leave the context of the flyout in order to determine that the title is a duplicate?

@ThomThomson
Copy link
Contributor Author

ThomThomson commented Feb 10, 2023

The flyout looks great, and very standardized, nice work @nickpeihl! I think the only option it's missing at the moment is store time with dashboard.

In regards to changes applying immediately vs using a save button, I agree with @Heenawter that we should standardize on one approach or the other, rather than having it work differently depending on the context. So far, everything that is in a flyout follows the pattern of apply changes on a button click in the footer, so that's the one I'd prefer standardizing on.

If we did that, we could fire off the duplicate title check when the user hits save and close on the flyout, and if it fails the check, we leave the flyout open.

The one problem I'm starting to see with this pattern is the copy. If we continue using the verbiage ✔️ Save and close, it makes it seem like when you exit the flyout you're actually saving the changes you've made into the Dashboard Saved Object, because we're using the term save. In reality you aren't saving anything until you hit the save button in the top nav. I figure this could be confusing.

@KOTungseth, Is there any precedent for using a word more like apply in these cases? If we can, I'd be interested in standardizing all of these flyouts on the same copy, without using the word save.

@nickpeihl
Copy link
Member

We have a Save button already for the Dashboard. I'm concerned that adding another Save button to the flyout would be confusing.

dashboard-settings-save

In the Panel settings, the Save button applies the changes to the single panel, but doesn't save the dashboard. So the panel settings are still an ephemeral state and the dashboard has Unsaved changes. But you can move on to another panel and change its settings without saving the dashboard. The panel settings only persist when the entire dashboard is saved.

Also a "Save" or "Apply" button in the flyout means (I presume) the user loses the ability to immediately see the results of changing options like "Show panel titles" or "Use margins between panels". These options would only update on the dashboard if the "Save"/"Apply" button is clicked. If the user doesn't like the results, they have to re-open the flyout again, adding another couple of clicks.

dispatched-changes.mp4

Although, now I realize that is exactly what we do with "Show panel title" in the panel settings. The change isn't applied to the panel until the "Save" button is clicked. 🤔

@ThomThomson
Copy link
Contributor Author

ThomThomson commented Feb 10, 2023

I forgot about tags! Man that flyout looks so nice with tags!

the user loses the ability to immediately see the results of changing options

We discussed this when creating the Control editor and decided that it didn't make sense to have things change underneath the flyout in response to user action. The flyout feels to users like a separate context, so they expect their clicks to be localized in there until they close the panel.

@Heenawter
Copy link
Contributor

We have a Save button already for the Dashboard. I'm concerned that adding another Save button to the flyout would be confusing.

To get around this with Controls (and it looks like for the panel options as well), we disable the Dashboard Save button in favour of the flyout Save button - I think sticking to this pattern makes the most sense, especially if we don't change things underneath the flyout in response to an action as Devon suggested 👍

@nickpeihl
Copy link
Member

Oh, yeah. I forgot that Controls uses pattern. 👍

nickpeihl added a commit that referenced this issue Mar 31, 2023
## Summary

Adds flyout for changing individual dashboard settings such as title,
description, tags, and save time with dashboard. This also moves the
existing dashboard options (show panel titles, sync colors, use margins,
sync cursor, and sync tooltips) into the flyout.

Fixes #144532

[Flaky test
runner](https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/2055)

### Checklist

Delete any items that are not applicable to this PR.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [x] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)


### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New value added to drive a business result Feature:Dashboard Dashboard related features impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. loe:medium Medium Level of Effort Project:Dashboard Usability Related to the Dashboard Usability initiative Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants