

HTML:
<div>
<!-- your widget template -->
<pre>Sort by= {{orderField}}</pre>
<div><label>Search</label><input type="text" ng-model="searchText"></div>
<table>
<tr><th><button ng-click="changesort('number')">Number</button></th>
<th><button ng-click="changesort('short_description')">Short Description</button></th>
<th><button ng-click="changesort('sys_updated_on')">Date</button></th>
</tr>
<tr ng-repeat="incident in data.incidents | orderBy:orderField | filter:searchText">
<td>
{{incident.number}}
</td>
<td>
{{incident.short_description}}
</td>
<td>
{{incident.sys_updated_on}}
</td>
</tr>
</table>
</div>
Server Script
(function() {
/* populate the 'data' object */
/* e.g., data.table = $sp.getValue('table'); */
data.incidents=[];
var gr=new GlideRecord("incident");
gr.addActiveQuery();
gr.setLimit(10);
gr.orderByDesc("sys_updated_on");
gr.query()
while(gr.next())
{
var incident={};
incident.number=gr.getDisplayValue('number');
incident.short_description=gr.getDisplayValue('short_description');
incident.sys_id=gr.getUniqueValue();
incident.sys_updated_on=gr.getValue('sys_updated_on');
data.incidents.push(incident);
}
})();
Client Controller
function($scope, spUtil) {
/* widget controller */
var c = this;
$scope.orderField="number";
$scope.changesort=function(field){
$scope.orderField=field;
spUtil.recordWatch($scope,"incident","", function(name,data){
spUtil.update($scope);
});
};
}
Service Portal Custom table to show records with search functionality ServiceNow
Working Code Asked question July 7, 2023
Sorry, you do not have permission to read comments.