I have created the Visualforce for this use case. . I get work order details in table form, but paging and filtering in not working. My code as follows
<div ng-controller="searchWOController">
<p>Filter: <input class="form-control" type="text" ng-model="filter.$" /></p>
<table ng-table="tableParams" template-pagination="custom/pager" class="table">
<tr ng-repeat="wo in workOrderRes">
<td data-title="'Work Order Name'" sortable="'name'">
{{wo.name}}
</td>
<td data-title="'Priority'" sortable="'priority'">
{{wo.priority}}
</td>
<td data-title="'Status'" sortable="'status'">
{{wo.status}}
</td>
</tr>
</table>
<script type="text/ng-template" id="custom/pager">
<ul class="pager ng-cloak">
<li ng-repeat="page in pages"
ng-class="{'disabled': !page.active, 'previous': page.type == 'prev', 'next': page.type == 'next'}"
ng-show="page.type == 'prev' || page.type == 'next'" ng-switch="page.type">
<a ng-switch-when="prev" ng-click="params.page(page.number)" href="">« Previous</a>
<a ng-switch-when="next" ng-click="params.page(page.number)" href="">Next »</a>
</li>
<li>
</li>
</ul>
</script>
</div>
app.controller('searchWOController', function($scope,$filter,ngTableParams) {
var workOrderObj = new WorkOrderModels.wo();
var workOrderResult=[];
$scope.tableParams = new ngTableParams(
{
page: 1, // show first page
count: 10, // count per page
sorting: {name:'asc'}
},
{
total: workOrderResult.length, // length of data
getData: function($defer, params) {
// use build-in angular filter
var orderedData = params.sorting() ?
$filter('orderBy')(workOrderResult, params.orderBy()) :
workOrderResult;
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
workOrderObj.retrieve({limit: 10}, function(err, records, event){
if(err) {
alert(err.message);
}
else {
records.forEach(function(record) {
workOrderResult.push({name:record.get("Name"),priority:record.get("Priority__c")});
//alert(workOrderResult);
});
}
$scope.$apply(function () {
$scope.workOrderRes = workOrderResult;
});
});
});
app.controller('searchWOController', function($scope,$filter,ngTableParams) {
var workOrderObj = new WorkOrderModels.wo();
var workOrderResult=[];
$scope.tableParams = new ngTableParams(
{
page: 1, // show first page
count: 10, // count per page
sorting: {name:'asc'}
},
{
total: workOrderResult.length, // length of data
getData: function($defer, params) {
// use build-in angular filter
var orderedData = params.sorting() ?
$filter('orderBy')(workOrderResult, params.orderBy()) :
workOrderResult;
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
workOrderObj.retrieve({limit: 10}, function(err, records, event){
if(err) {
alert(err.message);
}
else {
records.forEach(function(record) {
workOrderResult.push({name:record.get("Name"),priority:record.get("Priority__c")});
//alert(workOrderResult);
});
}
$scope.$apply(function () {
$scope.workOrderRes = workOrderResult;
});
});
});