go from create new shared to copayers

This commit is contained in:
Gabriel Bazán 2016-09-22 16:04:05 -03:00
commit b713d26173
6 changed files with 65 additions and 45 deletions

View file

@ -11,7 +11,6 @@
</button> </button>
</ion-nav-buttons> </ion-nav-buttons>
</ion-nav-bar> </ion-nav-bar>
</ion-nav-bar>
<ion-content> <ion-content>

View file

@ -3,9 +3,15 @@
<ion-nav-bar class="bar-royal"> <ion-nav-bar class="bar-royal">
<ion-nav-back-button> <ion-nav-back-button>
</ion-nav-back-button> </ion-nav-back-button>
<ion-nav-title>{{wallet.name}}</ion-nav-title>
<ion-nav-buttons side="secondary">
<button class="button back-button" ng-click="goHome()" ng-if="fromAddShared">
{{'Close' | translate}}
</button>
</ion-nav-buttons>
</ion-nav-bar> </ion-nav-bar>
<ion-content ng-controller="copayersController"> <ion-content>
<div ng-show="!wallet.notAuthorized"> <div ng-show="!wallet.notAuthorized">
<h1 class="text-center" translate>Share this invitation with your copayers</h1> <h1 class="text-center" translate>Share this invitation with your copayers</h1>

View file

@ -2,23 +2,43 @@
angular.module('copayApp.controllers').controller('copayersController', angular.module('copayApp.controllers').controller('copayersController',
function($scope, $log, $ionicNavBarDelegate, $timeout, $stateParams, $state, $rootScope, lodash, profileService, walletService, popupService, platformInfo, gettextCatalog, ongoingProcess) { 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); $scope.$on("$ionicView.enter", function(event, data) {
$ionicNavBarDelegate.title(wallet.name); init();
});
var secret; var init = function() {
try { $scope.fromAddShared = $stateParams.fromAddShared;
secret = wallet.status.wallet.secret; $scope.isCordova = platformInfo.isCordova;
} catch (e) {}; $scope.wallet = profileService.getWallet($stateParams.walletId);
updateWallet();
};
$scope.wallet = wallet; $rootScope.$on('bwsEvent', function() {
$scope.secret = secret; updateWallet();
$scope.copayers = wallet.status.wallet.copayers; });
$scope.isCordova = platformInfo.isCordova;
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() { $scope.showDeletePopup = function() {
popupService.showConfirm(gettextCatalog.getString('Confirm'), gettextCatalog.getString('Are you sure you want to delete this wallet?'), null, null, function(res) { 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() { function deleteWallet() {
ongoingProcess.set('deletingWallet', true); ongoingProcess.set('deletingWallet', true);
profileService.deleteWalletClient(wallet, function(err) { profileService.deleteWalletClient($scope.wallet, function(err) {
ongoingProcess.set('deletingWallet', false); ongoingProcess.set('deletingWallet', false);
if (err) { if (err) {
popupService.showAlert(gettextCatalog.getString('Error'), err.message || err); popupService.showAlert(gettextCatalog.getString('Error'), err.message || err);
} else { } else {
$state.go('tabs.home'); $scope.goHome();
} }
}); });
}; };
$scope.copySecret = function() { $scope.copySecret = function() {
if ($scope.isCordova) { 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')); window.plugins.toast.showShortCenter(gettextCatalog.getString('Copied to clipboard'));
} }
}; };
@ -48,28 +68,14 @@ angular.module('copayApp.controllers').controller('copayersController',
$scope.shareSecret = function() { $scope.shareSecret = function() {
if ($scope.isCordova) { 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', { 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); window.plugins.socialsharing.share(message, gettextCatalog.getString('Invitation to share a Copay Wallet'), null, null);
} }
}; };
$rootScope.$on('bwsEvent', function() { $scope.goHome = function() {
updateWallet(); $state.go('tabs.home');
});
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();
});
});
}; };
}); });

View file

@ -1,7 +1,7 @@
'use strict'; 'use strict';
angular.module('copayApp.controllers').controller('createController', 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 isChromeApp = platformInfo.isChromeApp;
var isCordova = platformInfo.isCordova; var isCordova = platformInfo.isCordova;
@ -175,7 +175,17 @@ angular.module('copayApp.controllers').controller('createController',
if ($scope.seedSource.id == 'set') { if ($scope.seedSource.id == 'set') {
profileService.setBackupFlag(client.credentials.walletId); 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); }, 100);
} }

View file

@ -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() { configService.whenAvailable(function() {
var config = configService.getSync(); var config = configService.getSync();
var isWindowsPhoneApp = platformInfo.isWP && platformInfo.isCordova; var isWindowsPhoneApp = platformInfo.isWP && platformInfo.isCordova;

View file

@ -396,7 +396,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
* *
*/ */
.state('tabs.preferences', { .state('tabs.preferences', {
url: '/preferences/:walletId', url: '/preferences/:walletId',
views: { views: {
'tab-settings@tabs': { 'tab-settings@tabs': {
@ -556,10 +556,11 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
*/ */
.state('tabs.copayers', { .state('tabs.copayers', {
url: '/copayers/:walletId', url: '/copayers/:walletId/:fromAddShared',
views: { views: {
'tab-home': { '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 { } else {
profileService.storeProfileIfDirty(); profileService.storeProfileIfDirty();
$log.debug('Profile loaded ... Starting UX.'); $log.debug('Profile loaded ... Starting UX.');
$state.go('tabs.home');
} }
}); });
}); });