Interactive filter to search on order guide/catalog string type field

Joshua Comeau
Kilo Sage

Here is my script unsure what could be causing it to not update the report filtering on first name

the report I am targeting does have follow interactive filter on:

Order guide Variable "first name" preview:

JoshuaComeau_0-1712064314018.png

 

 

Dashboard preview:

JoshuaComeau_1-1712064313958.png

 

 

Code:

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
 
  <style>  
    .divTable{
      display: table;
      width: 100%;
    }
    .divTableRow {
      display: table-row;
    }
    .divTableHeading {
      background-color: #EEE;
      display: table-header-group;
    }
    .divTableCellLeft.divTableCellRight.divTableHead {
      display: table-cell;
      padding: 3px 10px;
    }
    .divTableCellLeft{
      width:30%;
    }
    .divTableCellRight{
      width:70%;
    }
    .divTableHeading {
      background-color: #EEE;
      display: table-header-group;
      font-weight: bold;
    }
    .divTableFoot {
      background-color: #EEE;
      display: table-footer-group;
      font-weight: bold;
    }
    .divTableBody {
      display: table-row-group;
    }
  </style>
   
  <script>
    var my_dashboardMessageHandler = new DashboardMessageHandler("FilterFirstName");

    function publishFilter (searchTerm) {
      var filter_message = {};
      filter_message.id = "FilterFirstName";
      filter_message.table = "sc_req_item";

      if (searchTerm == ""){
        clearFilter();
      } else {
        filter_message.filter = "first_nameLIKE"+ searchTerm;
      }
      SNC.canvas.interactiveFilters.setDefaultValue({
        id: filter_message.id,
        filters: [filter_message]
      }, false);
      my_dashboardMessageHandler.publishFilter(filter_message.table, filter_message.filter);
    }

    function clearFilter() {
      var filter_message = {};
      filter_message.id = "FilterFirstName";
      filter_message.table = "sc_req_item";
      filter_message.filter = "";
      SNC.canvas.interactiveFilters.setDefaultValue({
        id: filter_message.id,
        filters: [filter_message]
      }, false);
      my_dashboardMessageHandler.removeFilter();
      document.getElementById('searchTerm').value = '';
    }
  </script>  
  <div class="divTable" style="width: 100%;" >
    <div class="divTableBody">
      <div class="divTableRow">
        <div class="divTableCellLeft"><input class="clear-button" id="allTasks" type="button" value="Clear Filter" onClick="clearFilter()"/></div>
        <div class="divTableCellRight"><input id="searchTerm" class="form-control" type="text" value="" onChange="publishFilter(this.value)"/></div>
      </div>
    </div>
  </div>
</j:jelly>

 

 

 

0 REPLIES 0