Adds collect email view to the onboarding process

This commit is contained in:
Gustavo Maximiliano Cortez 2017-04-27 12:03:32 -03:00
parent 62ab65cd88
commit 1959f8fa8b
No known key found for this signature in database
GPG Key ID: 15EDAD8D9F2EB1AF
5 changed files with 50 additions and 28 deletions

View File

@ -1,27 +1,23 @@
'use strict'; 'use strict';
angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $timeout, $stateParams, $ionicConfig, profileService, configService, walletService) { angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $timeout, profileService, configService, walletService) {
$scope.$on("$ionicView.beforeLeave", function() { var wallet, walletId;
$ionicConfig.views.swipeBackEnabled(true);
});
$scope.$on("$ionicView.enter", function() {
$ionicConfig.views.swipeBackEnabled(false);
});
var wallet = profileService.getWallet($stateParams.walletId);
var walletId = wallet.credentials.walletId;
$scope.data = {}; $scope.data = {};
$scope.data.accept = false;
$scope.$on("$ionicView.beforeEnter", function(event, data) {
walletId = data.stateParams.walletId;
wallet = profileService.getWallet(walletId);
$scope.data.accept = true;
});
$scope.save = function() { $scope.save = function() {
var opts = { var opts = {
emailFor: {} emailFor: {}
}; };
opts.emailFor[walletId] = $scope.email; opts.emailFor[walletId] = $scope.data.email;
walletService.updateRemotePreferences(wallet, { walletService.updateRemotePreferences(wallet, {
email: $scope.email, email: $scope.data.email,
}, function(err) { }, function(err) {
if (err) $log.warn(err); if (err) $log.warn(err);
configService.set(opts, function(err) { configService.set(opts, function(err) {
@ -40,7 +36,6 @@ angular.module('copayApp.controllers').controller('collectEmailController', func
$scope.confirm = function(emailForm) { $scope.confirm = function(emailForm) {
if (emailForm.$invalid) return; if (emailForm.$invalid) return;
$scope.confirmation = true; $scope.confirmation = true;
$scope.email = emailForm.email.$modelValue;
}; };
$scope.cancel = function() { $scope.cancel = function() {

View File

@ -62,9 +62,16 @@ angular.module('copayApp.controllers').controller('tourController',
ongoingProcess.set('creatingWallet', false); ongoingProcess.set('creatingWallet', false);
var wallet = walletClient; var wallet = walletClient;
var walletId = wallet.credentials.walletId; var walletId = wallet.credentials.walletId;
$state.go('onboarding.collectEmail', {
walletId: walletId
});
/*
$state.go('onboarding.backupRequest', { $state.go('onboarding.backupRequest', {
walletId: walletId walletId: walletId
}); });
*/
}); });
}, 300); }, 300);
}; };

View File

@ -44,7 +44,7 @@ $relish-success: 1.3s;
color: $v-dark-gray; color: $v-dark-gray;
font-size: 1.2rem; font-size: 1.2rem;
font-weight: bold; font-weight: bold;
margin: 3rem 0 1rem; margin: 2rem 0 1rem;
} }
.prompt { .prompt {
margin: 1rem 1.5rem; margin: 1rem 1.5rem;
@ -62,7 +62,6 @@ $relish-success: 1.3s;
#collect-email { #collect-email {
opacity: 1; opacity: 1;
background: #fff; background: #fff;
height: 25rem;
animation-name: topBottom; animation-name: topBottom;
animation-iteration-count: 1; animation-iteration-count: 1;
animation-timing-function: ease-in; animation-timing-function: ease-in;
@ -80,7 +79,23 @@ $relish-success: 1.3s;
margin: 0 auto; margin: 0 auto;
} }
#collect-email-confirm {
p.confirm {
margin: 2rem 0;
color: $v-mid-gray;
}
p.user-email {
color: $v-dark-gray;
margin-bottom: 2rem;
}
.row, .col {
padding: 0;
}
.button {
padding: 0.5rem;
margin-bottom: 0;
}
}
#news-updates { #news-updates {
padding-top: 0; padding-top: 0;
@ -97,13 +112,13 @@ $relish-success: 1.3s;
border-width: 2px; border-width: 2px;
padding: 12px; padding: 12px;
position: relative; position: relative;
right: 5px; right: 2px;
bottom: 5px; bottom: 2px;
} }
.checkbox input:checked:after, .checkbox input:checked:after,
input:checked + .checkbox-icon:after { input:checked + .checkbox-icon:after {
border-color: $v-onboarding-checkbox-on-border; border-color: $v-onboarding-checkbox-on-border;
top: 4px; top: 8px;
left: 6px; left: 6px;
} }
.item-content { .item-content {

View File

@ -6,21 +6,21 @@
</div> </div>
<div id="collect-email"> <div id="collect-email">
<div id="collect-email-inner" ng-if="!confirmation"> <div id="collect-email-inner" ng-if="!confirmation">
<div translate class="heading">Email Notifications</div> <div translate class="heading" translate>Notifications by email</div>
<div translate class="prompt">Where would you like to receive email notifications about payments?</div> <div translate class="prompt" translate>Where would you like to receive email notifications about payments?</div>
<form id="email-form" name="emailForm" ng-submit="confirm(emailForm)" novalidate> <form id="email-form" name="emailForm" ng-submit="confirm(emailForm)" novalidate>
<label class="item item-input" id="email-label"> <label class="item item-input" id="email-label">
<input type="email" name="email" ng-model="email" placeholder="email address" required></input> <input type="email" name="email" ng-model="data.email" placeholder="{{'Enter you email'|translate}}" required></input>
</label> </label>
<ion-checkbox ng-model="data.accept"><span translate>Get news and updates from BitPay</span></ion-checkbox> <ion-checkbox ng-model="data.accept"><span translate>Get news and updates from BitPay</span></ion-checkbox>
<button class="button button-standard button-primary" disabled> <button class="button button-standard button-primary" ng-disabled="emailForm.$invalid">
Continue &rarr; Continue &rarr;
</button> </button>
</form> </form>
</div> </div>
<div ng-if="confirmation"> <div id="collect-email-confirm" ng-if="confirmation">
<p translate class="confirm">Is this email address correct?</p> <p translate class="confirm">Is this email address correct?</p>
<p class="user-email">{{email}}</p> <p class="user-email">{{data.email}}</p>
<div class="row"> <div class="row">
<div class="col col-50"> <div class="col col-50">
<button class="button button-block button-stable" ng-click="cancel()"> <button class="button button-block button-stable" ng-click="cancel()">

View File

@ -6,6 +6,11 @@
<i class="icon ion-ios-arrow-thin-left"></i> <i class="icon ion-ios-arrow-thin-left"></i>
</button> </button>
</ion-nav-buttons> </ion-nav-buttons>
<ion-nav-buttons side="secondary">
<button class="button back-button button-clear" ng-show="data.index == 0" ng-click="createDefaultWallet()">
{{'Skip' | translate}}
</button>
</ion-nav-buttons>
</ion-nav-bar> </ion-nav-bar>
<ion-slides class="slides" options="options" slider="data.slider"> <ion-slides class="slides" options="options" slider="data.slider">
<ion-slide-page> <ion-slide-page>