From e80eb142e3148d14c9d928e6a41b800081797e13 Mon Sep 17 00:00:00 2001 From: Javier Date: Wed, 30 Mar 2016 12:52:19 -0300 Subject: [PATCH 1/4] stop counter when cancel is pressed --- public/views/walletHome.html | 2 +- src/js/controllers/walletHome.js | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/public/views/walletHome.html b/public/views/walletHome.html index b589ea1ee..1ae3f96db 100644 --- a/public/views/walletHome.html +++ b/public/views/walletHome.html @@ -504,7 +504,7 @@ Cancel
- diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 478efdc1f..960e74b86 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -23,6 +23,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi ret.addresses = []; ret.isMobile = isMobile.any(); ret.isWindowsPhoneApp = isMobile.Windows() && isCordova; + ret.countDown = null; var vanillaScope = ret; var disableScannerListener = $rootScope.$on('dataScanned', function(event, data) { @@ -304,6 +305,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi // only determined by the tx.message this.openTxpModal = function(tx, copayers, isGlidera) { $rootScope.modalOpened = true; + var self = this; var fc = profileService.focusedClient; var currentSpendUnconfirmed = configWallet.spendUnconfirmed; var ModalInstanceCtrl = function($scope, $modalInstance) { @@ -346,16 +348,16 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi function paymentTimeControl(expirationTime) { $scope.paymentExpired = false; - var countDown; setExpirationTime(); - countDown = $interval(function() { + + self.countDown = $interval(function() { setExpirationTime(); }, 1000); function setExpirationTime() { if (moment().isAfter(expirationTime * 1000)) { $scope.paymentExpired = true; - if (countDown) $interval.cancel(countDown); + if (self.countDown) $interval.cancel(self.countDown); } $scope.expires = moment(expirationTime * 1000).fromNow(); }; @@ -994,6 +996,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi this.resetForm = function() { this.resetError(); + if (this.countDown) $interval.cancel(this.countDown); this._paypro = null; this.lockedCurrentFeePerKb = null; @@ -1114,25 +1117,26 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi function _paymentTimeControl(expirationTime) { self.paymentExpired = false; - var countDown; setExpirationTime(); - countDown = $interval(function() { + + self.countDown = $interval(function() { setExpirationTime(); }, 1000); function setExpirationTime() { if (moment().isAfter(expirationTime * 1000)) { - setExpiredPaymentValues(); - if (countDown) $interval.cancel(countDown); + setExpiredValues(); + return; } self.remainingTimeStr = moment(expirationTime * 1000).fromNow(); }; - function setExpiredPaymentValues() { + function setExpiredValues() { self.paymentExpired = true; self.remainingTimeStr = null; self._paypro = null; self.error = gettext('Cannot sign: The payment request has expired'); + if (self.countDown) $interval.cancel(self.countDown); }; }; From 065ae8925ae82adba78ade9581356ed7b7aa0640 Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 31 Mar 2016 12:50:35 -0300 Subject: [PATCH 2/4] fix offset time --- src/js/controllers/walletHome.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 960e74b86..5662133e7 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -1124,11 +1124,16 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi }, 1000); function setExpirationTime() { - if (moment().isAfter(expirationTime * 1000)) { + var now = Math.floor(Date.now() / 1000); + if (now > expirationTime) { setExpiredValues(); return; } - self.remainingTimeStr = moment(expirationTime * 1000).fromNow(); + + var totalSecs = expirationTime - now; + var m = Math.floor(totalSecs / 60); + var s = totalSecs % 60; + self.remainingTimeStr = m + ":" + s; }; function setExpiredValues() { From 5ddecd0e664500d7347166313c02fb580a0a3ea8 Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 31 Mar 2016 14:11:00 -0300 Subject: [PATCH 3/4] format numbers < 10 --- src/js/controllers/walletHome.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 5662133e7..ea5a36559 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -1133,7 +1133,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi var totalSecs = expirationTime - now; var m = Math.floor(totalSecs / 60); var s = totalSecs % 60; - self.remainingTimeStr = m + ":" + s; + self.remainingTimeStr = ('0' + m).slice(-2) + ":" + ('0' + s).slice(-2); }; function setExpiredValues() { From 6f464b80094457fc437b42136c5e9fb658f38dc1 Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 1 Apr 2016 09:58:28 -0300 Subject: [PATCH 4/4] apply timer in proposal details --- src/js/controllers/walletHome.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index ea5a36559..4ec000ee4 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -355,11 +355,16 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi }, 1000); function setExpirationTime() { - if (moment().isAfter(expirationTime * 1000)) { + var now = Math.floor(Date.now() / 1000); + if (now > expirationTime) { $scope.paymentExpired = true; if (self.countDown) $interval.cancel(self.countDown); + return; } - $scope.expires = moment(expirationTime * 1000).fromNow(); + var totalSecs = expirationTime - now; + var m = Math.floor(totalSecs / 60); + var s = totalSecs % 60; + $scope.expires = ('0' + m).slice(-2) + ":" + ('0' + s).slice(-2); }; };