diff --git a/public/views/tab-home.html b/public/views/tab-home.html index 5fbb422c2..322a2e0f3 100644 --- a/public/views/tab-home.html +++ b/public/views/tab-home.html @@ -5,46 +5,31 @@ - - Payment Proposals + + + Activity - - - - - {{addressbook[tx.toAddress]}} - - - {{tx.message}} - - - Sending - - - - {{tx.merchant.domain}} - {{tx.merchant.domain}} - - - - {{tx.amountStr}} + + + bla bla - {{tx.wallet.name}} · {{ (tx.ts || tx.createdOn ) * 1000 | amTimeAgo}} + blo blo · {{ (tx.ts || tx.createdOn ) * 1000 | amTimeAgo}} + + + + More (5) + + - - - - Total Locked Balance: - {{lockedBalanceStr}} - {{lockedBalanceAlternative}} {{alternativeIsoCode}} - + + Wallets diff --git a/public/views/walletDetails.html b/public/views/walletDetails.html index 64925eb31..ab6616670 100644 --- a/public/views/walletDetails.html +++ b/public/views/walletDetails.html @@ -119,6 +119,49 @@ + + + + Payment Proposals + + + + + + + {{addressbook[tx.toAddress]}} + + + {{tx.message}} + + + Sending + + + + {{tx.merchant.domain}} + {{tx.merchant.domain}} + + + - {{tx.amountStr}} + + + {{tx.wallet.name}} · {{ (tx.ts || tx.createdOn ) * 1000 | amTimeAgo}} + + + + + + + Total Locked Balance: + {{lockedBalanceStr}} + {{lockedBalanceAlternative}} {{alternativeIsoCode}} + + + + + Activity diff --git a/src/js/controllers/modals/txpDetails.js b/src/js/controllers/modals/txpDetails.js index a603a2d01..497a33e95 100644 --- a/src/js/controllers/modals/txpDetails.js +++ b/src/js/controllers/modals/txpDetails.js @@ -28,6 +28,8 @@ angular.module('copayApp.controllers').controller('txpDetailsController', functi $scope.error = msg || gettextCatalog.getString('Could not send payment'); } + + $scope.sign = function() { $scope.error = null; $scope.loading = true; diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index df2f3b83c..ada68435a 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -3,27 +3,14 @@ angular.module('copayApp.controllers').controller('tabHomeController', function($rootScope, $timeout, $scope, $state, lodash, profileService, walletService, configService, txFormatService, $ionicModal, $log, platformInfo) { var self = this; - $scope.txps = []; self.setWallets = function() { $scope.wallets = profileService.getWallets(); }; - - var setPendingTxps = function(txps) { - if (!txps) { - $scope.txps = []; - return; - } - $scope.txps = lodash.sortBy(txps, 'createdOn').reverse(); - -console.log('[tab-home.js.18]', $scope.txps); //TODO - }; - self.updateAllWallets = function() { $scope.wallets = profileService.getWallets(); - var txps = []; var i = $scope.wallets.length; lodash.each($scope.wallets, function(wallet) { walletService.getStatus(wallet, {}, function(err, status) { @@ -31,13 +18,6 @@ console.log('[tab-home.js.18]', $scope.txps); //TODO console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO return; } - - if (status.pendingTxps && status.pendingTxps[0]) { - txps = txps.concat(status.pendingTxps); - } - if (--i == 0) { - setPendingTxps(txps); - } wallet.status = status; }); }); @@ -51,16 +31,6 @@ console.log('[tab-home.js.18]', $scope.txps); //TODO console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO return; } - var txps = lodash.filter($scope.txps, function(x) { - return x.walletId != wallet.id; - }); - - var wasAny = txps.length != $scope.txps.length; - - if ( (status.pendingTxps && status.pendingTxps[0]) || wasAny ) { - txps = txps.concat(status.pendingTxps); - setPendingTxps(txps); - } wallet.status = status; $scope.$apply(); }); @@ -88,28 +58,6 @@ console.log('[tab-home.js.18]', $scope.txps); //TODO }); }); - var GLIDERA_LOCK_TIME = 6 * 60 * 60; - - var glideraActive = true; // TODO TODO TODO - // isGlidera flag is a security measure so glidera status is not - // only determined by the tx.message - $scope.openTxpModal = function(tx) { - var config = configService.getSync().wallet; - var scope = $rootScope.$new(true); - scope.tx = tx; - scope.wallet = tx.wallet; - scope.copayers = tx.wallet.copayers; - scope.isGlidera = glideraActive; - scope.currentSpendUnconfirmed = config.spendUnconfirmed; - - $ionicModal.fromTemplateUrl('views/modals/txp-details.html', { - scope: scope - }).then(function(modal) { - scope.txpDetailsModal = modal; - scope.txpDetailsModal.show(); - }); - }; - configService.whenAvailable(function() { var config = configService.getSync(); var glideraEnabled = config.glidera.enabled; diff --git a/src/js/controllers/walletDetails.js b/src/js/controllers/walletDetails.js index bc0700ca3..fb1c6769f 100644 --- a/src/js/controllers/walletDetails.js +++ b/src/js/controllers/walletDetails.js @@ -10,6 +10,79 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun var errorPopup; var HISTORY_SHOW_LIMIT = 10; + $scope.txps = []; + + + var setPendingTxps = function(txps) { + if (!txps) { + $scope.txps = []; + return; + } + $scope.txps = lodash.sortBy(txps, 'createdOn').reverse(); + }; + + + $scope.updateStatus = function(force) { + $scope.updatingStatus = true; + $scope.updateStatusError = false; + + walletService.getStatus(wallet, { + force: !!force, + }, function(err, status) { + $scope.updatingStatus = false; + if (err) { + $scope.status = null; + $scope.updateStatusError = true; + return; + } + + setPendingTxps(status.pendingTxps); + + $scope.status = status; + $scope.$apply(); + }); + }; + + + var glideraActive = true; // TODO TODO TODO + // isGlidera flag is a security measure so glidera status is not + // only determined by the tx.message + $scope.openTxpModal = function(tx) { + var config = configService.getSync().wallet; + var scope = $rootScope.$new(true); + scope.tx = tx; + scope.wallet = tx.wallet; + scope.copayers = tx.wallet.copayers; + scope.isGlidera = glideraActive; + scope.currentSpendUnconfirmed = config.spendUnconfirmed; + + $ionicModal.fromTemplateUrl('views/modals/txp-details.html', { + scope: scope + }).then(function(modal) { + scope.txpDetailsModal = modal; + scope.txpDetailsModal.show(); + }); + }; + + + var listeners = [ + $rootScope.$on('bwsEvent', function(e, walletId) { + if (walletId == wallet.id) + $scope.updateStatus(); + }), + $rootScope.$on('Local/TxAction', function(e, walletId) { + var wallet = profileService.getWallet(walletId); + if (walletId == wallet.id) + $scope.updateStatus(); + }), + ]; + + $scope.$on('$destroy', function() { + lodash.each(listeners, function(x){ + x(); + }); + }); + $scope.openSearchModal = function() { $scope.color = wallet.color; @@ -42,24 +115,6 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun walletService.recreate(); }; - $scope.updateStatus = function(force) { - $scope.updatingStatus = true; - $scope.updateStatusError = false; - $timeout(function() { - walletService.getStatus(wallet, { - force: !!force, - }, function(err, status) { - $scope.updatingStatus = false; - if (err) { - $scope.status = null; - $scope.updateStatusError = true; - return; - } - $scope.status = status; - }); - }) - }; - $scope.updateTxHistory = function() { if ($scope.updatingTxHistory) return;