Need help to update script in Dynamic Content in Dashboard

Suz Roque
Tera Expert

Hi Experts,

I need your help please, 

We have a Dashboard that was setup by previous Admin/developer containing dynamic content for our Dashboard, this dynamic content has 2 dropdowns "Idea Module" and "Site", whatever is picked, the reports inside the Dashboard follows this like an interactive filter. All reports inside this dashboard is from Idea table. This is working fine.

 

Now, the client wants to add 3 reports in this Dashboard for metrics in u_ideas_metrics table (this is a database view). After adding, the 3 reports are not following the dynamic content "Idea Module" and "Site", now i am not sure how to update this Dynamic content to also get the table from u_ideas_metrics and follow the selected module and site . Can anyone help me update this script?

 

 

Dynamic Content 

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<script>
var dmh = new DashboardMessageHandler("idp_filter");

function publishFilter(module, site){

var ideaFilterQuery = "";
var projectFilterQuery = "";
var demandFilterQuery = "";
var ideaTaskFilterQuery = "";

if(module != ''){
demandFilterQuery = "category=" + module;
ideaFilterQuery = "moduleSTARTSWITH" + module;
ideaTaskFilterQuery = "u_idea.moduleSTARTSWITH" + module;
} else {

}

if(site != ''){
if(module != ''){
demandFilterQuery += "^idea.u_target_site=" + site;
ideaFilterQuery += "^u_target_site=" + site;
ideaTaskFilterQuery += "^u_idea.u_target_site=" + site;
}else {
demandFilterQuery += "idea.u_target_site=" + site;
ideaFilterQuery += "u_target_site=" + site;
ideaTaskFilterQuery += "u_idea.u_target_site=" + site;
}


} else {

}

// Fetch Project Query
var ga = new GlideAjax('IDPFilterUtils');
ga.addParam('sysparm_name','getProjectsQuery');
ga.addParam('sysparm_idea_module', module);
ga.addParam('sysparm_idea_site', site);
ga.getXML(getQuery);

function getQuery(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
if(answer != '')
projectFilterQuery = "sys_idIN" + answer;
console.log(projectFilterQuery);
var allFilters = [{
"table": "idea",
"filter": ideaFilterQuery
}, {
"table": "pm_project",
"filter": projectFilterQuery
}, {
"table": "dmn_demand",
"filter": demandFilterQuery
}, {
"table": "u_idea_tasks",
"filter": ideaTaskFilterQuery
}];

SNC.canvas.interactiveFilters.setDefaultValue({
id: dmh.idp_filter,
filters: allFilters,
}, false);
dmh.publishMessage(allFilters);
}
}

setTimeout(function(){ publishFilter(document.getElementById('module').value, document.getElementById('site').value); }, 30);

</script>



Idea Module:
<g:evaluate var="jvar_module" object="true">
var div = new GlideRecord('im_module');
div.addEncodedQuery('nameSTARTSWITHQube Energy');
div.query();
div;
</g:evaluate>

<select id="module" onchange="publishFilter(this.value, document.getElementById('site').value);">
<option value="">-- None --</option>
<j:while test="${jvar_module.next()}">
<option value="${jvar_module.getValue('name')}">${jvar_module.getValue('name')}</option>
</j:while>
</select>



Site:
<g:evaluate var="jvar_site" object="true">
var loc = new GlideRecord('sys_choice');
loc.addEncodedQuery('nameINjavascript&colon;getTableExtensions(\'task\')^element=u_target_site^inactive=false');
loc.orderBy('label');
loc.query();
loc;
</g:evaluate>

<select id="site" onchange="publishFilter(document.getElementById('module').value, this.value);">
<option value="">-- None --</option>
<j:while test="${jvar_site.next()}">
<option value="${jvar_site.getValue('value')}">${jvar_site.getValue('label')}</option>
</j:while>
</select>




</j:jelly>

 

 

 

Database View

 

Screen Shot 2023-01-16 at 11.36.09 AM.png

4 REPLIES 4

Suz Roque
Tera Expert

Hi @newhand , can you help me solve this? i would reallly appreciate it, Thank you!

HI, @Suz Roque 
You can refer this link  Here  

The final part of the page mets your requirement.  (How to apply Custom Interactive Filter to multiple tables)

 

Please mark my answer as correct and helpful based on Impact.

HI, @Suz Roque 
You can refer this link  Here  

The final part of the page mets your requirement.  (How to apply Custom Interactive Filter to multiple tables)

 

Please mark my answer as correct and helpful based on Impact.

HI, @Suz Roque 
You can refer this link  Here  

The final part of the page mets your requirement.  (How to apply Custom Interactive Filter to multiple tables)

 

 

Please mark my answer as correct and helpful based on Impact.