From 746df9067086bf746a062e6f698c4c663e6cd741 Mon Sep 17 00:00:00 2001 From: GHSayak25 <59216790+GHSayak25@users.noreply.github.com> Date: Sun, 12 Oct 2025 21:33:43 +0530 Subject: [PATCH 1/2] Add button creation on Risks related list on Issue form --- .../UI Actions/Add Button in Related List/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Client-Side Components/UI Actions/Add Button in Related List/README.md diff --git a/Client-Side Components/UI Actions/Add Button in Related List/README.md b/Client-Side Components/UI Actions/Add Button in Related List/README.md new file mode 100644 index 0000000000..c45708ae5a --- /dev/null +++ b/Client-Side Components/UI Actions/Add Button in Related List/README.md @@ -0,0 +1,5 @@ +Create a "Add" button on Risks Related List on Issue form, clicking on the button will open an interface where we can see all the Risk records to choose from. + +image + +image From e93e212204c125e11638cced7b6ab641d9d5327a Mon Sep 17 00:00:00 2001 From: GHSayak25 <59216790+GHSayak25@users.noreply.github.com> Date: Sun, 12 Oct 2025 21:40:38 +0530 Subject: [PATCH 2/2] Add button script to add related risks under issue records --- .../addButtoninRL.js | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 Client-Side Components/UI Actions/Add Button in Related List/addButtoninRL.js diff --git a/Client-Side Components/UI Actions/Add Button in Related List/addButtoninRL.js b/Client-Side Components/UI Actions/Add Button in Related List/addButtoninRL.js new file mode 100644 index 0000000000..48373d5ff8 --- /dev/null +++ b/Client-Side Components/UI Actions/Add Button in Related List/addButtoninRL.js @@ -0,0 +1,85 @@ +//Condition for the UI Action to be visible/available to admin users +RP.isRelatedList()&&gs.hasRole('admin')&&new sn_grc.addButtonsIssueCustom().isRisk(RP.getListControl().getControlID()) + +//The Script for OnClick function is written below- +function addRiskToIssue() { + var handleClick = function(ids) { + CustomEvent.un(eventName, handleClick); + var ajax = new GlideAjax('sn_grc.issueAssociationinRL'); + ajax.addParam('sysparm_item_ids', ids); + ajax.addParam('sysparm_issue_id', g_form.getUniqueValue()); + ajax.addParam('sysparm_name', 'createRisk'); + ajax.getXMLAnswer(function(answerStr) { + var answer = JSON.parse(answerStr); + if (answer.error) { + g_form.addErrorMessage(answer.error); + riskoverlay.close(); + return; + } + + g_form.clearMessages(); + + if (answer.count) { + g_form.addInfoMessage(answer.count + " risks got associated with this issue record."); + riskoverlay.close(); + } + + }); + }; + + var afterClose = function() { + CustomEvent.un(eventName, handleClick); + + for (var key in GlideLists2) { + if (!key) + continue; + GlideList2.get(key).setFilterAndRefresh(''); + } + }; + + var currentTableName = g_form.getTableName(); + var eventName = 'create_risks'; + var listTableName = 'sn_risk_risk'; + var actionName = getMessage('Add Risks'); + var popup_plural = getMessage('Risks'); + var issue = g_form.getUniqueValue(); + var query = 'active=true^sys_idNOT INjavascript:new sn_grc.getAlreadyAssociatedRecords().getSysIdsItem("' + issue + '");'; + var parameters = 'sysparm_click_event_name=' + eventName + '&'; + parameters += 'sysparm_nostack=true&'; + parameters += 'sysparm_table=' + listTableName + '&'; + parameters += 'sysparm_ui_action_name=' + actionName + '&'; + parameters += 'sysparm_omit_filter=true&'; + parameters += 'sysparm_plural=' + popup_plural + '&'; + parameters += 'sysparm_show_close=false&'; + var options = { + id: 'show_risks', + closeOnEscape: true, + showClose: true, + onAfterClose: afterClose, + onAfterLoad: resizeIframe, + height: '90%', + width: '90%', + title: 'Choose Risks to Associate', + iframe: '$sn_grc_show_list.do?' + parameters + }; + + if (g_scratchpad.popup_list_version == 3) { + parameters += "sysparm_query=" + '&'; + parameters += "sysparm_fixed_query=" + query + '&'; + options.iframe = "$sn_grc_show_list.do?" + parameters; + } else { + parameters += "sysparm_query=" + query + '&'; + options.iframe = "sn_grc_show_list.do?" + parameters; + } + var riskoverlay = new GlideOverlay(options); + riskoverlay.center(); + riskoverlay.render(); + CustomEvent.on(eventName, handleClick); +} + +function resizeIframe() { + var x = g_glideBoxes.show_risks; + x.autoDimension(); + x.autoPosition(); + x._createIframeShim(); +}