From b713d26173d79b23f145c8fd83d8c8270c836029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Thu, 22 Sep 2016 16:04:05 -0300 Subject: [PATCH] go from create new shared to copayers --- public/views/addressbook.add.html | 1 - public/views/copayers.html | 8 +++- src/js/controllers/copayers.js | 76 +++++++++++++++++-------------- src/js/controllers/create.js | 14 +++++- src/js/controllers/tab-home.js | 2 +- src/js/routes.js | 9 ++-- 6 files changed, 65 insertions(+), 45 deletions(-) diff --git a/public/views/addressbook.add.html b/public/views/addressbook.add.html index dec411653..f7f575305 100644 --- a/public/views/addressbook.add.html +++ b/public/views/addressbook.add.html @@ -11,7 +11,6 @@ - diff --git a/public/views/copayers.html b/public/views/copayers.html index 122be4007..764fae314 100644 --- a/public/views/copayers.html +++ b/public/views/copayers.html @@ -3,9 +3,15 @@ + {{wallet.name}} + + + - +

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'); } }); });