Forum Discussion

kingsofdeleon's avatar
kingsofdeleon
Cloud Apps
01-31-2024
Solved

Enabling Jump to Dashboard once a user drills down to a certain level

Summary is in the subject line.

I know that there's Jump to Dashboard configurations that allow users to jump to different dashboards depending on the column set.

However I don't see my particular case, in which I only have a single dashboard to jump to, but I only want to jump there after the user drills down and reaches a specific granularity.

In my case: I have a dashboard that is on a "game theme" level. From here a user can drill down to Players who play on this machine.

After drilling down to the player level, I would then (and only then) like the option to "Jump" to a Player Market dashboard. This dashboard provides analytics tailored to a single player. It wouldn't make too much sense looking at multiple players.


Is there a way to hide the option to "jump" to this dashboard until our user drills down to the player grain?

 

  • Hi kingsofdeleon ,

    You can use the following dashboard script to intercept the menu items as they're being generated.

     

    let JTDEnabledDrillDim = '[DimCountries.Region]'
    let widgetOid = '65bacb7b874ecd0042b01e97'
    
    prism.on('beforemenu', (ev, args) => {
    	let widget = args.settings.widget
    	if (args.settings.widget.oid !== widgetOid) { return }
    	if (args.settings.name !== 'datapoint') { return }
    	if (widget.metadata.isDrilled() && widget.metadata.getDrilledItem().jaql.dim === JTDEnabledDrillDim) { return } 
    	Object.seal(args.settings.items)
    })
    

     

    You'll need to specify the widgets oid and the drill dim that you'd like to enable the JTD from.

    Unfortunately, as the JTD menu item is added to the items after the beforemenu event, the only way i've managed to solve this is by sealing the items object at this point. What we're doing is stopping the JTD service from adding the additional menu items, unless we're drilled into the desired dim. The side effect of this is that you'll get an error in the console stating that it was unable to add the JTD menu options. This shouldn't affect your user experience.

    It's a bit backwards - my preference would be to remove the item afterwards, so I might raise with Sisense if the JTD service can run before we access through this event.

     Let me know how you go?

    Thanks,

    Daniel

    RAPID BI

    [email protected]

    RAPID BI - Sisense Professional Services | Implementations | Custom Add-ons

2 Replies

Replies have been turned off for this discussion
  • Hi kingsofdeleon ,

    You can use the following dashboard script to intercept the menu items as they're being generated.

     

    let JTDEnabledDrillDim = '[DimCountries.Region]'
    let widgetOid = '65bacb7b874ecd0042b01e97'
    
    prism.on('beforemenu', (ev, args) => {
    	let widget = args.settings.widget
    	if (args.settings.widget.oid !== widgetOid) { return }
    	if (args.settings.name !== 'datapoint') { return }
    	if (widget.metadata.isDrilled() && widget.metadata.getDrilledItem().jaql.dim === JTDEnabledDrillDim) { return } 
    	Object.seal(args.settings.items)
    })
    

     

    You'll need to specify the widgets oid and the drill dim that you'd like to enable the JTD from.

    Unfortunately, as the JTD menu item is added to the items after the beforemenu event, the only way i've managed to solve this is by sealing the items object at this point. What we're doing is stopping the JTD service from adding the additional menu items, unless we're drilled into the desired dim. The side effect of this is that you'll get an error in the console stating that it was unable to add the JTD menu options. This shouldn't affect your user experience.

    It's a bit backwards - my preference would be to remove the item afterwards, so I might raise with Sisense if the JTD service can run before we access through this event.

     Let me know how you go?

    Thanks,

    Daniel

    RAPID BI

    [email protected]

    RAPID BI - Sisense Professional Services | Implementations | Custom Add-ons

  • Thank you very much Daniel for the explanation, this ended up working for me. The error in the console.log shouldn't be an issue, but would be great if there was a less disruptive way with interacting with JTD/Jump items.

    Appreciate the help!