From 1959f8fa8b7bdf2cf551fce1fb89bc82ee429ea6 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 27 Apr 2017 12:03:32 -0300 Subject: [PATCH 1/5] Adds collect email view to the onboarding process --- src/js/controllers/onboarding/collectEmail.js | 25 +++++++---------- src/js/controllers/onboarding/tour.js | 7 +++++ .../onboarding/onboard-collect-email.scss | 27 ++++++++++++++----- www/views/onboarding/collectEmail.html | 14 +++++----- www/views/onboarding/tour.html | 5 ++++ 5 files changed, 50 insertions(+), 28 deletions(-) diff --git a/src/js/controllers/onboarding/collectEmail.js b/src/js/controllers/onboarding/collectEmail.js index 6e3d230bd..f621669b0 100644 --- a/src/js/controllers/onboarding/collectEmail.js +++ b/src/js/controllers/onboarding/collectEmail.js @@ -1,27 +1,23 @@ '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() { - $ionicConfig.views.swipeBackEnabled(true); - }); - - $scope.$on("$ionicView.enter", function() { - $ionicConfig.views.swipeBackEnabled(false); - }); - - var wallet = profileService.getWallet($stateParams.walletId); - var walletId = wallet.credentials.walletId; + var wallet, walletId; $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() { var opts = { emailFor: {} }; - opts.emailFor[walletId] = $scope.email; + opts.emailFor[walletId] = $scope.data.email; walletService.updateRemotePreferences(wallet, { - email: $scope.email, + email: $scope.data.email, }, function(err) { if (err) $log.warn(err); configService.set(opts, function(err) { @@ -40,7 +36,6 @@ angular.module('copayApp.controllers').controller('collectEmailController', func $scope.confirm = function(emailForm) { if (emailForm.$invalid) return; $scope.confirmation = true; - $scope.email = emailForm.email.$modelValue; }; $scope.cancel = function() { diff --git a/src/js/controllers/onboarding/tour.js b/src/js/controllers/onboarding/tour.js index 0135e97fb..bcea8c405 100644 --- a/src/js/controllers/onboarding/tour.js +++ b/src/js/controllers/onboarding/tour.js @@ -62,9 +62,16 @@ angular.module('copayApp.controllers').controller('tourController', ongoingProcess.set('creatingWallet', false); var wallet = walletClient; var walletId = wallet.credentials.walletId; + + $state.go('onboarding.collectEmail', { + walletId: walletId + }); + + /* $state.go('onboarding.backupRequest', { walletId: walletId }); + */ }); }, 300); }; diff --git a/src/sass/views/onboarding/onboard-collect-email.scss b/src/sass/views/onboarding/onboard-collect-email.scss index 9e78dab20..d72dbc74b 100644 --- a/src/sass/views/onboarding/onboard-collect-email.scss +++ b/src/sass/views/onboarding/onboard-collect-email.scss @@ -44,7 +44,7 @@ $relish-success: 1.3s; color: $v-dark-gray; font-size: 1.2rem; font-weight: bold; - margin: 3rem 0 1rem; + margin: 2rem 0 1rem; } .prompt { margin: 1rem 1.5rem; @@ -62,7 +62,6 @@ $relish-success: 1.3s; #collect-email { opacity: 1; background: #fff; - height: 25rem; animation-name: topBottom; animation-iteration-count: 1; animation-timing-function: ease-in; @@ -80,7 +79,23 @@ $relish-success: 1.3s; 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 { padding-top: 0; @@ -97,13 +112,13 @@ $relish-success: 1.3s; border-width: 2px; padding: 12px; position: relative; - right: 5px; - bottom: 5px; + right: 2px; + bottom: 2px; } .checkbox input:checked:after, input:checked + .checkbox-icon:after { border-color: $v-onboarding-checkbox-on-border; - top: 4px; + top: 8px; left: 6px; } .item-content { diff --git a/www/views/onboarding/collectEmail.html b/www/views/onboarding/collectEmail.html index 13279fb39..827f36a7d 100644 --- a/www/views/onboarding/collectEmail.html +++ b/www/views/onboarding/collectEmail.html @@ -6,21 +6,21 @@
-
Email Notifications
-
Where would you like to receive email notifications about payments?
+
Notifications by email
+
Where would you like to receive email notifications about payments?
Get news and updates from BitPay -
-
-

Is this email address correct?

-

{{email}}

+
+

Is this email address correct?

+

{{data.email}}

+ + + From 893fda112f42bba3783cd9fa480b4e0e2b057474 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 27 Apr 2017 14:30:27 -0300 Subject: [PATCH 2/5] Fix text --- www/views/onboarding/collectEmail.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/views/onboarding/collectEmail.html b/www/views/onboarding/collectEmail.html index 827f36a7d..d67268594 100644 --- a/www/views/onboarding/collectEmail.html +++ b/www/views/onboarding/collectEmail.html @@ -24,12 +24,12 @@
From ffb19e00b95d05624c115fbd3f6871cdd225c26e Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 27 Apr 2017 15:42:23 -0300 Subject: [PATCH 3/5] Collect email with google sheets --- src/js/controllers/onboarding/collectEmail.js | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/js/controllers/onboarding/collectEmail.js b/src/js/controllers/onboarding/collectEmail.js index f621669b0..ab80d215d 100644 --- a/src/js/controllers/onboarding/collectEmail.js +++ b/src/js/controllers/onboarding/collectEmail.js @@ -1,9 +1,22 @@ 'use strict'; -angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $timeout, profileService, configService, walletService) { +angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $log, $timeout, $http, $httpParamSerializer, profileService, configService, walletService, appConfigService) { var wallet, walletId; $scope.data = {}; + // Get more info: https://mashe.hawksey.info/2014/07/google-sheets-as-a-database-insert-with-apps-script-using-postget-methods-with-ajax-example/ + var URL = "https://script.google.com/macros/s/AKfycbwQXvUw6-Ix0cRLMi7hBB8dlgNTCTgwfNIQRds6RypPV7dO8evW/exec"; + + var _post = function(dataSrc) { + return { + method: 'POST', + url: URL, + headers: { + 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8' + }, + data: $httpParamSerializer(dataSrc) + }; + }; $scope.$on("$ionicView.beforeEnter", function(event, data) { walletId = data.stateParams.walletId; @@ -11,6 +24,21 @@ angular.module('copayApp.controllers').controller('collectEmailController', func $scope.data.accept = true; }); + var collectEmail = function() { + var dataSrc = { + "App": appConfigService.nameCase, + "Email": $scope.data.email, + "Platform": ionic.Platform.platform(), + "DeviceVersion": ionic.Platform.version() + }; + + $http(_post(dataSrc)).then(function() { + $log.info("SUCCESS: Email collected"); + }, function(err) { + $log.error("ERROR: Could not collect email"); + }); + }; + $scope.save = function() { var opts = { emailFor: {} @@ -22,6 +50,7 @@ angular.module('copayApp.controllers').controller('collectEmailController', func if (err) $log.warn(err); configService.set(opts, function(err) { if (err) $log.warn(err); + if ($scope.data.accept) collectEmail(); $scope.goNextView(); }); }); From b44b7eacad46309b3c3728b805cd68c78613528e Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 1 May 2017 10:02:30 -0300 Subject: [PATCH 4/5] Fix back button for Android. Adds timeout and stop if error --- src/js/controllers/onboarding/collectEmail.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/js/controllers/onboarding/collectEmail.js b/src/js/controllers/onboarding/collectEmail.js index ab80d215d..a700c3662 100644 --- a/src/js/controllers/onboarding/collectEmail.js +++ b/src/js/controllers/onboarding/collectEmail.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $log, $timeout, $http, $httpParamSerializer, profileService, configService, walletService, appConfigService) { +angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $log, $timeout, $http, $httpParamSerializer, $ionicConfig, profileService, configService, walletService, appConfigService) { var wallet, walletId; $scope.data = {}; @@ -18,6 +18,14 @@ angular.module('copayApp.controllers').controller('collectEmailController', func }; }; + $scope.$on("$ionicView.beforeLeave", function() { + $ionicConfig.views.swipeBackEnabled(true); + }); + + $scope.$on("$ionicView.enter", function() { + $ionicConfig.views.swipeBackEnabled(false); + }); + $scope.$on("$ionicView.beforeEnter", function(event, data) { walletId = data.stateParams.walletId; wallet = profileService.getWallet(walletId); @@ -47,11 +55,13 @@ angular.module('copayApp.controllers').controller('collectEmailController', func walletService.updateRemotePreferences(wallet, { email: $scope.data.email, }, function(err) { - if (err) $log.warn(err); + if (err) return; configService.set(opts, function(err) { if (err) $log.warn(err); if ($scope.data.accept) collectEmail(); - $scope.goNextView(); + $timeout(function() { + $scope.goNextView(); + }, 200); }); }); }; From 81b147ae4862be25c31718e3e0f430765b7b29e4 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 1 May 2017 23:08:55 -0300 Subject: [PATCH 5/5] Fix scroll for ios --- www/views/onboarding/collectEmail.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/onboarding/collectEmail.html b/www/views/onboarding/collectEmail.html index d67268594..847ff0158 100644 --- a/www/views/onboarding/collectEmail.html +++ b/www/views/onboarding/collectEmail.html @@ -1,5 +1,5 @@ - +
Wallet Created