-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[Maps] add drilldown support map embeddable #75598
Conversation
Pinging @elastic/kibana-gis (Team:Geo) |
Can you review the changes to map_embeddable to make sure I am not abusing the ui_action_service API? |
@elasticmachine merge upstream |
Tested this out and it looks good. |
@elasticmachine merge upstream |
Tested as well and not much to add, worked smoothly, super cool. @nreese have you tried to put the drilldown destination below the rest of the tooltip content as used in other visualizations? |
That is not possible because the filter context depends on the field. In the screen shot below, notice how you can create a filter from multiple fields. I also did not like the popup after selecting the filter. It messed up the flow the request new data from the user when they have already filled out an UI to create the filter. I like the flow where the user only has a single UI to add filters and they select the action in that flow |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really cool!
These are just some minor initial comments about the general flow.
- When going into Edit-mode, all the drilldowns disappears from the tooltips.
This seems "off".
(I guess this helps to prevent users navigating away from the dashboard during editing, but that same restriction does not apply anywhere when the user tries to navigate elsewhere in Kibana by e.g. clicking an app-icon in the side-bar)
- When there are multiple drilldowns, we show the first one, and a little expando-arrow to see the full list.
I'm wondering if that's what we really want, because it seems to add a hierarchy and level of importance to these actions. Filtering > first drilldown > other drilldowns
. I'm not sure if that's the case. Maybe the expando could just collect all drilldowns (clicks don't matter :) )
Note that you also can't "order" drilldowns in the drilldown editor, so the user is a little stuck when creating them (unless they remove and re-create them in the correct order).
- Drilldowns are not available when there are no tooltips
A user can create drilldowns when a map layer does not have tooltips.
- Do we want all drilldowns for every layer?
Do we want every drilldowns to show up in every tooltip of every layer?
Not sure how important these are. I think in general, it will be somewhat of a difficult concept for users to just "discover" how tooltips layers, and drilldowns relate to eachother. They need to know:
- they have to create a tooltip first and only include fields they want to be able to create drilldowns for
- the drilldowns need to make sense in the context of the map: --> maps with drilldowns should not contain layers where the configured drilldowns do not make sense
As work-around:
- Would it make sense to expand the Maps-app to complain some additional info in the tooltip-card, that refers to drilldowns?
- Would it make sense to disable drilldown-creation (if possible) if the map does not have tooltips?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the idea of just having the right arrow button to view all actions. The only thing is that when we have long lists the content seems a little bit out of place.
@nreese what do you think of separating each property with a line and align the icons to the right?
Not sure if I like all of the horizontal lines. This adds a lot of noise and visual clutter to the screen. How about moving the buttons to the left side? Then they sit next to the field name. |
Normally the action buttons are on the right side. And because we have an Option 1 - We can remove the lines. I think it makes it more difficult to know in some cases to each label property the action belongs. Option 2 - We can add the same line color of the Layers Panel which is a very light gray |
I like the light gray lines |
I like option 2 a lot. |
@elasticmachine merge upstream |
* Improving tooltip actions row styles * Removind unecessary comment
@elasticmachine merge upstream |
@elasticmachine merge upstream |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for merging the PR. Tested locally and it looks good! 🎉
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is really slick_ addition. The interactivity with the dashboards improves leaps and bounds, especially in combination with save&return
.
@@ -78,6 +78,11 @@ import { UnregisterCallback } from 'history'; | |||
import { UnwrapPromiseOrReturn } from '@kbn/utility-types'; | |||
import { UserProvidedValues } from 'src/core/server/types'; | |||
|
|||
// Warning: (ae-missing-release-tag) "ACTION_GLOBAL_APPLY_FILTER" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these warnings something we should care about?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure. I do not understand the entire auto-generated API thing. Since its only exposing a constant I figured it was good enough.
x-pack/plugins/maps/public/connected_components/map/mb/draw_control/draw_control.js
Show resolved
Hide resolved
💚 Build SucceededBuild metrics@kbn/optimizer bundle module count
async chunks size
page load bundle size
distributable file count
History
To update your PR or re-run it, just comment with: |
* [Maps] add drilldown support * filter actions view * use i18n getter * remove unused changed * tslint fixes * more tslint changes * clean-up and API doc changes * update snapshots * do not show first drilldown in tooltip * add light grey line to seperate feature property rows * Improving tooltip row styles (#36) * Improving tooltip actions row styles * Removind unecessary comment * update snapshot and add functional test * switch UiActionsActionDefinition to Action and remove unneeded checks Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> Co-authored-by: Elizabet Oliveira <elizabet.oliveira@elastic.co>
* [Maps] add drilldown support * filter actions view * use i18n getter * remove unused changed * tslint fixes * more tslint changes * clean-up and API doc changes * update snapshots * do not show first drilldown in tooltip * add light grey line to seperate feature property rows * Improving tooltip row styles (#36) * Improving tooltip actions row styles * Removind unecessary comment * update snapshot and add functional test * switch UiActionsActionDefinition to Action and remove unneeded checks Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> Co-authored-by: Elizabet Oliveira <elizabet.oliveira@elastic.co> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> Co-authored-by: Elizabet Oliveira <elizabet.oliveira@elastic.co>
…s-for-710 * 'master' of github.com:elastic/kibana: (43 commits) [APM] Chart units don't update when toggling the chart legends (elastic#74931) [ILM] Add support for frozen phase in UI (elastic#75968) Hides advanced json for count metric (elastic#74636) add client-side feature usage API (elastic#75486) [Maps] add drilldown support map embeddable (elastic#75598) [Enterprise Search] Request handler refactors/enhancements + update existing routes to use shared handler (elastic#76106) [Resolver] model `location.search` in redux (elastic#76140) [APM] Prevent imports of public in server code (elastic#75979) fix eslint issue skip flaky suite (elastic#76223) [APM] Transaction duration anomaly alerting integration (elastic#75719) [Transforms] Avoid using "Are you sure" (elastic#75932) [Security Solution][Exceptions] - Fix bug of alerts not updating after closure from exceptions modal (elastic#76145) [plugin-helpers] improve 3rd party KP plugin support (elastic#75019) [docs/getting-started] link to yarn v1 specifically (elastic#76169) [Security_Solution][Resolver] Resolver loading and error state (elastic#75600) Fixes App Search documentation links (elastic#76133) Fix alerts unable to create / update when the name has trailing whitepace(s) (elastic#76079) [Resolver] Fix useSelector usage (elastic#76129) [Enterprise Search] Migrate util and components from ent-search (elastic#76051) ... # Conflicts: # x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/data_tier_allocation/node_allocation.tsx # x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/edit_policy.tsx # x-pack/plugins/index_lifecycle_management/public/application/services/policies/types.ts # x-pack/plugins/index_lifecycle_management/public/application/services/policies/warm_phase.ts
Fixes #67567
This PR adds drilldown support to map embeddable allowing users to configure drilldowns for map panels.
To test
About the UI
Visualization panels are much simplier than map panels. When a pie slice or heatmap square are clicked, there is only a single value or pair of values. As a result, drilldowns for visualization panels provide a popup to allow the user to select the appropriate action after clicking.
This flow does not translate to map panels. The reason is that the map contains much more information for each element then a simple x/y axis. Users are presented with a tooltip or drawing configuration that requires pre-configuration before the filter can be generated. It is a disruptive user experience to present the user with the drilldown popover after dealing with the popover required to create the filter. As a result, this PR places the drilldown action selection as part of the initial UI to create the filter.
When creating spatial filters, if drilldowns are configured, then the user can select the drilldown in the
actions
select. Upon completing the drawing action, the selected drilldown will be executed with no further user interactions.To avoid cluttering the tooltip UI, Users can click the right arrow button to view all actions.