Name
global.ResponseTemplateSearchHelper
Description
No description available
Script
var ResponseTemplateSearchHelper = Class.create();
ResponseTemplateSearchHelper.prototype = {
initialize: function(request, response) {
this.request = request;
this.response = response;
this.DEFAULT_COUNT = 10;
this.DEFAULT_OFFSET = 0;
},
processSearch: function() {
var inputs = JSON.parse(arguments[0]);
if (!inputs['tableName'])
return;
this.table = this.request.formTable;
var responseTemplate = new sn_templated_snip.ResponseTemplate();
this.responseTable = inputs['tableName'].toString();
this.sysId = this.request.formId;
this.search = this.request.query && this.request.query.freetext ? this.request.query.freetext : '';
this.count = Number(inputs['count'] ? inputs['count'].toString() : this.DEFAULT_COUNT) + 1;
this.offset = Number(inputs['offset'] ? inputs['offset'].toString() : this.DEFAULT_OFFSET);
var encodedQuery = inputs['script.encoded_query'];
var channel = responseTemplate.CHANNEL_FORM;
if (encodedQuery.includes('channels=')) {
channel = encodedQuery.replace('channels=', '');
}
var opts = {
channel: channel
};
var results = responseTemplate.query(this.table, this.sysId, this.search, this.count, this.offset, true, '', opts);
this.formatResults(JSON.parse(results));
},
formatResults: function(results) {
if (!results || !results.length)
return;
var sysIdResultsMap = {};
for (var i = 0; i < results.length; i++) {
var result = results[i];
sysIdResultsMap[result.sys_id] = result;
}
var gr = new GlideRecordSecure(this.responseTable);
gr.addQuery('sys_id', 'IN', Object.keys(sysIdResultsMap));
gr.orderBy('name');
gr.query();
while (gr.next()) {
var response = sysIdResultsMap[gr.getUniqueValue()];
// Swap template with evaluated response
gr.setValue('html_script_body', response.evaluated_response.evaluated_body);
var srdc = new SNC.SearchResultDisplayConfiguration(gr.getTableName(), this.request.getUiType(), this.request.getFormTable());
var res = new SNC.SearchResult();
res['title'] = response.name;
res['snippet'] = response.evaluated_response.evaluated_body;
res['id'] = this.responseTable + ':' + response.sys_id;
res.meta.setDisplayConfiguration(srdc, gr);
this.response.results.push(res);
}
},
type: 'ResponseTemplateSearchHelper'
};
Sys ID
1c54764153533300f7c6ddeeff7b1282