Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Amend user_show_incidents to work for sc_task table

StewartFletcher
Tera Guru

Looking to get the user_show_incidents UI Macro to work on Interactions and SCTASK's.

 

I've copied the user_show_incidents macro and amended for Interactions, and that works like a charm.

 

However, for SCTASK it doesn't filter on the user in requested for, and instead just shows all SCTASKS for all users.

 

Can anybody advise how I could tweak the script in this UI Macro to filter on the requested for, like it does for opened by on Incidents?

 

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate var="jvar_guid" expression="gs.generateGUID(this);" />
<j:set var="jvar_n" value="show_sctasks_${jvar_guid}:${ref}"/>
<g:reference_decoration id="${jvar_n}" field="${ref}"
  onclick="showRelatedList('${ref}'); "
  title="${gs.getMessage('Show related catalog tasks')}" image="images/icons/tasks.gifx" icon="icon-tree-right"/>
<g:inline template="list2_js_includes.xml"/>
<script>
// show related list
(function() {
    function decorationShow(element, original, changed, loading) {
        var $refButton = $j(gel('${jvar_n}'));
        $refButton.attr('role', 'button');
        }
    var n = '${jvar_n}'.replace(/./g, '');
    var h = new GlideEventHandler('onLoad' + n, decorationShow, '${ref}');
    g_event_handlers.push(h);
})();
function showRelatedList(reference) {
    try {
        var displayValue = g_form.getDisplayBox(reference).value;
        var title = new GwtMessage().getMessage("Showing records related to: {0} ", displayValue);
        var s = reference.split('.');
        var referenceField = s[s.length - 1];
        var query = referenceField + '=' + g_form.getValue(reference);

        var gdw = new GlideModal('show_list');
        gdw.setTitle(title);
        gdw.setSize(750);
        gdw.setPreference('focusTrap', true);
        gdw.setPreference('table', 'sc_task_list');
        gdw.setPreference('sysparm_query', query);
        gdw.setPreference('title', 'A New Title');
        gdw.render();
    } catch (e) {
        jslog('error showing related list');
        jslog(e);
    }
}

</script>
</j:jelly>
1 ACCEPTED SOLUTION

StewartFletcher
Tera Guru

So I found that this just doesn't seem to work on the SCTASK table, as Requested For is a RITM (sc_req_item) table field. So tweaked the INC code to point at that table instead, and it works like a charm. It will show users RITM's, not SCTASK's, but it's what we need.

 

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null"&gt;
&lt;g:evaluate var="jvar_guid" expression="gs.generateGUID(this);" /&gt;
&lt;j:set var="jvar_n" value="show_tasks_${jvar_guid}:${ref}"/&gt;
&lt;g:reference_decoration id="${jvar_n}" field="${ref}"
onclick="showRelatedList('${ref}'); "
title="${gs.getMessage('Show related catalog tasks')}" image="images/icons/tasks.gifx" icon="icon-tree-right"/&gt;
&lt;g:inline template="list2_js_includes.xml"/&gt;
&lt;script&gt;
// show related list
(function() {
function decorationShow(element, original, changed, loading) {
var $refButton = $j(gel('${jvar_n}'));
$refButton.attr('role', 'button');
}
var n = '${jvar_n}'.replace(/./g, '');
var h = new GlideEventHandler('onLoad' + n, decorationShow, '${ref}');
g_event_handlers.push(h);
})();
function showRelatedList(reference) {
try {
var displayValue = g_form.getDisplayBox(reference).value;
var title = new GwtMessage().getMessage("Showing records related to: {0} ", displayValue);
var query = 'requested_for' + '=' + g_form.getValue('requested_for');

var gdw = new GlideModal('show_list');
gdw.setTitle(title);
gdw.setSize(750);
gdw.setPreference('focusTrap', true);
gdw.setPreference('table', 'sc_req_item_list');
gdw.setPreference('sysparm_query', query);
gdw.setPreference('title', 'A New Title');
gdw.render();
} catch (e) {
jslog('error showing related list');
jslog(e);
}
}

&lt;/script&gt;
&lt;/j:jelly&gt;

View solution in original post

2 REPLIES 2

StewartFletcher
Tera Guru

Anybody got any views on this please?

StewartFletcher
Tera Guru

So I found that this just doesn't seem to work on the SCTASK table, as Requested For is a RITM (sc_req_item) table field. So tweaked the INC code to point at that table instead, and it works like a charm. It will show users RITM's, not SCTASK's, but it's what we need.

 

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null"&gt;
&lt;g:evaluate var="jvar_guid" expression="gs.generateGUID(this);" /&gt;
&lt;j:set var="jvar_n" value="show_tasks_${jvar_guid}:${ref}"/&gt;
&lt;g:reference_decoration id="${jvar_n}" field="${ref}"
onclick="showRelatedList('${ref}'); "
title="${gs.getMessage('Show related catalog tasks')}" image="images/icons/tasks.gifx" icon="icon-tree-right"/&gt;
&lt;g:inline template="list2_js_includes.xml"/&gt;
&lt;script&gt;
// show related list
(function() {
function decorationShow(element, original, changed, loading) {
var $refButton = $j(gel('${jvar_n}'));
$refButton.attr('role', 'button');
}
var n = '${jvar_n}'.replace(/./g, '');
var h = new GlideEventHandler('onLoad' + n, decorationShow, '${ref}');
g_event_handlers.push(h);
})();
function showRelatedList(reference) {
try {
var displayValue = g_form.getDisplayBox(reference).value;
var title = new GwtMessage().getMessage("Showing records related to: {0} ", displayValue);
var query = 'requested_for' + '=' + g_form.getValue('requested_for');

var gdw = new GlideModal('show_list');
gdw.setTitle(title);
gdw.setSize(750);
gdw.setPreference('focusTrap', true);
gdw.setPreference('table', 'sc_req_item_list');
gdw.setPreference('sysparm_query', query);
gdw.setPreference('title', 'A New Title');
gdw.render();
} catch (e) {
jslog('error showing related list');
jslog(e);
}
}

&lt;/script&gt;
&lt;/j:jelly&gt;