Name
sn_sow_req.UpcomingLinkProvider_Requests
Description
Implements extension point sn_sow.UpcomingLinkProvider
Script
var UpcomingLinkProvider_Requests = Class.create();
UpcomingLinkProvider_Requests.prototype = {
type: 'UpcomingLinkProvider_Requests',
initialize: function() {},
process: function(request, fromDateTime, toDateTime, assginToQuery) {
// Return array of objects per the link set api
// https://developer.servicenow.com/dev.do#!/reference/now-experience/quebec/shared-components/now-link-set/api
var PREFIX_QUERY = 'active=true^' + assginToQuery;
var TODAY_QUERY = '^due_dateONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()';
var TOMORROW_QUERY = '^due_dateONTomorrow@javascript:gs.beginningOfTomorrow()@javascript:gs.endOfTomorrow()';
var encodedQuery = null;
var listTitle = gs.getMessage("Requested items");
if ('beginningOfToday' == request.from && 'endOfToday' == request.to) {
encodedQuery = PREFIX_QUERY + TODAY_QUERY;
} else if ('beginningOfTomorrow' == request.from && 'endOfTomorrow' == request.to) {
encodedQuery = PREFIX_QUERY + TOMORROW_QUERY;
} else {
throw gs.getMessage("Unsupported date range");
}
var LIMIT = 10;
var gr = new GlideRecordSecure('sc_req_item');
gr.addEncodedQuery(encodedQuery);
gr.setLimit(LIMIT + 1);
gr.query();
var count = gr.next() ? gr.getRowCount() : 0;
var items = [];
if (count > 0) {
var msg = null;
if (1 == count) {
msg = gs.getMessage("{0} requested item", [count]) + "";
} else {
if (count > LIMIT) {
msg = gs.getMessage("More than {0} requested items", [LIMIT.toString()]) + "";
} else {
msg = gs.getMessage("{0} requested items", [count]) + "";
}
}
var route = {
route: 'simplelist',
fields: {
table: gr.getTableName()
},
params: {
listTitle: listTitle,
query: gr.getEncodedQuery()
}
};
if (1 == count) {
route = {
route: 'record',
fields: {
table: gr.getTableName(),
sysId: gr.getUniqueValue()
}
};
}
var item = {
label: msg,
type: 'route',
value: route,
"startsWith": {
"icon": "shopping-cart-outline",
"align": "center"
},
"opensWindow": false,
"configAria": {},
"download": false
};
items.push(item);
}
return items;
}
};
Sys ID
39a95f68b7f23010965e56bf7e11a985