The Zurich release has arrived! Interested in new features and functionalities? Click here for more

Multiple custom interactive filters on dashboard is not working

kirankumar redd
Tera Contributor

Hi All,

 

There is an requirement to create custom interactive filters for 4 to 6 string fields and need to filter on two tables.

I have created 6 content blocks separately with each one have different dashboard handler id, filter functions, clear filters.

whenever we are using them on dashboard individually those are working but when we use them all to get accurate data its not working. Since selected filter is overriding the existing selected filter.

Even the debug dashboard showing all filters information properly.

 

Please let me know if this approach will be work for AND condition on all 6 filters..? If not can you please suggest way to achieve this requirement.

I have created below 6 similar content blocks.

 

script for each filter :

<?xml version="1.0" encoding="UTF-8"?>
<j:jelly xmlns:j="jelly:core" xmlns:g="glide" xmlns:g2="null" xmlns:j2="null" trim="false">
<g:evaluate var="jvar_proName" object="true" jelly="true">
var objs = [];
var gr= new GlideAggregate('table1');
//gr.addNotNullQuery('u_field1');
gr.groupBy('u_field1');
gr.query();
while(gr.next()){
objs.push({'u_field1':gr.getDisplayValue('u_field1')});
}
objs;
</g:evaluate>
<div class="col-md-5">
<select id='searchTerm' class='select2-search form-control' onchange='publishFilter5(this.value);'>
<option value="">All</option>
<j:forEach var="jvar_proName" items="${jvar_proName}">
<option value="${jvar_proName.u_field1}">${jvar_proName.u_field1}</option>
</j:forEach>
</select>
</div>

<script>
var my_dMHandlerProName = new DashboardMessageHandler("my_proName_id");
function publishFilter5(searchTerm) {
<!-- Mutliple filters can be passed as an array -->
var finalFilter5 = [{"table":"table1","filter":"u_field1="+searchTerm}, {"table":"table2","filter":"table1.u_field1="+searchTerm}];
<!-- call setDefaultValue first -->
SNC.canvas.interactiveFilters.setDefaultValue({
id: my_dMHandlerProName._proName_id,
filters: finalFilter5,
}, false);
if (searchTerm == ""){
clearFilter5();
}
<!-- then call Publishmessage to publish filters-->
my_dMHandlerProName.publishMessage(finalFilter5);
}
function clearFilter5() {
SNC.canvas.interactiveFilters.removeDefaultValue(my_dMHandlerProName._proName_id,'', false);
my_dMHandlerProName.removeFilter();
}
</script>
</j:jelly>

 

 

1 REPLY 1

kirankumar redd
Tera Contributor

@Chuck Tomasi can you please suggest something on this requirement.