diff --git a/Client-Side Components/Catalog Client Script/previous Request/Readme.MD b/Client-Side Components/Catalog Client Script/previous Request/Readme.MD new file mode 100644 index 0000000000..8719bdbf32 --- /dev/null +++ b/Client-Side Components/Catalog Client Script/previous Request/Readme.MD @@ -0,0 +1,3 @@ +Show previous request ON requested for selection + +This feature enhances the Service Catalog experience by displaying previous requests for the selected Requested For user. When a user selects the Requested For variable in a catalog item form, a confirmation message appears showing the last few requests created for that user. diff --git a/Client-Side Components/Catalog Client Script/previous Request/previous request client script.js b/Client-Side Components/Catalog Client Script/previous Request/previous request client script.js new file mode 100644 index 0000000000..b0757fedaa --- /dev/null +++ b/Client-Side Components/Catalog Client Script/previous Request/previous request client script.js @@ -0,0 +1,24 @@ +function onChange(control, oldValue, newValue, isLoading) { + if (isLoading || newValue == '') return; + + var ga = new GlideAjax('PreviousRequestsUtils'); + ga.addParam('sysparm_name', 'getPreviousRequests'); + ga.addParam('sysparm_requested_for', newValue); + ga.getXMLAnswer(function(response) { + var requests = JSON.parse(response); + if (requests.length === 0) { + alert('No previous requests found for this user.'); + } else { + var message = 'Previous Requests:\n\n'; + requests.forEach(function(req) { + message += 'Number: ' + req.number + ' | Item: ' + req.item + ' | Date: ' + req.date + '\n'; + }); + if (confirm(message + '\nDo you want to continue?')) { + // User clicked OK + } else { + // User clicked Cancel + g_form.setValue('requested_for', oldValue); + } + } + }); +} diff --git a/Client-Side Components/Catalog Client Script/previous Request/previous request script include.js b/Client-Side Components/Catalog Client Script/previous Request/previous request script include.js new file mode 100644 index 0000000000..ef8ffd6292 --- /dev/null +++ b/Client-Side Components/Catalog Client Script/previous Request/previous request script include.js @@ -0,0 +1,20 @@ +var PreviousRequestsUtils = Class.create(); +PreviousRequestsUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, { + getPreviousRequests: function() { + var requestedFor = this.getParameter('sysparm_requested_for'); + var result = []; + var gr = new GlideRecord('sc_req_item'); + gr.addQuery('requested_for', requestedFor); + gr.orderByDesc('sys_created_on'); + gr.setLimit(5); // Show last 5 requests + gr.query(); + while (gr.next()) { + result.push({ + number: gr.number.toString(), + item: gr.cat_item.getDisplayValue(), + date: gr.sys_created_on.getDisplayValue() + }); + } + return JSON.stringify(result); + } +});