Change the CI field icon in the incident form
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-24-2024 02:19 PM - edited 11-24-2024 02:35 PM
Hello,
I’m trying to modify the behavior of the following icon. Currently, it displays once the subcategory has been selected.
I need it to display only when the CI is selected.
I’ve checked and believe the icon’s behavior is managed by the following macro, but despite all my modifications, the button still appears when the subcategory is changed.
Macro ui used is the following for icon :
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<j:set var="jvar_n" value="show_related_tasks_${ref}"/>
<g2:evaluate var="jvar_show_tasks_display" jelly="true">
var id = __ref__.getSysIdValue();
if (id == null)
"none";
else {
var ga = new GlideRecord('task_ci');
ga.addQuery('ci_item', __ref__.getSysIdValue());
ga.addQuery('task', '!=', jelly.sys_id);
ga.addQuery('task.sys_created_on','>',gs.daysAgoStart(0));
ga.addQuery('task.sys_created_on','<',gs.daysAgoEnd(0));
ga.addQuery('task.active', true);
ga.addQuery('task.sys_class_name', 'incident');
ga.setLimit(1);
ga.query();
if (ga.next())
"";
else
"none";
}
</g2:evaluate>
<a id="${jvar_n}"
onclick="showTasksDialog('${ref}')"
name="${jvar_n}"
class="btn btn-ref btn-default icon-warning-circle"
style="display:$[jvar_show_tasks_display]">
<span class="sr-only">
${gs.getMessage('Active incidents against the same CI opened on the same day')}
</span>
</a>
<script>
needsRefresh = false;
function onChange_cmdb_ci_show_related(element, original, changed, loading) {
if (needsRefresh == false) {
needsRefresh = true;
return;
}
if (changed.length == 0) {
$('${jvar_n}').hide();
return;
}
var ga = new GlideAjax('ShowRelatedTasksAjax');
ga.addParam('sysparm_name', 'getRelatedTaskCount');
ga.addParam('sysparm_ci', g_form.getValue('${ref}'));
ga.addParam('sysparm_task', g_form.getUniqueValue());
ga.getXML(relatedTaskReturn);
}
function relatedTaskReturn(response) {
var answer = parseInt(response.responseXML.documentElement.getAttribute("answer"));
var e = $('${jvar_n}');
if (answer > 0)
e.show();
else
e.hide();
}
var h = new GlideEventHandler('onChange_incident_cmdb_ci_show_related', onChange_cmdb_ci_show_related, '${ref}');
g_event_handlers.push(h);
function showTasksDialog(reference){
var v = g_form.getValue(reference);
var w = new GlideDialogWindow('show_list');
w.setTitle(getMessage('Active incidents against the same CI opened today'));
w.setPreference('table', 'task_list');
w.setPreference('sysparm_view', 'default');
w.setPreference('sysparm_query', "active=true^sys_id!=" + g_form.getUniqueValue() + "^sys_created_onONToday@javascript:gs.daysAgoStart(0)@javascript:gs.daysAgoEnd(0)^SUBQUERYsys_id,task,task_ci,sys_created_on^ci_item=" + v + "^ENDSUBQUERY");
w.render();
}
</script>
</j:jelly>
Thank you in advance
Thank you in advance
1 REPLY 1
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-25-2024 07:50 AM
I forget the script include inside the code (this is an ootb include script)