diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js
index 2d05b9263..d7cb4e852 100644
--- a/src/js/controllers/tab-home.js
+++ b/src/js/controllers/tab-home.js
@@ -3,6 +3,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, bitpayCardService) {
var wallet;
+ var listeners = [];
$scope.externalServices = {};
$scope.bitpayCardEnabled = true; // TODO
$scope.openTxpModal = txpModalService.open;
@@ -81,7 +82,7 @@ angular.module('copayApp.controllers').controller('tabHomeController',
});
};
- function updateTxps() {
+ var updateTxps = function() {
profileService.getTxps({
limit: 3
}, function(err, txps, n) {
@@ -90,12 +91,11 @@ angular.module('copayApp.controllers').controller('tabHomeController',
$scope.txpsN = n;
$timeout(function() {
$ionicScrollDelegate.resize();
- $scope.$apply();
- }, 10);
+ }, 100);
})
};
- $scope.updateAllWallets = function() {
+ var updateAllWallets = function() {
$scope.wallets = profileService.getWallets();
if (lodash.isEmpty($scope.wallets)) return;
@@ -123,7 +123,7 @@ angular.module('copayApp.controllers').controller('tabHomeController',
limit: 3
}, function(err, n) {
if (err) {
- console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO
+ $log.error(err);
return;
}
$scope.fetchingNotifications = false;
@@ -132,16 +132,16 @@ angular.module('copayApp.controllers').controller('tabHomeController',
$timeout(function() {
$ionicScrollDelegate.resize();
$scope.$apply();
- }, 10);
+ }, 100);
})
};
- $scope.updateWallet = function(wallet) {
+ var updateWallet = function(wallet) {
$log.debug('Updating wallet:' + wallet.name)
walletService.getStatus(wallet, {}, function(err, status) {
if (err) {
- $log.error(err); //TODO
+ $log.error(err);
return;
}
wallet.status = status;
@@ -155,11 +155,11 @@ angular.module('copayApp.controllers').controller('tabHomeController',
}, function(err, notifications) {
$scope.fetchingNotifications = false;
if (err) {
- console.log('[tab-home.js.35:err:]', $log.error(err)); //TODO
+ $log.error(err);
return;
}
$scope.notifications = notifications;
- })
+ });
});
};
@@ -172,7 +172,7 @@ angular.module('copayApp.controllers').controller('tabHomeController',
});
};
- $scope.nextStep = function() {
+ var nextStep = function() {
lodash.each(['AmazonGiftCards', 'BitpayCard', 'BuyAndSell'], function(service) {
storageService.getNextStep(service, function(err, value) {
$scope.externalServices[service] = value ? true : false;
@@ -190,24 +190,6 @@ angular.module('copayApp.controllers').controller('tabHomeController',
}, 10);
};
- var listeners = [
- $rootScope.$on('bwsEvent', function(e, walletId, type, n) {
- var wallet = profileService.getWallet(walletId);
- $scope.updateWallet(wallet);
- }),
- $rootScope.$on('Local/TxAction', function(e, walletId) {
- $log.debug('Got action for wallet ' + walletId);
- var wallet = profileService.getWallet(walletId);
- $scope.updateWallet(wallet);
- }),
- ];
-
- $scope.$on('$destroy', function() {
- lodash.each(listeners, function(x) {
- x();
- });
- });
-
var bitpayCardCache = function() {
bitpayCardService.getCacheData(function(err, data) {
if (err || lodash.isEmpty(data)) return;
@@ -217,6 +199,21 @@ angular.module('copayApp.controllers').controller('tabHomeController',
$scope.$on("$ionicView.enter", function(event, data) {
$scope.bitpayCard = null;
+ nextStep();
+ updateAllWallets();
+
+ listeners = [
+ $rootScope.$on('bwsEvent', function(e, walletId, type, n) {
+ var wallet = profileService.getWallet(walletId);
+ updateWallet(wallet);
+ }),
+ $rootScope.$on('Local/TxAction', function(e, walletId) {
+ $log.debug('Got action for wallet ' + walletId);
+ var wallet = profileService.getWallet(walletId);
+ updateWallet(wallet);
+ })
+ ];
+
configService.whenAvailable(function() {
var config = configService.getSync();
var isWindowsPhoneApp = platformInfo.isWP && platformInfo.isCordova;
@@ -230,7 +227,12 @@ angular.module('copayApp.controllers').controller('tabHomeController',
if ($scope.bitpayCardEnabled) bitpayCardCache();
});
- $scope.nextStep();
- $scope.updateAllWallets();
});
+
+ $scope.$on("$ionicView.leave", function(event, data) {
+ lodash.each(listeners, function(x) {
+ x();
+ });
+ });
+
});
diff --git a/src/js/controllers/walletDetails.js b/src/js/controllers/walletDetails.js
index dbb357ca4..d5726117e 100644
--- a/src/js/controllers/walletDetails.js
+++ b/src/js/controllers/walletDetails.js
@@ -1,15 +1,13 @@
'use strict';
angular.module('copayApp.controllers').controller('walletDetailsController', function($scope, $rootScope, $interval, $timeout, $filter, $log, $ionicModal, $ionicPopover, $state, $stateParams, profileService, lodash, configService, gettextCatalog, platformInfo, walletService, txpModalService, externalLinkService, popupService) {
- var isCordova = platformInfo.isCordova;
- var isWP = platformInfo.isWP;
- var isAndroid = platformInfo.isAndroid;
- var isChromeApp = platformInfo.isChromeApp;
var HISTORY_SHOW_LIMIT = 10;
- var currentTxHistoryPage;
- var wallet;
+ var currentTxHistoryPage = 0;
+ var listeners = [];
$scope.txps = [];
+ $scope.completeTxHistory = [];
+ $scope.openTxpModal = txpModalService.open;
$scope.openExternalLink = function(url, target) {
externalLinkService.open(url, target);
@@ -24,7 +22,7 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
// fee: 1000,
// createdOn: new Date() / 1000,
// outputs: [],
- // wallet: wallet
+ // wallet: $scope.wallet
// };
//
// function addOutput(n) {
@@ -44,13 +42,12 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
$scope.txps = lodash.sortBy(txps, 'createdOn').reverse();
};
-
- $scope.updateStatus = function(force) {
+ var updateStatus = function(force) {
$scope.updatingStatus = true;
$scope.updateStatusError = false;
$scope.walletNotRegistered = false;
- walletService.getStatus(wallet, {
+ walletService.getStatus($scope.wallet, {
force: !!force,
}, function(err, status) {
$scope.updatingStatus = false;
@@ -74,29 +71,8 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
});
};
-
- $scope.openTxpModal = txpModalService.open;
-
- var listeners = [
- $rootScope.$on('bwsEvent', function(e, walletId) {
- if (walletId == wallet.id)
- $scope.updateStatus();
- }),
- $rootScope.$on('Local/TxAction', function(e, walletId) {
- if (walletId == wallet.id)
- $scope.updateStatus();
- }),
- ];
-
- $scope.$on('$destroy', function() {
- lodash.each(listeners, function(x) {
- x();
- });
- });
-
-
$scope.openSearchModal = function() {
- $scope.color = wallet.color;
+ $scope.color = $scope.wallet.color;
$ionicModal.fromTemplateUrl('views/modals/search.html', {
scope: $scope,
@@ -113,7 +89,7 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
$scope.openTxModal = function(btx) {
$scope.btx = lodash.cloneDeep(btx);
- $scope.walletId = wallet.id;
+ $scope.walletId = $scope.wallet.id;
$ionicModal.fromTemplateUrl('views/modals/tx-details.html', {
scope: $scope
}).then(function(modal) {
@@ -123,24 +99,24 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
};
$scope.recreate = function() {
- walletService.recreate(wallet, function(err) {
+ walletService.recreate($scope.wallet, function(err) {
$scope.init();
if (err) return;
$timeout(function() {
- walletService.startScan(wallet, function() {
+ walletService.startScan($scope.wallet, function() {
$scope.$apply();
});
});
});
};
- $scope.updateTxHistory = function(cb) {
+ var updateTxHistory = function(cb) {
if (!cb) cb = function() {};
if ($scope.updatingTxHistory) return;
$scope.updatingTxHistory = true;
$scope.updateTxHistoryError = false;
- $scope.updatingTxHistoryProgress = null;
+ $scope.updatingTxHistoryProgress = 0;
var progressFn = function(txs) {
$scope.updatingTxHistoryProgress = txs ? txs.length : 0;
@@ -148,11 +124,11 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
$scope.showHistory();
$timeout(function() {
$scope.$apply();
- }, 1);
+ });
};
$timeout(function() {
- walletService.getTxHistory(wallet, {
+ walletService.getTxHistory($scope.wallet, {
progressFn: progressFn,
}, function(err, txHistory) {
$scope.updatingTxHistory = false;
@@ -162,12 +138,10 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
return;
}
$scope.completeTxHistory = txHistory;
-
$scope.showHistory();
-
$timeout(function() {
$scope.$apply();
- }, 1);
+ });
return cb();
});
});
@@ -186,51 +160,39 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
$scope.$broadcast('scroll.infiniteScrollComplete');
};
- $scope.updateAll = function(cb) {
- $scope.updateStatus(false);
- $scope.updateTxHistory(cb);
+ $scope.updateAll = function(force, cb) {
+ updateStatus(force);
+ updateTxHistory(cb);
};
$scope.hideToggle = function() {
- profileService.toggleHideBalanceFlag(wallet.credentials.walletId, function(err) {
+ profileService.toggleHideBalanceFlag($scope.wallet.credentials.walletId, function(err) {
if (err) $log.error(err);
});
};
$scope.$on("$ionicView.beforeEnter", function(event, data){
- currentTxHistoryPage = 0;
- $scope.completeTxHistory = [];
- wallet = profileService.getWallet($stateParams.walletId);
+ $scope.wallet = profileService.getWallet(data.stateParams.walletId);
+ $scope.requiresMultipleSignatures = $scope.wallet.credentials.m > 1;
- /* Set color for header bar */
- $scope.walletDetailsColor = wallet.color;
- $scope.walletDetailsName = wallet.name;
- $scope.wallet = wallet;
+ $scope.updateAll();
- $scope.requiresMultipleSignatures = wallet.credentials.m > 1;
- $scope.newTx = false;
+ listeners = [
+ $rootScope.$on('bwsEvent', function(e, walletId) {
+ if (walletId == $scope.wallet.id)
+ updateStatus();
+ }),
+ $rootScope.$on('Local/TxAction', function(e, walletId) {
+ if (walletId == $scope.wallet.id)
+ updateStatus();
+ }),
+ ];
+ });
- $scope.updateAll(function() {
- if ($stateParams.txid) {
- var tx = lodash.find($scope.completeTxHistory, {
- txid: $stateParams.txid
- });
- if (tx) {
- $scope.openTxModal(tx);
- } else {
- popupService.showAlert(null, gettextCatalog.getString('TX not available'));
- }
- } else if ($stateParams.txpId) {
- var txp = lodash.find($scope.txps, {
- id: $stateParams.txpId
- });
- if (txp) {
- $scope.openTxpModal(txp);
- } else {
- popupService.showAlert(null, gettextCatalog.getString('Proposal not longer available'));
- }
- }
+ $scope.$on("$ionicView.leave", function(event, data) {
+ lodash.each(listeners, function(x) {
+ x();
});
});
});
diff --git a/src/js/routes.js b/src/js/routes.js
index b8301f47f..8e6d2c4fe 100644
--- a/src/js/routes.js
+++ b/src/js/routes.js
@@ -157,11 +157,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
controller: 'walletDetailsController',
templateUrl: 'views/walletDetails.html'
}
- },
- params: {
- txid: null,
- txpId: null,
- },
+ }
})
.state('tabs.activity', {
url: '/activity',
diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js
index ace8bbb11..506af8f12 100644
--- a/src/js/services/profileService.js
+++ b/src/js/services/profileService.js
@@ -927,9 +927,9 @@ angular.module('copayApp.services')
if (x.pendingTxps)
txps = txps.concat(x.pendingTxps);
});
- txps = lodash.sortBy(txps, 'pendingForUs', 'createdOn');
- txps = lodash.compact(lodash.flatten(txps)).slice(0, MAX);
var n = txps.length;
+ txps = lodash.sortBy(txps, 'pendingForUs', 'createdOn');
+ txps = lodash.compact(lodash.flatten(txps)).slice(0, opts.limit || MAX);
return cb(null, txps, n);
};
diff --git a/src/sass/views/walletDetails.scss b/src/sass/views/walletDetails.scss
index b34001952..5dd85fb2d 100644
--- a/src/sass/views/walletDetails.scss
+++ b/src/sass/views/walletDetails.scss
@@ -17,7 +17,7 @@
text-align: center;
padding: 2rem 1rem 1.5rem 1rem;
color: #fff;
- min-height: 115px;
+ height: 140px;
margin-bottom: 10px;
&-alternative {