Server script: action router
One widget, several actions, ACL-aware queries, nothing heavy on first load.
(function () {
data.items = [];
var limit = parseInt(options.limit, 10) || 10;
if (input && input.action === 'close') {
var rec = new GlideRecordSecure('incident');
if (rec.get(input.sys_id) && rec.canWrite()) {
rec.setValue('state', 6);
rec.update();
data.message = gs.getMessage('Closed');
}
}
var gr = new GlideRecordSecure('incident');
gr.addQuery('caller_id', gs.getUserID());
gr.addActiveQuery();
gr.orderByDesc('sys_updated_on');
gr.setLimit(limit);
gr.query();
while (gr.next()) {
data.items.push({
sys_id: gr.getUniqueValue(),
number: gr.getValue('number'),
title: gr.getDisplayValue('short_description'),
});
}
})();