How do you create a custom interactive filter on relationship table?
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-11-2023 10:29 AM
In the community I was able to find a script that allows you to create an interactive filter on a text field and that works great. I need to do the same thing but on the relationship table.
I have a report that is on the CI Relationship table. It consists of some Kubernetes Clusters and some Kubernetes Services. I want to filter on the service's namespace so that I will end up with a list of clusters and services where the namespace matches.
This is the code that works for short description:
<?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 my_dashboardMessageHandler = new DashboardMessageHandler("mgp");
function publishFilter () {
var filter_message = {};
filter_message.id = "mgp";
filter_message.table = "cmdb_ci_service";
var value = gel('cfShortDescription').value;
filter_message.filter = "short_descriptionLIKE" + value;
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 = "mgp";
filter_message.table = "cmdb_ci_service";
filter_message.filter = "";
gel('cfShortDescription').value = '';
SNC.canvas.interactiveFilters.setDefaultValue({
id: filter_message.id,
filters: [filter_message]
}, false);
my_dashboardMessageHandler.removeFilter();
}
</script>
Short Description:
<input id="cfShortDescription" type="input" value="" /><br/>
<input id="removeCustomFilter" type="button" value="Clear" onclick="clearFilter();" />
<input id="addCustomFilter" type="button" value="Search" onclick="publishFilter();" />
</j:jelly>
I tried this but it didn't work:
<?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 my_dashboardMessageHandler = new DashboardMessageHandler("ks");
function publishFilter () {
var filter_message = {};
filter_message.id = "ks";
filter_message.table = "cmdb_rel_ci";
var value = gel('cfNamespace').value;
filter_message.filter = "child.cmdb_ci_kubernetes_service.namespaceLIKE" + value;
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 = "ks";
filter_message.table = "cmdb_rel_ci";
filter_message.filter = "";
gel('cfNamespace').value = '';
SNC.canvas.interactiveFilters.setDefaultValue({
id: filter_message.id,
filters: [filter_message]
}, false);
my_dashboardMessageHandler.removeFilter();
}
</script>
Namespace:
<input id="cfNamespace" type="input" value="" /><br/>
<input id="removeCustomFilter" type="button" value="Clear" onclick="clearFilter();" />
<input id="addCustomFilter" type="button" value="Search" onclick="publishFilter();" />
</j:jelly>
I'm assuming I need to identify the column elements (child.cmdb_ci_kubernetes_service.namesepace) but I don't know.
0 REPLIES 0