new flow for NW.js

This commit is contained in:
Gabriel Bazán 2016-11-02 15:30:14 -03:00
commit 9668870a07
7 changed files with 152 additions and 33 deletions

View file

@ -10,7 +10,7 @@ angular.module('copayApp.controllers').controller('rateAppStoreController', func
$scope.skip = function() {
$state.go('feedback.thanks', {
score: $scope.score,
skip: true
skipped: true
});
};

View file

@ -28,14 +28,15 @@ angular.module('copayApp.controllers').controller('sendFeedbackController', func
$scope.sendFeedback = function() {
//Feedback entered in feedback flow should be sent to BWS, and BWS should send a plain-text email to feedback@bitpay.com with a reply-to going to the user's email address. (From the onboarding process)
$state.go('feedback.thanks', {
score: $stateParams.score
score: $stateParams.score,
skipped: false
});
};
$scope.skip = function() {
$state.go('feedback.thanks', {
score: $scope.score,
skip: true
skipped: true
});
};

View file

@ -1,12 +1,75 @@
'use strict';
angular.module('copayApp.controllers').controller('thanksController', function($scope, $stateParams, configService, storageService) {
angular.module('copayApp.controllers').controller('thanksController', function($scope, $stateParams, platformInfo, configService, storageService) {
$scope.score = parseInt($stateParams.score);
$scope.skip = $stateParams.skip && $scope.score == 5;
storageService.setRateCardFlag('true', function() {});
$scope.skipped = $stateParams.skipped == 'false' ? false : true;
$scope.isCordova = platformInfo.isCordova;
var config = configService.getSync();
$scope.shareFacebook = function() {
window.plugins.socialsharing.shareViaFacebook(config.download.url, null, null, null);
};
$scope.shareTwitter = function() {
window.plugins.socialsharing.shareVia('com.apple.social.twitter', config.download.url, null, null, 'http://www.x-services.nl', null, null);
};
$scope.shareGooglePlus = function() {
window.plugins.socialsharing.shareVia('com.google.android.apps.plus', config.download.url, null, null, null);
};
$scope.shareEmail = function() {
window.plugins.socialsharing.shareViaEmail(config.download.url, null, null, null);
};
$scope.shareWhatsapp = function() {
window.plugins.socialsharing.shareViaWhatsApp(config.download.url, null, null, null);
};
$scope.shareMessage = function() {
window.plugins.socialsharing.shareViaSMS(config.download.url, null, null, null);
};
$scope.$on("$ionicView.beforeEnter", function(event, data) {
var config = configService.getSync();
window.plugins.socialsharing.share(config.download.url, null, null, null);
storageService.setRateCardFlag('true', function() {});
if (!$scope.isCordova) return;
window.plugins.socialsharing.available(function(isAvailable) {
// the boolean is only false on iOS < 6
$scope.socialsharing = isAvailable;
if (isAvailable) {
window.plugins.socialsharing.canShareVia('com.apple.social.facebook', 'msg', null, null, null, function(e) {
$scope.facebook = true;
}, function(e) {
$scope.facebook = false;
});
window.plugins.socialsharing.canShareVia('com.apple.social.twitter', 'msg', null, null, null, function(e) {
$scope.twitter = true;
}, function(e) {
$scope.twitter = false;
});
window.plugins.socialsharing.canShareVia('com.google.android.apps.plus', 'msg', null, null, null, function(e) {
$scope.googleplus = true;
}, function(e) {
$scope.googleplus = false;
})
window.plugins.socialsharing.canShareViaEmail(function(e) {
$scope.email = true;
}, function(e) {
$scope.email = false;
})
window.plugins.socialsharing.canShareVia('whatsapp', 'msg', null, null, null, function(e) {
$scope.whatsapp = true;
}, function(e) {
$scope.whatsapp = false;
})
window.plugins.socialsharing.canShareVia('sms', 'msg', null, null, null, function(e) {
$scope.sms = true;
}, function(e) {
$scope.sms = false;
})
}
});
});
});

View file

@ -36,12 +36,10 @@ angular.module('copayApp.controllers').controller('tabHomeController',
});
}
$scope.hideRateCard = $stateParams.fromAppRate || !$scope.isCordova;
if (!$scope.hideRateCard) {
storageService.getRateCardFlag(function(error, value) {
$scope.hideRateCard = (value == 'true') ? true : false;
});
}
storageService.getRateCardFlag(function(error, value) {
$scope.hideRateCard = (value == 'true') ? true : false;
});
});
$scope.$on("$ionicView.enter", function(event, data) {
@ -144,14 +142,15 @@ angular.module('copayApp.controllers').controller('tabHomeController',
};
$scope.goFeedbackFlow = function() {
if ($scope.score != 5)
$state.go('feedback.sendFeedback', {
score: $scope.score
});
else
if ($scope.isCordova && $scope.score == 5) {
$state.go('feedback.rateAppStore', {
score: $scope.score
});
} else {
$state.go('feedback.sendFeedback', {
score: $scope.score
});
}
};
$scope.openNotificationModal = function(n) {

View file

@ -741,7 +741,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
}
})
.state('feedback.thanks', {
url: '/thanks/:score/:skip',
url: '/thanks/:score/:skipped',
views: {
'feedback': {
controller: 'thanksController',

View file

@ -9,4 +9,15 @@
.subtitle {
padding: 10px 30px 20px 40px;
}
.row {
margin: 20px 0px 20px;
span {
margin-top: 15px;
display: block;
}
div {
text-align: center;
width: 100%;
}
}
}

View file

@ -1,19 +1,28 @@
<ion-view id="thanks-feedback">
<ion-nav-bar class="bar-royal">
<ion-nav-buttons side="secondary">
<button class="button icon ion-ios-close-empty" ui-sref="tabs.home({fromAppRate: 'true'})">
<button class="button icon ion-ios-close-empty" ui-sref="tabs.home()">
</button>
</ion-nav-buttons>
</ion-nav-bar>
<ion-content scroll="false">
<div ng-if="!skip">
<div class="title">
<span translate>Thank you!</span>
<div ng-show="skipped && isCordova">
<div class="title" translate>Invite friends to BitPay Wallet!</div>
<div>
<i class="icon zero-state-icon">
<img src="img/address-book-add.svg"/>
</i>
</div>
<div class="text-center">
<span translate>Share the love by inviting your friends.</span>
</div>
</div>
<div ng-show="!skipped || !isCordova">
<div class="title" translate>Thank you!</div>
<div class="subtitle">
<span translate>A member of the team will review your feedback as soon as possible.</span>
</div>
<div class="subtitle" ng-if="score < 4">
<div class="subtitle" ng-if="score <= 3 || !isCordova">
<span translate>If you have additional feedback, please let us know by tapping the "Send feedback" option in the Settings tab.</span>
<div>
<i class="icon zero-state-icon">
@ -21,17 +30,53 @@
</i>
</div>
</div>
</div>
<div ng-if="skip" class="title">
<span translate>Invite friends to BitPay Wallet!</span>
<div>
<i class="icon zero-state-icon">
<img src="img/address-book-add.svg"/>
</i>
<div class="text-center" ng-if="score > 3 && isCordova">
<span translate>Share the love by inviting your friends.</span>
</div>
</div>
<div class="text-center" ng-if="score >= 4">
<span translate>Share the love by inviting your friends.</span>
<div ng-if="isCordova && score > 3">
<div class="ng-hide" ng-show="socialsharing" ng-if="score >= 4">
<div class="row">
<div class="ng-hide" ng-show="facebook" ng-click="shareFacebook()">
<i class="icon zero-state-icon">
<img src="img/address-book-add.svg"/>
</i>
<span>Facebook</span>
</div>
<div class="ng-hide" ng-show="twitter" ng-click="shareTwitter()">
<i class="icon zero-state-icon">
<img src="img/address-book-add.svg"/>
</i>
<span>Twitter</span>
</div>
<div class="ng-hide" ng-show="googleplus" ng-click="shareGooglePlus()">
<i class="icon zero-state-icon">
<img src="img/address-book-add.svg"/>
</i>
<span>Google+</span>
</div>
</div>
<div class="row">
<div class="ng-hide" ng-show="email" ng-click="shareEmail()">
<i class="icon zero-state-icon">
<img src="img/address-book-add.svg"/>
</i>
<span>Email</span>
</div>
<div class="ng-hide" ng-show="whatsapp" ng-click="shareWhatsapp()">
<i class="icon zero-state-icon">
<img src="img/address-book-add.svg"/>
</i>
<span>Whatsapp</span>
</div>
<div class="ng-hide" ng-show="message" ng-click="shareMessage()">
<i class="icon zero-state-icon">
<img src="img/address-book-add.svg"/>
</i>
<span>Message</span>
</div>
</div>
</div>
</div>
</ion-content>
</ion-view>