From c12f33b1d94e9a56f735a1d6c83709c67b934de2 Mon Sep 17 00:00:00 2001 From: Javier Date: Wed, 21 Sep 2016 16:04:25 -0300 Subject: [PATCH] open a rejected txp --- src/js/controllers/tab-home.js | 22 +++++++++++++++++----- src/js/services/txpModalService.js | 7 ++++--- src/js/services/walletService.js | 7 +++++++ 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index 95c0908f3..a9718c5ba 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -2,6 +2,7 @@ angular.module('copayApp.controllers').controller('tabHomeController', function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, gettextCatalog, lodash, popupService, ongoingProcess, profileService, walletService, configService, $log, platformInfo, storageService, txpModalService, $window) { + var wallet; $scope.externalServices = {}; $scope.bitpayCardEnabled = true; // TODO $scope.openTxpModal = txpModalService.open; @@ -17,22 +18,33 @@ angular.module('copayApp.controllers').controller('tabHomeController', }); $scope.openNotificationModal = function(n) { + wallet = profileService.getWallet(n.walletId); + if (n.txid) { openTxModal(n); } else { var txp = lodash.find($scope.txps, { id: n.txpId }); - if (txp) txpModalService.open(txp); - else { - $log.warn('No txp found'); - return popupService.showAlert(null, gettextCatalog.getString('Transaction not found')); + if (txp) { + txpModalService.open(txp); + } else { + ongoingProcess.set('loadingTxInfo', true); + walletService.getTxp(wallet, n.txpId, function(err, txp) { + var _txp = txp; + ongoingProcess.set('loadingTxInfo', false); + if (err) { + $log.warn('No txp found'); + return popupService.showAlert(null, gettextCatalog.getString('Transaction not found')); + } + txpModalService.open(_txp); + }); } } }; var openTxModal = function(n) { - var wallet = profileService.getWallet(n.walletId); + wallet = profileService.getWallet(n.walletId); ongoingProcess.set('loadingTxInfo', true); walletService.getTx(wallet, n.txid, function(err, tx) { diff --git a/src/js/services/txpModalService.js b/src/js/services/txpModalService.js index b14f5c4fd..bc7d244d4 100644 --- a/src/js/services/txpModalService.js +++ b/src/js/services/txpModalService.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.services').factory('txpModalService', function(configService, $rootScope, $ionicModal) { +angular.module('copayApp.services').factory('txpModalService', function(configService, profileService, $rootScope, $ionicModal) { var root = {}; @@ -11,11 +11,12 @@ angular.module('copayApp.services').factory('txpModalService', function(configSe root.open = function(tx) { + var wallet = tx.wallet ? tx.wallet : profileService.getWallet(tx.walletId); var config = configService.getSync().wallet; var scope = $rootScope.$new(true); scope.tx = tx; - scope.wallet = tx.wallet; - scope.copayers = tx.wallet ? tx.wallet.copayers : null; + scope.wallet = wallet; + scope.copayers = wallet ? wallet.copayers : null; scope.isGlidera = glideraActive; scope.currentSpendUnconfirmed = config.spendUnconfirmed; // scope.tx.hasMultiplesOutputs = true; // Uncomment to test multiple outputs diff --git a/src/js/services/walletService.js b/src/js/services/walletService.js index abeff92ee..c6ec8bac5 100644 --- a/src/js/services/walletService.js +++ b/src/js/services/walletService.js @@ -502,6 +502,13 @@ angular.module('copayApp.services').factory('walletService', function($log, $tim }); }; + root.getTxp = function(wallet, txpid, cb) { + wallet.getTx(txpid, function(err, txp) { + if (err) return cb(err); + return cb(null, txp); + }); + }; + root.getTx = function(wallet, txid, cb) { var tx;