Forum Discussion

jplefka's avatar
jplefka
Data Storage
08-09-2022

Calling a BloX action on Widget or Dashboard Load

I have a BloX action that triggers a change of filter to the latest date available.  The Blox widget itself is loading the date that it needs to use.   Is there a way I can execute this BloX Widgets Action when the widget or dashbaord loads or renders?  

8 Replies

Replies have been turned off for this discussion
  • harikm007's avatar
    harikm007
    Data Warehouse

    Hi jplefka ,

    One alternative is to write a similar script in 'initialized' event of dashboard. 

    For example: 

    dashboard.on('initialized', function (se, ev) {
    
    currentYear = new Date().getFullYear().toString()
    datefilter = se.filters.$$items.find(el=>el.jaql.title == 'Date')
    
    datefilter.jaql.filter = {
    "explicit": true,
    "multiSelection": true,
    "members": [
    currentYear
    ]
    }
    
    var filterOptions = {
    save: true,
    refresh: true,
    }
    
    se.filters.update(datefilter, filterOptions)
    });

    -Hari

     

    • jplefka's avatar
      jplefka
      Data Storage

      Thanks, this works great for changing the date filter, however it keeps clearing out preset background and locked filters that I have, is there a way I can stop that from happening? 

      • harikm007's avatar
        harikm007
        Data Warehouse

        jplefka If you have background filter set, try below script:

        dashboard.on('initialized', function (se, ev) {
        	
        	currentYear = new Date().getFullYear().toString()
        	filter = se.filters.$$items.find(el=>el.jaql.title == 'Date')
        	
        	backgroundfilter = filter.jaql.filter.filter
        	
        	defaultValue = 'West'
        	
        	filter.jaql.filter = {
           	 	"explicit": true,
            	"multiSelection": true,
        		"filter":backgroundfilter,
            	"members": [
                currentYear
            	]
        	}
        	
        	var filterOptions = {
        							save: true,
        							refresh: true,
        						}
        	
        	se.filters.update(filter, filterOptions)
        });
        
        

        -Hari