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

[Feature request] Intra Dashboard Interaction (Publish Subscriber Design Pattern) #7512

Open
jitendra-kumawat opened this issue May 15, 2019 · 3 comments

Comments

Projects
None yet
2 participants
@jitendra-kumawat
Copy link

commented May 15, 2019

Most of BI Tools have features of Data Drill Down and Dashboard Linking but superset doesn't have this in design so this is Design Proposal to add these features in superset and we can serve below use cases

Use cases
Intra Dashboard Interactivity means whenever user do selection over any visualization/chart in Dashboard then selection of that chart can apply to rest/set of charts in following manner depends on UX/Usecases-

Apply as filters/global filters in sql query as where clause with required query operators referred as applyFilter
Change model or schema of chart referred as changeConfig
Show information in popup referred as showPopup
Redirect to new URL or any other dashboard url referred as redirectToUrl
Mix of any action listed above referred as applyFilter and configChange
Selection sync or highlight same selections in different charts referred as highlightSelections

Design

To solve above use cases here is a design proposal to implement above feature in superset and calling it as Publish Subscriber Design Pattern , in this any charts which is used for selection (via click or user-interaction) called as Publisher and rest /set of charts listening these selections and update itself based on action defined called as subscribers.
refer to following terminology

  • Publisher - any chart publish selection on click
  • Publish Columns - list of columns and respective data published in form of selection
  • Subscriber- any chart subscribe selections published by publisher
  • Action - action need to execute on subscription, actions can be any above use case listed in introduction (1-6)
  • Operator- SQL query operators used while creating where clause like =,!=,IN etc
  • Subscribe Columns- subscriber can choose columns from publish columns before execute action
  • Extra- store extra metadata required like publish value can map with chart ids to dynamic chart changes
  • Interactor - acts mediator between charts and dashboard to identify publisher, subscriber and execute action with correct information
  • PubSubMetaData - metadata info related to publisher and subscriber

Design Flow screenshot

  1. Over all design flow diagram

Screenshot 2019-05-07 at 10 01 37 AM

Screenshot 2019-05-13 at 12 28 36 PM

** 2. UI for get info of publishers and subscribers from user**
Screenshot 2019-05-13 at 12 32 00 PM

Steps

1.There is a option on Dashboard to configure above parameters
2. A separate UI at dashboard level open to set PubSub info from USER and store it as PubSubMetaData .
3. once user will choose this option and it will store in Dashboard state and MetaData.

Describe alternatives you've considered
We can implement above design in two stages

Phase -I

  • All Pub sub info will be store at Chart level in form data and new options will be defined and added in PubSub section of Chart
  • PubSubMetaData will be created from slices and store at dashboard level and Options of Reconcile will be provided at dashboard level
  • once user will choose this option PubSubMetaData will create and store
  • interactor will be implemented as per design.

Screenshot 2019-05-13 at 12 57 14 PM

IMG_20190513_164645

IMG_20190513_164936

Phase -2

  • Designed UI will be implemented as per design and read all pubsub info from UI instead slices formdata
  • Reconcile option change to Configure Filters and update functionality

Additional context
NA

If anyone have any thoughts related to this type of feature then we can have a discussion further .

@issue-label-bot

This comment has been minimized.

Copy link

commented May 15, 2019

Issue-Label Bot is automatically applying the label #enhancement to this issue, with a confidence of 0.95. Please mark this comment with 👍 or 👎 to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

@jitendra-kumawat jitendra-kumawat changed the title [Feature] Intra Dashboard Interaction (Publish Subscriber Design Pattern) [Feature request] Intra Dashboard Interaction (Publish Subscriber Design Pattern) May 15, 2019

@graceguo-supercat

This comment has been minimized.

Copy link
Contributor

commented May 16, 2019

@xtinec take a look!

@jitendra-kumawat

This comment has been minimized.

Copy link
Author

commented May 22, 2019

@xtinec , if you have any thoughts over this design we can discuss .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.