jitendra-kumawat opened a new issue #7512: URL: https://github.com/apache/incubator-superset/issues/7512
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 <img width="795" alt="Screenshot 2019-05-07 at 10 01 37 AM" src="https://user-images.githubusercontent.com/13414728/57750399-bf50ea80-76ff-11e9-97b8-f0da730f9f8c.png"> <img width="957" alt="Screenshot 2019-05-13 at 12 28 36 PM" src="https://user-images.githubusercontent.com/13414728/57750403-c4159e80-76ff-11e9-93cc-0ff18815e931.png"> ** 2. UI for get info of publishers and subscribers from user** <img width="952" alt="Screenshot 2019-05-13 at 12 32 00 PM" src="https://user-images.githubusercontent.com/13414728/57750421-d2fc5100-76ff-11e9-80ac-2ab30d432eba.png"> **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. <img width="947" alt="Screenshot 2019-05-13 at 12 57 14 PM" src="https://user-images.githubusercontent.com/13414728/57750564-633a9600-7700-11e9-8961-ecfcb9eefd90.png">   **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 .** ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
