Copy this script into ServiceNow under application x_786686_hr_leave (Australia). Table/API names already use the current scope.
Source: src/portal/widgets/hrlx_my_leaves/server.js
/**
* Widget: hrlx_my_leaves — Server Script
* Application: Custom · Scope: x_786686_hr_leave · sys_id: c84db0e8839f0b509f02b0d6feaad3c9
* Shows the current user's leave requests (secure).
*/
(function () {
data.leaves = [];
var gr = new GlideRecordSecure('x_786686_hr_leave_req_v2');
gr.addQuery('u_requested_for_user', gs.getUserID());
gr.orderByDesc('sys_created_on');
gr.setLimit(50);
gr.query();
while (gr.next()) {
data.leaves.push({
sys_id: gr.getUniqueValue(),
number: gr.getValue('u_number'),
type: gr.getDisplayValue('u_leave_type'),
start: gr.getValue('u_start_date'),
end: gr.getValue('u_end_date'),
days: gr.getValue('u_days_count'),
state: gr.getValue('u_state')
});
}
// Cancel action from client
if (input && input.action === 'cancel' && input.sys_id) {
var c = new GlideRecord('x_786686_hr_leave_req_v2');
if (c.get(input.sys_id) && c.getValue('u_requested_for_user') === gs.getUserID()) {
c.u_state = 'cancelled';
c.update();
}
}
})();