Skip to content

Commit 24da1e0

Browse files
authored
Previous request open (#2605)
* Create Readme.MD * Create previous request client script.js * Create previous request script include.js * Rename previous request script include to previous request script include.js
1 parent bb0ae94 commit 24da1e0

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Show previous request ON requested for selection
2+
3+
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.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
function onChange(control, oldValue, newValue, isLoading) {
2+
if (isLoading || newValue == '') return;
3+
4+
var ga = new GlideAjax('PreviousRequestsUtils');
5+
ga.addParam('sysparm_name', 'getPreviousRequests');
6+
ga.addParam('sysparm_requested_for', newValue);
7+
ga.getXMLAnswer(function(response) {
8+
var requests = JSON.parse(response);
9+
if (requests.length === 0) {
10+
alert('No previous requests found for this user.');
11+
} else {
12+
var message = 'Previous Requests:\n\n';
13+
requests.forEach(function(req) {
14+
message += 'Number: ' + req.number + ' | Item: ' + req.item + ' | Date: ' + req.date + '\n';
15+
});
16+
if (confirm(message + '\nDo you want to continue?')) {
17+
// User clicked OK
18+
} else {
19+
// User clicked Cancel
20+
g_form.setValue('requested_for', oldValue);
21+
}
22+
}
23+
});
24+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
var PreviousRequestsUtils = Class.create();
2+
PreviousRequestsUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {
3+
getPreviousRequests: function() {
4+
var requestedFor = this.getParameter('sysparm_requested_for');
5+
var result = [];
6+
var gr = new GlideRecord('sc_req_item');
7+
gr.addQuery('requested_for', requestedFor);
8+
gr.orderByDesc('sys_created_on');
9+
gr.setLimit(5); // Show last 5 requests
10+
gr.query();
11+
while (gr.next()) {
12+
result.push({
13+
number: gr.number.toString(),
14+
item: gr.cat_item.getDisplayValue(),
15+
date: gr.sys_created_on.getDisplayValue()
16+
});
17+
}
18+
return JSON.stringify(result);
19+
}
20+
});

0 commit comments

Comments
 (0)