From 15fc035ba974d447530935ddd1a08225f008c3a8 Mon Sep 17 00:00:00 2001 From: Yemel Jardi Date: Tue, 20 May 2014 14:34:55 -0700 Subject: [PATCH] Move pagination of transaction proposals to the backend --- index.html | 4 ++-- js/controllers/transactions.js | 7 ++++++- js/filters.js | 8 ++------ js/services/controllerUtils.js | 8 ++++++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/index.html b/index.html index d4237e5a3..11a7c7966 100644 --- a/index.html +++ b/index.html @@ -388,7 +388,7 @@
  • -
    +
    @@ -477,7 +477,7 @@
    - +

    Last transactions

    diff --git a/js/controllers/transactions.js b/js/controllers/transactions.js index 52cd13b57..b97659d89 100644 --- a/js/controllers/transactions.js +++ b/js/controllers/transactions.js @@ -13,7 +13,12 @@ angular.module('copay.transactions').controller('TransactionsController', $scope.update = function () { $scope.loading = false; - controllerUtils.updateTxs({onlyPending:$scope.onlyPending}); + var from = ($scope.txpCurrentPage-1) * $scope.txpItemsPerPage; + var opts = { + onlyPending: $scope.onlyPending, + skip: !$scope.onlyPending ? [from, from + $scope.txpItemsPerPage] : null + }; + controllerUtils.updateTxs(opts); $rootScope.$digest(); }; diff --git a/js/filters.js b/js/filters.js index 827df6404..5c685f61c 100644 --- a/js/filters.js +++ b/js/filters.js @@ -21,11 +21,7 @@ angular.module('copay.filters', []) }; }) .filter('paged', function() { - return function(elements, page, pageSize, disable) { - if (disable) return elements; - - var from = (page - 1) * pageSize; - var to = from + pageSize; - return elements.slice(from, to);; + return function(elements) { + return elements.filter(Boolean); }; }); diff --git a/js/services/controllerUtils.js b/js/services/controllerUtils.js index d0298f0d7..f9a1bbc67 100644 --- a/js/services/controllerUtils.js +++ b/js/services/controllerUtils.js @@ -132,11 +132,15 @@ angular.module('copay.controllerUtils') console.log('## updating tx proposals', opts); //TODO var myCopayerId = w.getMyCopayerId(); var pendingForUs = 0; - var inT = w.getTxProposals(); + var inT = w.getTxProposals().sort(function(t1, t2) { return t1.createdTs < t2.createdTs }); var txs = []; console.log('[START LOOP]'); //TODO - inT.forEach(function(i){ + inT.forEach(function(i, index){ + if (opts.skip && (index < opts.skip[0] || index >= opts.skip[1])) { + return txs.push(null); + } + if (myCopayerId != i.creator && !i.finallyRejected && !i.sentTs && !i.rejectedByUs && !i.signedByUs) { pendingForUs++; }