>> $scope.getPagedDataAsync = function (pageSize, page, searchText) { >> setTimeout(function () { >> var data; >> if ($scope.currentAccount) { >> //var acctNameHash = $scope.currentAccount.acctNameHash; >> //var showFinalized = $scope.showFinalized; >> var largeLoad = $scope.currentAccount.invoices; >> if (searchText) { >> var ft = searchText.toLowerCase(); >> //$http.get('/api/accounts/getAccountInvoices/' + acctNameHash + '/' + showFinalized) >> // .success(function (largeLoad) >> { >> data = largeLoad.filter(function (item) { >> return JSON.stringify(item).toLowerCase().indexOf(ft) != -1; >> }); >> // Always use first page after applying a filter >> $scope.setPagingData(data, 1, pageSize); >> }; >> } else { >> //$http.get('/api/accounts/getAccountInvoices/' + acctNameHash + '/' + showFinalized) >> // .success(function (largeLoad) >> { >> $scope.setPagingData(largeLoad, page, pageSize); >> } >> //); >> } >> } >> }, 100); >> }; >> >> $scope.$watch('pagingOptions', function (newVal, oldVal) { >> if (newVal !== oldVal && newVal.currentPage !== oldVal.currentPage) { >> $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText); >> } >> }, true); >> >> $scope.$watch('showFinalized', function (newVal, oldVal) { >> if (newVal !== oldVal && $scope.currentAccount && !$scope.isNew) { >> getAccountInvoices($scope.currentAccount.acctNameHash); >> // This is part of the getAccountInvoices method >> // $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText); >> } >> }); >> >> $scope.$watch('filterOptions', function (newVal, oldVal) { >> if (newVal !== oldVal) { >> $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText); >> } >> }, true); >> >> var linkCellTemplate = '<div class="ngCellText" ng-class="col.colIndex()">' + >> ' <a href="{{row.getProperty(col.field)}}">{{row.getProperty(col.field)}}</a>' + >> '</div>'; >> var balanceCellTemplate = '<div ng-class="{\'field-validation-error\': row.getProperty(col.field) < 0}"><div class="ngCellText">{{row.getProperty(col.field)|currency}}</div></div>'; >> $scope.gridOptions = { >> data: 'gridData', >> // showFooter: true, >> enableColumnResize: true, >> enableColumnReordering: true, >> enableRowSelection: false, >> enablePaging: true, >> showFooter: true, >> totalServerItems: 'totalServerItems', >> pagingOptions: $scope.pagingOptions, >> filterOptions: $scope.filterOptions, >> //rowTemplate: '<div style="height: 100%" ng-class="{label label-danger pull-right: row.getProperty(\'hidden\') == true}"><div ng-style="{ \'cursor\': row.cursor }" ng-repeat="col in renderedColumns" ng-class="col.colIndex()" class="ngCell {{col.cellClass}}"><div class="ngVerticalBar" ng-style="{height: rowHeight}" ng-class="{ ngVerticalBarVisible: !$last }"> </div><div ng-cell></div></div></div>', >> columnDefs: [ >> { >> field: 'invoiceNo', displayName: 'Invoice #', >> width: 70, resizable: true, sortable: true, >> enableCellEdit: false, >> cellTemplate: linkCellTemplate >> }, >> { field: 'descrip', displayName: 'Description', width: 200, resizable: true, sortable: true }, >> { field: 'created', displayName: 'Date Created', width: 150, resizable: true, sortable: true, cellFilter: "date: 'medium'" }, >> >> { >> field: 'balance', displayName: 'Balance', resizable: true, sortable: true, >> cellTemplate: balanceCellTemplate >> }] >> //,plugins: [new ngGridFlexibleHeightPlugin()] >> }; >> };>>