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";>
   
   
![IMG_20190513_164645](https://user-images.githubusercontent.com/13414728/57750635-a6950480-7700-11e9-864d-c4eb31202c9b.jpg)
   
   
![IMG_20190513_164936](https://user-images.githubusercontent.com/13414728/57750647-aeed3f80-7700-11e9-88da-e9439f6380da.jpg)
   
   
   **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]

Reply via email to