Skip to content

Commit e93e212

Browse files
authored
Add button script to add related risks under issue records
1 parent 746df90 commit e93e212

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
//Condition for the UI Action to be visible/available to admin users
2+
RP.isRelatedList()&&gs.hasRole('admin')&&new sn_grc.addButtonsIssueCustom().isRisk(RP.getListControl().getControlID())
3+
4+
//The Script for OnClick function is written below-
5+
function addRiskToIssue() {
6+
var handleClick = function(ids) {
7+
CustomEvent.un(eventName, handleClick);
8+
var ajax = new GlideAjax('sn_grc.issueAssociationinRL');
9+
ajax.addParam('sysparm_item_ids', ids);
10+
ajax.addParam('sysparm_issue_id', g_form.getUniqueValue());
11+
ajax.addParam('sysparm_name', 'createRisk');
12+
ajax.getXMLAnswer(function(answerStr) {
13+
var answer = JSON.parse(answerStr);
14+
if (answer.error) {
15+
g_form.addErrorMessage(answer.error);
16+
riskoverlay.close();
17+
return;
18+
}
19+
20+
g_form.clearMessages();
21+
22+
if (answer.count) {
23+
g_form.addInfoMessage(answer.count + " risks got associated with this issue record.");
24+
riskoverlay.close();
25+
}
26+
27+
});
28+
};
29+
30+
var afterClose = function() {
31+
CustomEvent.un(eventName, handleClick);
32+
33+
for (var key in GlideLists2) {
34+
if (!key)
35+
continue;
36+
GlideList2.get(key).setFilterAndRefresh('');
37+
}
38+
};
39+
40+
var currentTableName = g_form.getTableName();
41+
var eventName = 'create_risks';
42+
var listTableName = 'sn_risk_risk';
43+
var actionName = getMessage('Add Risks');
44+
var popup_plural = getMessage('Risks');
45+
var issue = g_form.getUniqueValue();
46+
var query = 'active=true^sys_idNOT INjavascript:new sn_grc.getAlreadyAssociatedRecords().getSysIdsItem("' + issue + '");';
47+
var parameters = 'sysparm_click_event_name=' + eventName + '&';
48+
parameters += 'sysparm_nostack=true&';
49+
parameters += 'sysparm_table=' + listTableName + '&';
50+
parameters += 'sysparm_ui_action_name=' + actionName + '&';
51+
parameters += 'sysparm_omit_filter=true&';
52+
parameters += 'sysparm_plural=' + popup_plural + '&';
53+
parameters += 'sysparm_show_close=false&';
54+
var options = {
55+
id: 'show_risks',
56+
closeOnEscape: true,
57+
showClose: true,
58+
onAfterClose: afterClose,
59+
onAfterLoad: resizeIframe,
60+
height: '90%',
61+
width: '90%',
62+
title: 'Choose Risks to Associate',
63+
iframe: '$sn_grc_show_list.do?' + parameters
64+
};
65+
66+
if (g_scratchpad.popup_list_version == 3) {
67+
parameters += "sysparm_query=" + '&';
68+
parameters += "sysparm_fixed_query=" + query + '&';
69+
options.iframe = "$sn_grc_show_list.do?" + parameters;
70+
} else {
71+
parameters += "sysparm_query=" + query + '&';
72+
options.iframe = "sn_grc_show_list.do?" + parameters;
73+
}
74+
var riskoverlay = new GlideOverlay(options);
75+
riskoverlay.center();
76+
riskoverlay.render();
77+
CustomEvent.on(eventName, handleClick);
78+
}
79+
80+
function resizeIframe() {
81+
var x = g_glideBoxes.show_risks;
82+
x.autoDimension();
83+
x.autoPosition();
84+
x._createIframeShim();
85+
}

0 commit comments

Comments
 (0)