Share this invitation with your copayers
diff --git a/src/js/controllers/copayers.js b/src/js/controllers/copayers.js
index 1af29ffba..73ad8c702 100644
--- a/src/js/controllers/copayers.js
+++ b/src/js/controllers/copayers.js
@@ -2,23 +2,43 @@
angular.module('copayApp.controllers').controller('copayersController',
function($scope, $log, $ionicNavBarDelegate, $timeout, $stateParams, $state, $rootScope, lodash, profileService, walletService, popupService, platformInfo, gettextCatalog, ongoingProcess) {
- if (!$stateParams.walletId) {
- $log.debug('No wallet provided...back to home');
- return $state.go('tabs.home');
- }
- var wallet = profileService.getWallet($stateParams.walletId);
- $ionicNavBarDelegate.title(wallet.name);
+ $scope.$on("$ionicView.enter", function(event, data) {
+ init();
+ });
- var secret;
- try {
- secret = wallet.status.wallet.secret;
- } catch (e) {};
+ var init = function() {
+ $scope.fromAddShared = $stateParams.fromAddShared;
+ $scope.isCordova = platformInfo.isCordova;
+ $scope.wallet = profileService.getWallet($stateParams.walletId);
+ updateWallet();
+ };
- $scope.wallet = wallet;
- $scope.secret = secret;
- $scope.copayers = wallet.status.wallet.copayers;
- $scope.isCordova = platformInfo.isCordova;
+ $rootScope.$on('bwsEvent', function() {
+ updateWallet();
+ });
+
+ var updateWallet = function() {
+ $log.debug('Updating wallet:' + $scope.wallet.name)
+ walletService.getStatus($scope.wallet, {}, function(err, status) {
+ if (err) {
+ $log.error(err); //TODO
+ return;
+ }
+ $scope.wallet.status = status;
+ $scope.copayers = $scope.wallet.status.wallet.copayers;
+ $scope.secret = $scope.wallet.status.wallet.secret;
+ $timeout(function() {
+ $scope.$apply();
+ });
+ if (status.wallet.status == 'complete') {
+ $scope.wallet.openWallet(function(err, status) {
+ if (err) $log.error(err);
+ $scope.goHome();
+ });
+ }
+ });
+ };
$scope.showDeletePopup = function() {
popupService.showConfirm(gettextCatalog.getString('Confirm'), gettextCatalog.getString('Are you sure you want to delete this wallet?'), null, null, function(res) {
@@ -28,19 +48,19 @@ angular.module('copayApp.controllers').controller('copayersController',
function deleteWallet() {
ongoingProcess.set('deletingWallet', true);
- profileService.deleteWalletClient(wallet, function(err) {
+ profileService.deleteWalletClient($scope.wallet, function(err) {
ongoingProcess.set('deletingWallet', false);
if (err) {
popupService.showAlert(gettextCatalog.getString('Error'), err.message || err);
} else {
- $state.go('tabs.home');
+ $scope.goHome();
}
});
};
$scope.copySecret = function() {
if ($scope.isCordova) {
- window.cordova.plugins.clipboard.copy(secret);
+ window.cordova.plugins.clipboard.copy($scope.secret);
window.plugins.toast.showShortCenter(gettextCatalog.getString('Copied to clipboard'));
}
};
@@ -48,28 +68,14 @@ angular.module('copayApp.controllers').controller('copayersController',
$scope.shareSecret = function() {
if ($scope.isCordova) {
var message = gettextCatalog.getString('Join my Copay wallet. Here is the invitation code: {{secret}} You can download Copay for your phone or desktop at https://copay.io', {
- secret: secret
+ secret: $scope.secret
});
window.plugins.socialsharing.share(message, gettextCatalog.getString('Invitation to share a Copay Wallet'), null, null);
}
};
- $rootScope.$on('bwsEvent', function() {
- updateWallet();
- });
-
- var updateWallet = function() {
- $log.debug('Updating wallet:' + wallet.name)
- walletService.getStatus(wallet, {}, function(err, status) {
- if (err) {
- $log.error(err); //TODO
- return;
- }
- wallet.status = status;
- $scope.copayers = wallet.status.wallet.copayers;
- $timeout(function() {
- $scope.$apply();
- });
- });
+ $scope.goHome = function() {
+ $state.go('tabs.home');
};
+
});
diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js
index d2bfe37a8..ecfe160d0 100644
--- a/src/js/controllers/create.js
+++ b/src/js/controllers/create.js
@@ -1,7 +1,7 @@
'use strict';
angular.module('copayApp.controllers').controller('createController',
- function($scope, $rootScope, $timeout, $log, lodash, $state, $ionicScrollDelegate, profileService, configService, gettext, gettextCatalog, ledger, trezor, platformInfo, derivationPathHelper, ongoingProcess, walletService, storageService, popupService) {
+ function($scope, $rootScope, $timeout, $log, lodash, $state, $ionicScrollDelegate, $ionicHistory, profileService, configService, gettext, gettextCatalog, ledger, trezor, platformInfo, derivationPathHelper, ongoingProcess, walletService, storageService, popupService) {
var isChromeApp = platformInfo.isChromeApp;
var isCordova = platformInfo.isCordova;
@@ -175,7 +175,17 @@ angular.module('copayApp.controllers').controller('createController',
if ($scope.seedSource.id == 'set') {
profileService.setBackupFlag(client.credentials.walletId);
}
- $state.go('tabs.home')
+
+ if (!client.isComplete()) {
+ $ionicHistory.nextViewOptions({
+ disableBack: true
+ });
+ $state.go('tabs.copayers', {
+ walletId: client.credentials.walletId,
+ fromAddShared: true
+ });
+ }
+ else $state.go('tabs.home')
});
}, 100);
}
diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js
index f3f843389..e87b8f089 100644
--- a/src/js/controllers/tab-home.js
+++ b/src/js/controllers/tab-home.js
@@ -198,7 +198,7 @@ angular.module('copayApp.controllers').controller('tabHomeController',
});
});
- $scope.$on("$ionicView.enter", function(event, data){
+ $scope.$on("$ionicView.enter", function(event, data) {
configService.whenAvailable(function() {
var config = configService.getSync();
var isWindowsPhoneApp = platformInfo.isWP && platformInfo.isCordova;
diff --git a/src/js/routes.js b/src/js/routes.js
index ede45ee32..4973836aa 100644
--- a/src/js/routes.js
+++ b/src/js/routes.js
@@ -396,7 +396,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
*
*/
- .state('tabs.preferences', {
+ .state('tabs.preferences', {
url: '/preferences/:walletId',
views: {
'tab-settings@tabs': {
@@ -556,10 +556,11 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
*/
.state('tabs.copayers', {
- url: '/copayers/:walletId',
+ url: '/copayers/:walletId/:fromAddShared',
views: {
'tab-home': {
- templateUrl: 'views/copayers.html'
+ templateUrl: 'views/copayers.html',
+ controller: 'copayersController'
}
}
})
@@ -918,8 +919,6 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
} else {
profileService.storeProfileIfDirty();
$log.debug('Profile loaded ... Starting UX.');
-
- $state.go('tabs.home');
}
});
});