Merge branch 'master' of github.com:bitpay/copay
This commit is contained in:
commit
8b7ab38f2b
10 changed files with 58 additions and 28 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('copayApp.controllers').controller('completeController', function($scope, $stateParams, $timeout, $log, $ionicHistory, $state, platformInfo, configService, storageService, lodash) {
|
angular.module('copayApp.controllers').controller('completeController', function($scope, $stateParams, $timeout, $log, $ionicHistory, $state, $ionicNavBarDelegate, $ionicConfig, platformInfo, configService, storageService, lodash) {
|
||||||
$scope.isCordova = platformInfo.isCordova;
|
$scope.isCordova = platformInfo.isCordova;
|
||||||
var config = configService.getSync();
|
var config = configService.getSync();
|
||||||
|
|
||||||
|
|
@ -33,6 +33,12 @@ angular.module('copayApp.controllers').controller('completeController', function
|
||||||
$scope.score = (data.stateParams && data.stateParams.score) ? parseInt(data.stateParams.score) : null;
|
$scope.score = (data.stateParams && data.stateParams.score) ? parseInt(data.stateParams.score) : null;
|
||||||
$scope.skipped = (data.stateParams && data.stateParams.skipped) ? true : false;
|
$scope.skipped = (data.stateParams && data.stateParams.skipped) ? true : false;
|
||||||
$scope.rated = (data.stateParams && data.stateParams.rated) ? true : false;
|
$scope.rated = (data.stateParams && data.stateParams.rated) ? true : false;
|
||||||
|
$scope.fromSettings = (data.stateParams && data.stateParams.fromSettings) ? true : false;
|
||||||
|
|
||||||
|
if (!$scope.fromSettings) {
|
||||||
|
$ionicNavBarDelegate.showBackButton(false);
|
||||||
|
$ionicConfig.views.swipeBackEnabled(false);
|
||||||
|
} else $ionicNavBarDelegate.showBackButton(true);
|
||||||
|
|
||||||
storageService.getFeedbackInfo(function(error, info) {
|
storageService.getFeedbackInfo(function(error, info) {
|
||||||
var feedbackInfo = lodash.isString(info) ? JSON.parse(info) : null;
|
var feedbackInfo = lodash.isString(info) ? JSON.parse(info) : null;
|
||||||
|
|
@ -99,6 +105,7 @@ angular.module('copayApp.controllers').controller('completeController', function
|
||||||
disableAnimate: false,
|
disableAnimate: false,
|
||||||
historyRoot: true
|
historyRoot: true
|
||||||
});
|
});
|
||||||
$ionicHistory.goBack(-2);
|
if ($scope.score == 5) $ionicHistory.goBack(-3);
|
||||||
|
else $ionicHistory.goBack(-2);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('copayApp.controllers').controller('rateAppController', function($scope, $state, $stateParams, lodash, externalLinkService, configService, gettextCatalog, platformInfo, feedbackService, ongoingProcess, popupService) {
|
angular.module('copayApp.controllers').controller('rateAppController', function($scope, $state, $stateParams, $window, lodash, externalLinkService, configService, gettextCatalog, platformInfo, feedbackService, ongoingProcess, popupService) {
|
||||||
$scope.score = parseInt($stateParams.score);
|
$scope.score = parseInt($stateParams.score);
|
||||||
var isAndroid = platformInfo.isAndroid;
|
var isAndroid = platformInfo.isAndroid;
|
||||||
var isIOS = platformInfo.isIOS;
|
var isIOS = platformInfo.isIOS;
|
||||||
|
|
@ -11,7 +11,10 @@ angular.module('copayApp.controllers').controller('rateAppController', function(
|
||||||
var dataSrc = {
|
var dataSrc = {
|
||||||
"Email": lodash.values(config.emailFor)[0] || ' ',
|
"Email": lodash.values(config.emailFor)[0] || ' ',
|
||||||
"Feedback": ' ',
|
"Feedback": ' ',
|
||||||
"Score": $stateParams.score
|
"Score": $stateParams.score,
|
||||||
|
"AppVersion": $window.version,
|
||||||
|
"Platform": ionic.Platform.platform(),
|
||||||
|
"DeviceVersion": ionic.Platform.version()
|
||||||
};
|
};
|
||||||
feedbackService.send(dataSrc, function(err) {
|
feedbackService.send(dataSrc, function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
|
||||||
|
|
@ -743,7 +743,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.state('tabs.feedback', {
|
.state('tabs.feedback', {
|
||||||
url: '/feedback',
|
url: '/feedback',
|
||||||
views: {
|
views: {
|
||||||
'tab-settings@tabs': {
|
'tab-settings@tabs': {
|
||||||
|
|
@ -752,8 +752,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.state('tabs.feedback.shareApp', {
|
.state('tabs.shareApp', {
|
||||||
url: '/shareApp/:score/:skipped',
|
url: '/shareApp/:score/:skipped/:fromSettings',
|
||||||
views: {
|
views: {
|
||||||
'tab-settings@tabs': {
|
'tab-settings@tabs': {
|
||||||
controller: 'completeController',
|
controller: 'completeController',
|
||||||
|
|
@ -1113,8 +1113,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
||||||
});
|
});
|
||||||
|
|
||||||
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
|
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
|
||||||
if($window.StatusBar) {
|
if ($window.StatusBar) {
|
||||||
if(toState.customConfig && toState.customConfig.hideStatusBar) {
|
if (toState.customConfig && toState.customConfig.hideStatusBar) {
|
||||||
$window.StatusBar.hide();
|
$window.StatusBar.hide();
|
||||||
} else {
|
} else {
|
||||||
$window.StatusBar.show();
|
$window.StatusBar.show();
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,7 @@ $button-secondary-border: transparent;
|
||||||
$button-secondary-active-bg: darken($subtle-gray, 5%);
|
$button-secondary-active-bg: darken($subtle-gray, 5%);
|
||||||
$button-secondary-active-border: transparent;
|
$button-secondary-active-border: transparent;
|
||||||
|
|
||||||
%button-standard,
|
%button-standard {
|
||||||
click-to-accept {
|
|
||||||
width: 85%;
|
width: 85%;
|
||||||
max-width: 300px;
|
max-width: 300px;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,18 @@
|
||||||
click-to-accept {
|
click-to-accept {
|
||||||
|
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
height: 92px;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
.click-to-accept {
|
.click-to-accept {
|
||||||
|
|
||||||
|
&__button.button.button-primary.button-standard {
|
||||||
|
height: 100%;
|
||||||
|
max-width: 9999px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
&__button.disable {
|
&__button.disable {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
@ -18,6 +29,9 @@ click-to-accept {
|
||||||
transform: translateY(2rem);
|
transform: translateY(2rem);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
&.enter {
|
&.enter {
|
||||||
transition: transform 250ms ease, opacity 250ms ease;
|
transition: transform 250ms ease, opacity 250ms ease;
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
.list {
|
.list {
|
||||||
background: #f5f5f5;
|
background: #f5f5f5;
|
||||||
}
|
}
|
||||||
.slide-to-pay {
|
.add-bottom-for-cta {
|
||||||
bottom: 92px;
|
bottom: 92px;
|
||||||
}
|
}
|
||||||
.head {
|
.head {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
</ion-nav-back-button>
|
</ion-nav-back-button>
|
||||||
</ion-nav-bar>
|
</ion-nav-bar>
|
||||||
|
|
||||||
<ion-content ng-class="{'slide-to-pay': isCordova && !insuffientFunds && !noMatchingWallet}">
|
<ion-content ng-class="{'add-bottom-for-cta': !insuffientFunds && !noMatchingWallet}">
|
||||||
<div class="list">
|
<div class="list">
|
||||||
<div class="item head">
|
<div class="item head">
|
||||||
<div class="sending-label">
|
<div class="sending-label">
|
||||||
|
|
@ -77,13 +77,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<click-to-accept
|
|
||||||
ng-click="approve(statusChangeHandler)"
|
|
||||||
ng-if="!isCordova && wallets[0]"
|
|
||||||
click-send-status="sendStatus">
|
|
||||||
Click to pay
|
|
||||||
</click-to-accept>
|
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
<click-to-accept
|
||||||
|
ng-click="approve(statusChangeHandler)"
|
||||||
|
ng-if="!isCordova && wallets[0]"
|
||||||
|
click-send-status="sendStatus">
|
||||||
|
Click to pay
|
||||||
|
</click-to-accept>
|
||||||
<slide-to-accept
|
<slide-to-accept
|
||||||
ng-if="isCordova && wallets[0]"
|
ng-if="isCordova && wallets[0]"
|
||||||
slide-on-confirm="onConfirm()"
|
slide-on-confirm="onConfirm()"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,11 @@
|
||||||
<ion-view id="complete" hide-tabs>
|
<ion-view id="complete" hide-tabs>
|
||||||
|
<ion-nav-bar class="bar-royal">
|
||||||
|
<ion-nav-back-button>
|
||||||
|
</ion-nav-back-button>
|
||||||
|
<ion-nav-buttons side="secondary">
|
||||||
|
<a ng-show="!fromSettings" class="close-button" ng-click="close()"><i class="icon ion-ios-close-empty close-home-tip"></i></a>
|
||||||
|
</ion-nav-buttons>
|
||||||
|
</ion-nav-bar>
|
||||||
<ion-content scroll="false">
|
<ion-content scroll="false">
|
||||||
<a class="close-button" ng-click="close()"><i class="icon ion-ios-close-empty close-home-tip"></i></a>
|
<a class="close-button" ng-click="close()"><i class="icon ion-ios-close-empty close-home-tip"></i></a>
|
||||||
<div class="complete-layout">
|
<div class="complete-layout">
|
||||||
|
|
@ -7,7 +14,7 @@
|
||||||
<div class="title" ng-switch-when="true" translate>Thank you!</div>
|
<div class="title" ng-switch-when="true" translate>Thank you!</div>
|
||||||
<div ng-switch-default>
|
<div ng-switch-default>
|
||||||
<div class="title" translate>Share BitPay</div>
|
<div class="title" translate>Share BitPay</div>
|
||||||
<img src="img/ico-positive-feedback.svg" class="share-the-love-illustration"/>
|
<img src="img/ico-positive-feedback.svg" class="share-the-love-illustration"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="subtitle" ng-show="!skipped && !rated" translate>A member of the team will review your feedback as soon as possible.</div>
|
<div class="subtitle" ng-show="!skipped && !rated" translate>A member of the team will review your feedback as soon as possible.</div>
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
</button>
|
</button>
|
||||||
</ion-header-bar>
|
</ion-header-bar>
|
||||||
|
|
||||||
<ion-content ng-init="updateCopayerList()" ng-class="{'slide-to-pay': tx.pendingForUs && canSign && !hasClick}">
|
<ion-content ng-init="updateCopayerList()" ng-class="{'add-bottom-for-cta': tx.pendingForUs && canSign}">
|
||||||
<div class="list">
|
<div class="list">
|
||||||
<div class="item head">
|
<div class="item head">
|
||||||
<div class="sending-label">
|
<div class="sending-label">
|
||||||
|
|
@ -150,12 +150,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<click-to-accept
|
|
||||||
ng-click="onConfirm(statusChangeHandler)"
|
|
||||||
ng-if="tx.pendingForUs && canSign && !paymentExpired && hasClick"
|
|
||||||
click-send-status="sendStatus">
|
|
||||||
Click to accept
|
|
||||||
</click-to-accept>
|
|
||||||
<div class="m30t text-center" ng-if="tx.canBeRemoved || (tx.status == 'accepted' && !tx.broadcastedOn)">
|
<div class="m30t text-center" ng-if="tx.canBeRemoved || (tx.status == 'accepted' && !tx.broadcastedOn)">
|
||||||
<div class="size-12 padding proposal-deletion-help" ng-show="!tx.isGlidera && isShared" translate>
|
<div class="size-12 padding proposal-deletion-help" ng-show="!tx.isGlidera && isShared" translate>
|
||||||
* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created.
|
* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created.
|
||||||
|
|
@ -167,6 +161,12 @@
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
||||||
|
<click-to-accept
|
||||||
|
ng-click="onConfirm(statusChangeHandler)"
|
||||||
|
ng-if="tx.pendingForUs && canSign && !paymentExpired && hasClick"
|
||||||
|
click-send-status="sendStatus">
|
||||||
|
Click to accept
|
||||||
|
</click-to-accept>
|
||||||
<slide-to-accept
|
<slide-to-accept
|
||||||
ng-if="tx.pendingForUs && canSign && !paymentExpired && !hasClick"
|
ng-if="tx.pendingForUs && canSign && !paymentExpired && !hasClick"
|
||||||
slide-on-confirm="onConfirm()"
|
slide-on-confirm="onConfirm()"
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
<span translate>Send Feedback</span>
|
<span translate>Send Feedback</span>
|
||||||
<i class="icon bp-arrow-right"></i>
|
<i class="icon bp-arrow-right"></i>
|
||||||
</a>
|
</a>
|
||||||
<a ng-if="isCordova" class="item item-icon-left item-icon-right" ui-sref="tabs.feedback.shareApp({score: 4, skipped: true})">
|
<a ng-if="isCordova" class="item item-icon-left item-icon-right" ui-sref="tabs.shareApp({score: 4, skipped: true, fromSettings: true})">
|
||||||
<i class="icon big-icon-svg">
|
<i class="icon big-icon-svg">
|
||||||
<img src="img/icon-send-feedback.svg" class="bg"/>
|
<img src="img/icon-send-feedback.svg" class="bg"/>
|
||||||
</i>
|
</i>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue