fix merge conflicts

This commit is contained in:
Marty Alcala 2016-10-21 09:38:27 -04:00
commit 3f402fbd89
65 changed files with 391 additions and 303 deletions

View file

@ -12,6 +12,14 @@
</head> </head>
<body> <body>
<!-- Workaround to prevent autofill -->
<div style="display: none;">
<input type="text"
id="PreventChromeAutocomplete"
name="PreventChromeAutocomplete"
autocomplete="address-level4" />
</div>
<ion-nav-view> <ion-nav-view>
<incoming-data-menu></incoming-data-menu> <incoming-data-menu></incoming-data-menu>
</ion-nav-view> </ion-nav-view>

View file

@ -7,7 +7,7 @@ angular.module('copayApp.controllers').controller('amountController', function($
var unitDecimals; var unitDecimals;
var satToBtc; var satToBtc;
var self = $scope.self; var self = $scope.self;
var SMALL_FONT_SIZE_LIMIT = 13; var SMALL_FONT_SIZE_LIMIT = 10;
var LENGTH_EXPRESSION_LIMIT = 19; var LENGTH_EXPRESSION_LIMIT = 19;
$scope.$on('$ionicView.leave', function() { $scope.$on('$ionicView.leave', function() {
@ -197,18 +197,18 @@ angular.module('copayApp.controllers').controller('amountController', function($
amount: amountUSD, amount: amountUSD,
currency: 'USD' currency: 'USD'
}; };
ongoingProcess.set('Processing Transaction...', true); ongoingProcess.set('Preparing transaction...', true);
$timeout(function() { $timeout(function() {
bitpayCardService.topUp($scope.cardId, dataSrc, function(err, invoiceId) { bitpayCardService.topUp($scope.cardId, dataSrc, function(err, invoiceId) {
if (err) { if (err) {
ongoingProcess.set('Processing Transaction...', false); ongoingProcess.set('Preparing transaction...', false);
popupService.showAlert(gettextCatalog.getString('Error'), bwcError.msg(err)); popupService.showAlert(gettextCatalog.getString('Error'), bwcError.msg(err));
return; return;
} }
bitpayCardService.getInvoice(invoiceId, function(err, data) { bitpayCardService.getInvoice(invoiceId, function(err, data) {
ongoingProcess.set('Processing Transaction...', false); ongoingProcess.set('Preparing transaction...', false);
if (err) { if (err) {
popupService.showAlert(gettextCatalog.getString('Error'), bwcError.msg(err)); popupService.showAlert(gettextCatalog.getString('Error'), bwcError.msg(err));
return; return;

View file

@ -27,9 +27,9 @@ angular.module('copayApp.controllers').controller('bitpayCardIntroController', f
popupService.showAlert(null, err); popupService.showAlert(null, err);
return; return;
} }
var title = gettextCatalog.getString('Add BitPay Card?'); var title = gettextCatalog.getString('Add BitPay Card Account?');
var msg = gettextCatalog.getString('Would you like to add this account ({{email}}) to your wallet?', {email: obj.email}); var msg = gettextCatalog.getString('Would you like to add this account ({{email}}) to your wallet?', {email: obj.email});
var ok = gettextCatalog.getString('Add cards'); var ok = gettextCatalog.getString('Add Account');
var cancel = gettextCatalog.getString('Go back'); var cancel = gettextCatalog.getString('Go back');
popupService.showConfirm(title, msg, ok, cancel, function(res) { popupService.showConfirm(title, msg, ok, cancel, function(res) {
if (res) { if (res) {
@ -59,14 +59,18 @@ angular.module('copayApp.controllers').controller('bitpayCardIntroController', f
} }
}); });
$scope.bitPayCardInfo = function() {
var url = 'https://bitpay.com/visa/faq';
externalLinkService.open(url);
};
$scope.orderBitPayCard = function() { $scope.orderBitPayCard = function() {
var url = 'https://bitpay.com/visa/'; var url = 'https://bitpay.com/visa/get-started';
externalLinkService.open(url); externalLinkService.open(url);
}; };
$scope.connectBitPayCard = function() { $scope.connectBitPayCard = function() {
var url = 'https://bitpay.com/visa/login'; var url = 'https://bitpay.com/visa/dashboard/add-to-bitpay-wallet-confirm';
externalLinkService.open(url); externalLinkService.open(url);
}; };
}); });

View file

@ -1,9 +1,9 @@
'use strict'; 'use strict';
angular.module('copayApp.controllers').controller('confirmController', function($rootScope, $scope, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, walletService, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, profileService, bitcore, gettext, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig) { angular.module('copayApp.controllers').controller('confirmController', function($rootScope, $scope, $interval, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, walletService, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, profileService, bitcore, gettext, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig) {
var cachedTxp = {}; var cachedTxp = {};
var isChromeApp = platformInfo.isChromeApp; var isChromeApp = platformInfo.isChromeApp;
var countDown = null;
$ionicConfig.views.swipeBackEnabled(false); $ionicConfig.views.swipeBackEnabled(false);
$scope.$on("$ionicView.beforeEnter", function(event, data) { $scope.$on("$ionicView.beforeEnter", function(event, data) {
@ -15,6 +15,12 @@ angular.module('copayApp.controllers').controller('confirmController', function(
$scope.toEmail = data.stateParams.toEmail; $scope.toEmail = data.stateParams.toEmail;
$scope.description = data.stateParams.description; $scope.description = data.stateParams.description;
$scope.paypro = data.stateParams.paypro; $scope.paypro = data.stateParams.paypro;
$scope.paymentExpired = {
value: false
};
$scope.remainingTimeStr = {
value: null
};
initConfirm(); initConfirm();
}); });
@ -87,6 +93,10 @@ angular.module('copayApp.controllers').controller('confirmController', function(
$scope.alternativeAmountStr = v; $scope.alternativeAmountStr = v;
}); });
if($scope.paypro) {
_paymentTimeControl($scope.paypro.expires);
}
$timeout(function() { $timeout(function() {
$scope.$apply(); $scope.$apply();
}, 100); }, 100);
@ -136,6 +146,91 @@ angular.module('copayApp.controllers').controller('confirmController', function(
return amountStr.split(' ')[1]; return amountStr.split(' ')[1];
} }
// <<<<<<< HEAD
// =======
// var setFromPayPro = function(uri, cb) {
// if (!cb) cb = function() {};
//
// var wallet = profileService.getWallets({
// onlyComplete: true
// })[0];
//
// if (!wallet) return cb();
//
// if (isChromeApp) {
// popupService.showAlert(gettextCatalog.getString('Payment Protocol not supported on Chrome App'));
// return cb(true);
// }
//
// $log.debug('Fetch PayPro Request...', uri);
//
// ongoingProcess.set('fetchingPayPro', true);
// wallet.fetchPayPro({
// payProUrl: uri,
// }, function(err, paypro) {
//
// ongoingProcess.set('fetchingPayPro', false);
//
// if (err) {
// $log.warn('Could not fetch payment request:', err);
// var msg = err.toString();
// if (msg.match('HTTP')) {
// msg = gettextCatalog.getString('Could not fetch payment information');
// }
// popupService.showAlert(msg);
// return cb(true);
// }
//
// if (!paypro.verified) {
// $log.warn('Failed to verify payment protocol signatures');
// popupService.showAlert(gettextCatalog.getString('Payment Protocol Invalid'));
// return cb(true);
// }
//
// $scope.toAmount = paypro.amount;
// $scope.toAddress = paypro.toAddress;
// $scope.description = paypro.memo;
// $scope.paypro = null;
//
// $scope._paypro = paypro;
// _paymentTimeControl(paypro.expires);
// return initConfirm();
// });
// };
function _paymentTimeControl(expirationTime) {
$scope.paymentExpired.value = false;
setExpirationTime();
countDown = $interval(function() {
setExpirationTime();
}, 1000);
function setExpirationTime() {
var now = Math.floor(Date.now() / 1000);
if (now > expirationTime) {
setExpiredValues();
return;
}
var totalSecs = expirationTime - now;
var m = Math.floor(totalSecs / 60);
var s = totalSecs % 60;
$scope.remainingTimeStr.value = ('0' + m).slice(-2) + ":" + ('0' + s).slice(-2);
}
function setExpiredValues() {
$scope.paymentExpired.value = true;
$scope.remainingTimeStr.value = gettextCatalog.getString('Expired');
if (countDown) $interval.cancel(countDown);
$timeout(function() {
$scope.$apply();
});
}
}
// >>>>>>> de248d56393535b819d879d38692af68c9e6e4da
function setWallet(wallet, delayed) { function setWallet(wallet, delayed) {
var stop; var stop;
$scope.wallet = wallet; $scope.wallet = wallet;
@ -242,12 +337,20 @@ angular.module('copayApp.controllers').controller('confirmController', function(
}; };
$scope.approve = function(onSendStatusChange) { $scope.approve = function(onSendStatusChange) {
if ($scope._paypro && $scope.paymentExpired.value) {
popupService.showAlert(null, gettextCatalog.getString('The payment request has expired'));
$scope.sendStatus = '';
$timeout(function() {
$scope.$apply();
});
return;
}
var wallet = $scope.wallet; var wallet = $scope.wallet;
if (!wallet) { if (!wallet) {
return setSendError(gettextCatalog.getString('No wallet selected')); return setSendError(gettextCatalog.getString('No wallet selected'));
}; };
if (!wallet.canSign() && !wallet.isPrivKeyExternal()) { if (!wallet.canSign() && !wallet.isPrivKeyExternal()) {
$log.info('No signing proposal: No private key'); $log.info('No signing proposal: No private key');
@ -286,10 +389,8 @@ angular.module('copayApp.controllers').controller('confirmController', function(
} }
publishAndSign(wallet, txp, onSendStatusChange); publishAndSign(wallet, txp, onSendStatusChange);
}); });
} } else publishAndSign(wallet, txp, onSendStatusChange);
else publishAndSign(wallet, txp, onSendStatusChange); } else {
}
else {
popupService.showConfirm(null, message, okText, cancelText, function(ok) { popupService.showConfirm(null, message, okText, cancelText, function(ok) {
if (!ok) { if (!ok) {
$scope.sendStatus = ''; $scope.sendStatus = '';
@ -298,8 +399,7 @@ angular.module('copayApp.controllers').controller('confirmController', function(
publishAndSign(wallet, txp, onSendStatusChange); publishAndSign(wallet, txp, onSendStatusChange);
}); });
} }
} } else publishAndSign(wallet, txp, onSendStatusChange);
else publishAndSign(wallet, txp, onSendStatusChange);
}); });
}; };

View file

@ -7,8 +7,9 @@ angular.module('copayApp.controllers').controller('preferencesAliasController',
var config = configService.getSync(); var config = configService.getSync();
$scope.walletName = wallet.credentials.walletName; $scope.walletName = wallet.credentials.walletName;
$scope.walletAlias = config.aliasFor && config.aliasFor[walletId] ? config.aliasFor[walletId] : wallet.credentials.walletName;
$scope.alias = { $scope.alias = {
value: (config.aliasFor && config.aliasFor[walletId]) || wallet.credentials.walletName value: $scope.walletAlias
}; };
$scope.save = function() { $scope.save = function() {
@ -23,11 +24,4 @@ angular.module('copayApp.controllers').controller('preferencesAliasController',
$ionicHistory.goBack(); $ionicHistory.goBack();
}); });
}; };
$scope.valueCheck = function() {
if ($scope.alias.value == wallet.credentials.walletName || $scope.alias.value == '') $scope.disableSave = true;
else $scope.disableSave = false;
};
$scope.$watch('alias.value', function(newvalue, oldvalue) {
$scope.valueCheck();
});
}); });

View file

@ -35,3 +35,8 @@ $placeholder-icon-padding: 10px;
.item p { .item p {
color: $mid-gray; color: $mid-gray;
} }
// we'd like to diverge from the standard ionic formula for left-right card margins
.card {
margin: ($content-padding * 2) 14px;
}

View file

@ -18,6 +18,10 @@
border-color: #e6b500; border-color: #e6b500;
background-color: #ffc900; background-color: #ffc900;
color: #fff; color: #fff;
&.warning-red{
border-color: #EB475A;
background-color: $warning-red;
}
} }
&.error { &.error {
background-color: #ef473a; background-color: #ef473a;
@ -128,8 +132,8 @@ input[type=number] {
.postfix { .postfix {
position: absolute; position: absolute;
right: 10px; right: 10px;
background-color: #f8f8f8; background-color: $subtle-gray;
color: #444; color: $dark-gray;
border-radius: 4px; border-radius: 4px;
padding: 2px 10px; padding: 2px 10px;
cursor: pointer; cursor: pointer;

View file

@ -8,6 +8,7 @@ $roboto-light: "Roboto-Light", sans-serif-light;
$light-green: rgb(19, 229, 182); $light-green: rgb(19, 229, 182);
$success-green: #17ae8c; $success-green: #17ae8c;
$warning-orange: #ffa500; $warning-orange: #ffa500;
$warning-red: #E15061;
$dark-gray: #445; $dark-gray: #445;
$mid-gray: #667; $mid-gray: #667;
$light-gray: #9b9bab; $light-gray: #9b9bab;

View file

@ -1,4 +1,9 @@
#view-amount { #view-amount {
.recipient-label {
font-size: 14px;
padding-bottom: 0;
color: $mid-gray;
}
.item-no-bottom-border + .item { .item-no-bottom-border + .item {
border-top: 0; border-top: 0;
} }
@ -19,7 +24,7 @@
box-shadow: none; box-shadow: none;
} }
} }
font-size: 11px; font-size: 13px;
padding-left: 48px; padding-left: 48px;
} }
} }
@ -30,7 +35,7 @@
} }
.amount-pane { .amount-pane {
position: absolute; position: absolute;
top: 125px; top: 95px;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
background-color: #fff; background-color: #fff;
@ -42,6 +47,8 @@
.title { .title {
float: left; float: left;
padding-top: 10px; padding-top: 10px;
color: $dark-gray;
font-weight: bold;
} }
} }
.amount { .amount {
@ -53,11 +60,60 @@
bottom: 254px; bottom: 254px;
top: 66px; top: 66px;
.light { .light {
color: #A4A4A4; color: $light-gray;
} }
} }
} }
.amount {
&__editable {
margin-bottom: 1rem;
&--minimize {
font-size: 22px;
}
&--standard {
font-size: 42px;
}
&--placeholder {
color: $light-gray;
}
}
&__number {
color: $dark-gray;
}
&__currency-toggle {
border: 1px solid $subtle-gray;
color: $dark-gray;
border-radius: 3px;
padding: 0 10px;
cursor: pointer;
font-size: .6em;
position: relative;
top: -3px;
line-height: 1;
}
&__results {
&--minimize {
font-size: 12px;
}
&--standard {
font-size: 18px;
}
&--placeholder {
color: $light-gray;
}
}
&__result {
color: $light-gray;
font-size: .9em;
margin-bottom: -.9em;
line-height: 1;
}
&__result-equiv {
color: $mid-gray;
font-size: 1.2em;
margin-top: 2rem;
}
}
.keypad { .keypad {
text-align: center; text-align: center;
font-size: 24px; font-size: 24px;
@ -65,6 +121,7 @@
position: absolute; position: absolute;
bottom: 0; bottom: 0;
width: 100%; width: 100%;
color: $mid-gray;
.row { .row {
padding: 0 !important; padding: 0 !important;
@ -72,23 +129,23 @@
} }
.col { .col {
line-height: 40px; line-height: 45px;
} }
.operator { .operator {
background-color: #eaeaea; background-color: $subtle-gray;
font-weight: normal; font-weight: normal;
cursor: pointer; cursor: pointer;
&:active { &:active {
background-color: #f8f8f8; background-color: $light-gray;
} }
} }
.operator-send { .operator-send {
font-weight: bolder; font-weight: bolder;
color: #f8f8f8; color: #fff;
background-color: #1e3186; background-color: $positive;
font-size: 36px; font-size: 36px;
cursor: pointer; cursor: pointer;
@ -99,10 +156,10 @@
.digit{ .digit{
cursor: pointer; cursor: pointer;
border-top: 1px solid #eaeaea; border-top: 1px solid $subtle-gray;
border-left: 1px solid #eaeaea; border-left: 1px solid $subtle-gray;
&:active { &:active {
background-color: #eaeaea; background-color: $subtle-gray;
} }
} }

View file

@ -1,70 +1,55 @@
#bitpayCard-intro { #bitpayCard-intro {
.slider-pager .slider-pager-page { background: url(../img/onboarding-welcome-bg.png), linear-gradient(to bottom, rgba(30, 49, 134, 1) 0%, rgba(17, 27, 73, 1) 100%);
color: #fff; background-position: top center;
} background-size: contain;
.cta-button{ background-repeat: no-repeat;
color: #fff;
.cta-button {
text-align: center; text-align: center;
position: absolute; position: absolute;
bottom: 55px; bottom: 55px;
padding: 0 1.5rem; padding: 0 1.5rem;
width: 100%; width: 100%;
} }
background: rgba(30, 49, 134, 1);
background: -moz-linear-gradient(top, rgba(30, 49, 134, 1) 0%, rgba(17, 27, 73, 1) 100%);
background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(30, 49, 134, 1)), color-stop(100%, rgba(17, 27, 73, 1)));
background: -webkit-linear-gradient(top, rgba(30, 49, 134, 1) 0%, rgba(17, 27, 73, 1) 100%);
background: -o-linear-gradient(top, rgba(30, 49, 134, 1) 0%, rgba(17, 27, 73, 1) 100%);
background: -ms-linear-gradient(top, rgba(30, 49, 134, 1) 0%, rgba(17, 27, 73, 1) 100%);
background: linear-gradient(to bottom, rgba(30, 49, 134, 1) 0%, rgba(17, 27, 73, 1) 100%);
color: #fff; color: #fff;
height: 100%; height: 100%;
.bar.bar-header { .bar.bar-header {
background: rgb(30, 49, 134); background: transparent none;
color: #fff; border: 0 none transparent;
button {
color: #fff;
}
.secondary-buttons {
button {
color: rgba(255, 255, 255, .5);
}
}
} }
.bar.bar-stable{ .bar.bar-stable{
border-color: transparent; border-color: transparent;
border:none; border:none;
} }
.button-transparent{ .bitpayCard {
background: none !important; &__illustration {
} padding: 2rem;
.button-translucent{ &__img {
background: rgba(215, 215, 215, 0.1) width: 100%;
} max-width: 400px;
.button-primary{ }
background: rgb(100, 124, 232) !important; }
color:#fff; &__info:before {
} font-size: 22px;
.light-blue{ line-height: 22px;
color:rgb(100, 124, 232); margin-top: 6px;
} }
.text-white{
color: #ffffff;
} }
ion-content { ion-content {
background: url(../img/onboarding-welcome-bg.png);
background-position: top center;
background-size: contain;
background-repeat: repeat-x;
height: 100%; height: 100%;
.scroll{ .scroll{
height: 100%; height: 100%;
} }
color: #fff; }
p { .slider__text {
text-align: center; text-align: center;
margin: 40px 20px; margin: 40px 20px;
font-size: 1.2rem; font-size: 1rem;
color: rgba(255, 255, 255, .5); color: rgba(255, 255, 255, .7);
} }
.slider-pager .slider-pager-page {
color: $soft-blue;
font-size: 8px;
margin: 0;
} }
} }

View file

@ -28,6 +28,12 @@
margin-bottom:5px; margin-bottom:5px;
font-size:13px; font-size:13px;
} }
&.wallet-number{
visibility: hidden;
}
&.visible{
visibility: visible !important;
}
} }
.big-icon-svg{ .big-icon-svg{
& > .bg{padding:.3rem;width: 40px;height:40px;} & > .bg{padding:.3rem;width: 40px;height:40px;}

View file

@ -1,12 +1,20 @@
#glidera { #glidera {
.glidera-lead { .glidera-lead {
margin: 1rem; margin: 2rem 1rem;
color: $dark-gray;
font-size: 20px;
line-height: 1.4;
text-align: center;
}
.glidera-text {
margin: 2rem 1rem;
color: $mid-gray; color: $mid-gray;
font-size: 18px; font-size: 16px;
line-height: 1.4;
text-align: center; text-align: center;
} }
.disclosure { .disclosure {
color: $mid-gray; color: $light-gray;
font-size: 12px; font-size: 12px;
text-align: left; text-align: left;
margin: 1rem; margin: 1rem;

View file

@ -16,16 +16,20 @@
background-image: url("../img/icon-amazon.svg"); background-image: url("../img/icon-amazon.svg");
} }
.bg { .bg {
&.wallet{ &.wallet {
padding: .25rem padding: .25rem
} }
} }
.card{ .card {
.item { .item {
color: #444; color: #444;
border-top:none; border-top:none;
padding-bottom: 1.5rem; padding-bottom: 1rem;
padding-top:1.5rem; padding-top:1rem;
&.item-extra-padding {
padding-top: 1.5rem;
padding-bottom: 1.5rem;
}
} }
.item-sub { .item-sub {
&:first-child:before { &:first-child:before {
@ -85,4 +89,18 @@
color: #666; color: #666;
font-size: 38px; font-size: 38px;
} }
.tab-home {
&__logo {
height: 18px;
position: relative;
top: 3px;
}
&__wallet {
&__multisig-number {
font-size: .8rem;
font-weight: 300;
color: $light-gray;
}
}
}
} }

View file

@ -12,7 +12,7 @@
padding-bottom: .5rem; padding-bottom: .5rem;
@media(max-width: 480px) { @media(max-width: 480px) {
input { input {
font-size: 12px; font-size: 14px;
} }
} }
.icon { .icon {

View file

@ -47,11 +47,21 @@
color: $dark-gray; color: $dark-gray;
padding-top: 1.3rem; padding-top: 1.3rem;
padding-bottom: 1.3rem; padding-bottom: 1.3rem;
&.has-setting-value {
padding-top: .65rem;
padding-bottom: .65rem;
}
&.item-divider { &.item-divider {
color: $mid-gray; color: $mid-gray;
padding-bottom: .5rem; padding-bottom: .5rem;
font-size: .9rem; font-size: .9rem;
} }
.icon {
color: $light-gray;
}
}
.item-note {
color: $light-gray;
} }
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View file

@ -5,7 +5,7 @@
<desc>Created with sketchtool.</desc> <desc>Created with sketchtool.</desc>
<defs></defs> <defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Icons" transform="translate(-369.000000, -769.000000)" stroke="#8F8F90"> <g id="Icons" transform="translate(-369.000000, -769.000000)" stroke="#9b9bab">
<g id="icons/list-items/sync" transform="translate(370.000000, 770.000000)"> <g id="icons/list-items/sync" transform="translate(370.000000, 770.000000)">
<g id="icon/info"> <g id="icon/info">
<g> <g>
@ -18,4 +18,4 @@
</g> </g>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

View file

@ -5,7 +5,7 @@
<desc>Created with sketchtool.</desc> <desc>Created with sketchtool.</desc>
<defs></defs> <defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Icons" transform="translate(-185.000000, -769.000000)" stroke="#8F8F90"> <g id="Icons" transform="translate(-185.000000, -769.000000)" stroke="#9b9bab">
<g id="icons/list-items/sync" transform="translate(186.000000, 770.000000)"> <g id="icons/list-items/sync" transform="translate(186.000000, 770.000000)">
<g id="Group" transform="translate(0.386364, 0.370709)"> <g id="Group" transform="translate(0.386364, 0.370709)">
<path d="M0,16.3112128 L0,-1.77635684e-15 L12.3636364,-1.77635684e-15 C13.2136364,-1.77635684e-15 13.9090909,0.667276888 13.9090909,1.48283753 L13.9090909,14.8283753 C13.9090909,15.6439359 13.2136364,16.3112128 12.3636364,16.3112128 L0,16.3112128 L0,16.3112128 Z" id="Shape"></path> <path d="M0,16.3112128 L0,-1.77635684e-15 L12.3636364,-1.77635684e-15 C13.2136364,-1.77635684e-15 13.9090909,0.667276888 13.9090909,1.48283753 L13.9090909,14.8283753 C13.9090909,15.6439359 13.2136364,16.3112128 12.3636364,16.3112128 L0,16.3112128 L0,16.3112128 Z" id="Shape"></path>
@ -17,4 +17,4 @@
</g> </g>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

Before After
Before After

View file

@ -5,7 +5,7 @@
<desc>Created with sketchtool.</desc> <desc>Created with sketchtool.</desc>
<defs></defs> <defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Icons" transform="translate(-802.000000, -769.000000)" stroke="#8F8F90"> <g id="Icons" transform="translate(-802.000000, -769.000000)" stroke="#9b9bab">
<g id="media-24px-outline-1_flash-21" transform="translate(802.723270, 769.877358)"> <g id="media-24px-outline-1_flash-21" transform="translate(802.723270, 769.877358)">
<g id="Group"> <g id="Group">
<polygon id="Shape" points="10 0 0 11 9 11 8 18 18 7 9 7"></polygon> <polygon id="Shape" points="10 0 0 11 9 11 8 18 18 7 9 7"></polygon>
@ -13,4 +13,4 @@
</g> </g>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 841 B

After

Width:  |  Height:  |  Size: 842 B

Before After
Before After

View file

@ -5,7 +5,7 @@
<desc>Created with sketchtool.</desc> <desc>Created with sketchtool.</desc>
<defs></defs> <defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Icons" transform="translate(-324.000000, -770.000000)" stroke="#8F8F90" stroke-width="0.7"> <g id="Icons" transform="translate(-324.000000, -770.000000)" stroke="#9b9bab" stroke-width="0.7">
<g id="icons/list-items/sync" transform="translate(324.000000, 770.000000)"> <g id="icons/list-items/sync" transform="translate(324.000000, 770.000000)">
<g id="Group" transform="translate(0.365217, 0.365217)"> <g id="Group" transform="translate(0.365217, 0.365217)">
<polyline id="Shape" points="10.5913043 11.6869565 0 11.6869565 0 0 16.0695652 0 16.0695652 7.96173913"></polyline> <polyline id="Shape" points="10.5913043 11.6869565 0 11.6869565 0 0 16.0695652 0 16.0695652 7.96173913"></polyline>
@ -19,4 +19,4 @@
</g> </g>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

View file

@ -5,7 +5,7 @@
<desc>Created with sketchtool.</desc> <desc>Created with sketchtool.</desc>
<defs></defs> <defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Icons" transform="translate(-757.000000, -769.000000)" stroke="#8F8F90"> <g id="Icons" transform="translate(-757.000000, -769.000000)" stroke="#9b9bab">
<g id="ui-24px-outline-2_alert-circle-?" transform="translate(758.000000, 770.000000)"> <g id="ui-24px-outline-2_alert-circle-?" transform="translate(758.000000, 770.000000)">
<g id="Group"> <g id="Group">
<circle id="Oval" cx="9" cy="9" r="9"></circle> <circle id="Oval" cx="9" cy="9" r="9"></circle>
@ -15,4 +15,4 @@
</g> </g>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

View file

@ -5,7 +5,7 @@
<desc>Created with sketchtool.</desc> <desc>Created with sketchtool.</desc>
<defs></defs> <defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Icons" transform="translate(-634.000000, -770.000000)" stroke="#8F8F90" stroke-width="0.7"> <g id="Icons" transform="translate(-634.000000, -770.000000)" stroke="#9b9bab" stroke-width="0.7">
<g id="icons/list-items/sync" transform="translate(634.000000, 770.000000)"> <g id="icons/list-items/sync" transform="translate(634.000000, 770.000000)">
<g id="Group" transform="translate(0.403361, 0.403361)"> <g id="Group" transform="translate(0.403361, 0.403361)">
<path d="M7.41176471,6.45378151 L7.41176471,9.68067227" id="Shape"></path> <path d="M7.41176471,6.45378151 L7.41176471,9.68067227" id="Shape"></path>
@ -18,4 +18,4 @@
</g> </g>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="159px" height="16px" viewBox="0 0 159 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch -->
<title>Group@1x</title>
<desc>Created with Sketch.</desc>
<defs>
<filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="filter-1">
<feOffset dx="0.5" dy="0.5" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="0" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.0663185009 0" in="shadowBlurOuter1" type="matrix" result="shadowMatrixOuter1"></feColorMatrix>
<feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
<feGaussianBlur stdDeviation="1" in="shadowOffsetInner1" result="shadowBlurInner1"></feGaussianBlur>
<feComposite in="shadowBlurInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0" in="shadowInnerInner1" type="matrix" result="shadowMatrixInner1"></feColorMatrix>
<feMerge>
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
<feMergeNode in="shadowMatrixInner1"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Login" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="new-2" sketch:type="MSArtboardGroup" transform="translate(-735.000000, -171.000000)">
<g id="Group" sketch:type="MSLayerGroup" transform="translate(736.000000, 171.000000)">
<path d="M71.4408381,10.856186 C72.6947093,13.3192708 75.2877935,15.0106827 78.2832665,15.0106827 C81.2787395,15.0106827 83.8718236,13.3192708 85.1256949,10.856186 L85.1256979,10.8561853 L142.032872,10.856186 C143.286744,13.3192708 145.879828,15.0106827 148.875301,15.0106827 C153.097385,15.0106827 156.52006,11.6504269 156.52006,7.50534137 C156.52006,3.36025579 153.097385,0 148.875301,0 C145.412202,0 142.486933,2.26072789 141.54712,5.36095812 L85.611447,5.36095812 C84.6716339,2.26072789 81.7463651,0 78.2832665,0 C74.8201679,0 71.894899,2.26072789 70.955086,5.36095812 L14.9264673,5.36095812 C13.9866542,2.26072789 11.0613854,0 7.59828677,0 C3.3762027,0 -0.046472702,3.36025579 -0.046472702,7.50534137 C-0.046472702,11.6504269 3.3762027,15.0106827 7.59828677,15.0106827 C10.5937598,15.0106827 13.1868439,13.3192708 14.4407152,10.856186 L71.4408351,10.8561853 Z" id="Oval-14" fill="#2C3E50" filter="url(#filter-1)" sketch:type="MSShapeGroup"></path>
<circle id="Oval-12" fill="#7A8C9E" sketch:type="MSShapeGroup" cx="7.5" cy="7.5" r="4.5"></circle>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="159px" height="18px" viewBox="0 0 159 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch -->
<title>Group</title>
<desc>Created with Sketch.</desc>
<defs>
<filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="filter-1">
<feOffset dx="0.5" dy="0.5" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="0" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.0663185009 0" in="shadowBlurOuter1" type="matrix" result="shadowMatrixOuter1"></feColorMatrix>
<feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
<feGaussianBlur stdDeviation="1" in="shadowOffsetInner1" result="shadowBlurInner1"></feGaussianBlur>
<feComposite in="shadowBlurInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0" in="shadowInnerInner1" type="matrix" result="shadowMatrixInner1"></feColorMatrix>
<feMerge>
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
<feMergeNode in="shadowMatrixInner1"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Login" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="new-3" sketch:type="MSArtboardGroup" transform="translate(-732.000000, -204.000000)">
<g id="Group" sketch:type="MSLayerGroup" transform="translate(733.000000, 204.724993)">
<path d="M71.376385,10.4695498 C72.6302562,12.9326346 75.2233404,14.6240465 78.2188133,14.6240465 C81.2142863,14.6240465 83.8073705,12.9326346 85.0612417,10.4695498 L85.0612448,10.4695491 L141.968419,10.4695498 C143.222291,12.9326346 145.815375,14.6240465 148.810848,14.6240465 C153.032932,14.6240465 156.455607,11.2637907 156.455607,7.11870514 C156.455607,2.97361957 153.032932,-0.386636224 148.810848,-0.386636224 C145.347749,-0.386636224 142.42248,1.87409167 141.482667,4.9743219 L85.5469939,4.9743219 C84.6071808,1.87409167 81.6819119,-0.386636224 78.2188133,-0.386636224 C74.7557148,-0.386636224 71.8304459,1.87409167 70.8906328,4.9743219 L14.8620142,4.9743219 C13.9222011,1.87409167 10.9969322,-0.386636224 7.53383365,-0.386636224 C3.31174957,-0.386636224 -0.110925827,2.97361957 -0.110925827,7.11870514 C-0.110925827,11.2637907 3.31174957,14.6240465 7.53383365,14.6240465 C10.5293066,14.6240465 13.1223908,12.9326346 14.376262,10.4695498 L71.3763819,10.4695491 Z" id="Oval-14" fill="#2C3E50" filter="url(#filter-1)" sketch:type="MSShapeGroup"></path>
<rect id="Rectangle-81" fill="#7A8C9E" sketch:type="MSShapeGroup" x="9.82695588" y="6.5" width="64" height="2"></rect>
<circle id="Oval-12" fill="#7A8C9E" sketch:type="MSShapeGroup" cx="7.63363776" cy="7.31145467" r="4.5"></circle>
<circle id="Oval-15" fill="#7A8C9E" sketch:type="MSShapeGroup" cx="78.0715917" cy="7.31145467" r="4.5"></circle>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="159px" height="18px" viewBox="0 0 159 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<!-- Generator: Sketch 3.0.4 (8053) - http://www.bohemiancoding.com/sketch -->
<title>Group</title>
<desc>Created with Sketch.</desc>
<defs>
<filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="filter-1">
<feOffset dx="0.5" dy="0.5" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="0" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.0663185009 0" in="shadowBlurOuter1" type="matrix" result="shadowMatrixOuter1"></feColorMatrix>
<feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
<feGaussianBlur stdDeviation="1" in="shadowOffsetInner1" result="shadowBlurInner1"></feGaussianBlur>
<feComposite in="shadowBlurInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0" in="shadowInnerInner1" type="matrix" result="shadowMatrixInner1"></feColorMatrix>
<feMerge>
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
<feMergeNode in="shadowMatrixInner1"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Login" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="new-3" sketch:type="MSArtboardGroup" transform="translate(-726.000000, -145.173121)">
<g id="Group" sketch:type="MSLayerGroup" transform="translate(727.000000, 146.000000)">
<path d="M71.4408381,10.856186 C72.6947093,13.3192708 75.2877935,15.0106827 78.2832665,15.0106827 C81.2787395,15.0106827 83.8718236,13.3192708 85.1256949,10.856186 L85.1256979,10.8561853 L142.032872,10.856186 C143.286744,13.3192708 145.879828,15.0106827 148.875301,15.0106827 C153.097385,15.0106827 156.52006,11.6504269 156.52006,7.50534137 C156.52006,3.36025579 153.097385,0 148.875301,0 C145.412202,0 142.486933,2.26072789 141.54712,5.36095812 L85.611447,5.36095812 C84.6716339,2.26072789 81.7463651,0 78.2832665,0 C74.8201679,0 71.894899,2.26072789 70.955086,5.36095812 L14.9264673,5.36095812 C13.9866542,2.26072789 11.0613854,0 7.59828677,0 C3.3762027,0 -0.046472702,3.36025579 -0.046472702,7.50534137 C-0.046472702,11.6504269 3.3762027,15.0106827 7.59828677,15.0106827 C10.5937598,15.0106827 13.1868439,13.3192708 14.4407152,10.856186 L71.4408351,10.8561853 Z" id="Oval-21" fill="#2C3E50" filter="url(#filter-1)" sketch:type="MSShapeGroup"></path>
<rect id="Rectangle-83" fill="#7A8C9E" sketch:type="MSShapeGroup" x="81" y="7" width="64" height="2"></rect>
<circle id="Oval-22" fill="#7A8C9E" sketch:type="MSShapeGroup" cx="149.5" cy="7.5" r="4.5"></circle>
<rect id="Rectangle-84" fill="#7A8C9E" sketch:type="MSShapeGroup" x="10" y="7" width="64" height="2"></rect>
<circle id="Oval-19" fill="#7A8C9E" sketch:type="MSShapeGroup" cx="7.5" cy="7.5" r="4.5"></circle>
<circle id="Oval-20" fill="#7A8C9E" sketch:type="MSShapeGroup" cx="78.5" cy="7.5" r="4.5"></circle>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View file

@ -11,7 +11,7 @@
<i class="icon big-icon-svg"> <i class="icon big-icon-svg">
<img src="img/icon-wallet.svg" class="bg"/> <img src="img/icon-wallet.svg" class="bg"/>
</i> </i>
<span class="add-type" translate>New Personal Wallet</h2> <span class="add-type" translate>New personal wallet</h2>
<i class="icon bp-arrow-right"></i> <i class="icon bp-arrow-right"></i>
</a> </a>
@ -19,7 +19,7 @@
<i class="icon big-icon-svg"> <i class="icon big-icon-svg">
<img src="img/icon-wallet.svg" class="bg"/> <img src="img/icon-wallet.svg" class="bg"/>
</i> </i>
<span class="add-type" translate>Create Shared Wallet</h2> <span class="add-type" translate>Create shared wallet</h2>
<i class="icon bp-arrow-right"></i> <i class="icon bp-arrow-right"></i>
</a> </a>

View file

@ -10,7 +10,7 @@
<ion-content scroll="false"> <ion-content scroll="false">
<div> <div>
<div class="item item-no-bottom-border" translate>Recipient</div> <div class="item item-no-bottom-border recipient-label" translate>Recipient</div>
<div class="item item-text-wrap item-icon-left bitcoin-address" ng-class="{'item-big-icon-left':cardId}"> <div class="item item-text-wrap item-icon-left bitcoin-address" ng-class="{'item-big-icon-left':cardId}">
<i class="icon big-icon-svg" ng-if="isWallet"> <i class="icon big-icon-svg" ng-if="isWallet">
@ -30,17 +30,21 @@
<div class="amount-bar"> <div class="amount-bar">
<div class="title" translate>Amount</div> <div class="title" translate>Amount</div>
<a class="postfix" ng-click="toggleAlternative()" ng-show="showAlternativeAmount">{{alternativeIsoCode}}</a>
<a class="postfix" ng-click="toggleAlternative()" ng-show="!showAlternativeAmount">{{unitName}}</a>
</div> </div>
<div class="amount"> <div class="amount">
<div class="text-light text-black m15b" ng-class="{'size-28': smallFont, 'size-36': !smallFont, 'light': !amount}"><span>{{amount || "0.00" }}</div> <div class="amount__editable" ng-class="{'amount__editable--minimize': smallFont, 'amount__editable--standard': !smallFont, 'amount__editable--placeholder': !amount}">
<div class="text-light text-black" ng-class="{'size-16': smallFont, 'size-17': !smallFont, 'light': !amountResult}" ng-show="!showAlternativeAmount"> <span class="amount__number">{{amount || "0.00" }}</span>
{{globalResult}} <span class="label gray text-white radius">{{amountResult || '0.00'}} {{alternativeIsoCode}}</span> <a class="amount__currency-toggle" ng-click="toggleAlternative()" ng-show="showAlternativeAmount">{{alternativeIsoCode}}</a>
<a class="amount__currency-toggle" ng-click="toggleAlternative()" ng-show="!showAlternativeAmount">{{unitName}}</a>
</div> </div>
<div class="text-light text-black size-17" ng-show="showAlternativeAmount"> <div ng-class="{'amount__results--minimize': smallFont, 'amount__results--standard': !smallFont, 'amount__results--placeholder': !amountResult}" ng-show="!showAlternativeAmount">
{{globalResult}} <span class="label gray text-white radius">{{alternativeResult || '0.00'}} {{unitName}}</span> <div class="amount__result" ng-show="globalResult">{{globalResult}} {{unitName}}</div>
<div class="amount__result-equiv">&asymp; {{amountResult || '0.00'}} {{alternativeIsoCode}}</div>
</div>
<div ng-class="{'amount__results--minimize': smallFont, 'amount__results--standard': !smallFont, 'amount__results--placeholder': !amountResult}" ng-show="showAlternativeAmount">
<div class="amount__result" ng-show="globalResult">{{globalResult}} {{alternativeIsoCode}}</div>
<div class="amount__result-equiv">{{alternativeResult || '0.00'}} {{unitName}}</div>
</div> </div>
</div> </div>
</div> </div>
@ -56,28 +60,28 @@
<div class="col digit" ng-click="pushDigit('7')">7</div> <div class="col digit" ng-click="pushDigit('7')">7</div>
<div class="col digit" ng-click="pushDigit('8')">8</div> <div class="col digit" ng-click="pushDigit('8')">8</div>
<div class="col digit" ng-click="pushDigit('9')">9</div> <div class="col digit" ng-click="pushDigit('9')">9</div>
<div class="col operator" ng-click="pushOperator('/')">/</div> <div class="col operator" ng-click="pushOperator('/')">&divide;</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col digit" ng-click="pushDigit('4')">4</div> <div class="col digit" ng-click="pushDigit('4')">4</div>
<div class="col digit" ng-click="pushDigit('5')">5</div> <div class="col digit" ng-click="pushDigit('5')">5</div>
<div class="col digit" ng-click="pushDigit('6')">6</div> <div class="col digit" ng-click="pushDigit('6')">6</div>
<div class="col operator" ng-click="pushOperator('x')">x</div> <div class="col operator" ng-click="pushOperator('x')">&times;</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col digit" ng-click="pushDigit('1')">1</div> <div class="col digit" ng-click="pushDigit('1')">1</div>
<div class="col digit" ng-click="pushDigit('2')">2</div> <div class="col digit" ng-click="pushDigit('2')">2</div>
<div class="col digit" ng-click="pushDigit('3')">3</div> <div class="col digit" ng-click="pushDigit('3')">3</div>
<div class="col operator" ng-click="pushOperator('+')">+</div> <div class="col operator" ng-click="pushOperator('+')">&plus;</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col digit" ng-click="pushDigit('.')">.</div> <div class="col digit" ng-click="pushDigit('.')">.</div>
<div class="col digit" ng-click="pushDigit('0')">0</div> <div class="col digit" ng-click="pushDigit('0')">0</div>
<div class="col digit icon ion-backspace-outline" ng-click="removeDigit()"></div> <div class="col digit icon ion-backspace-outline" ng-click="removeDigit()"></div>
<div class="col operator" ng-click="pushOperator('-')">-</div> <div class="col operator" ng-click="pushOperator('-')">&minus;</div>
</div> </div>
</div> </div>
</ion-content> </ion-content>

View file

@ -2,7 +2,7 @@
<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>BitPay Visa&reg; Card</ion-nav-title> <ion-nav-title>BitPay Visa<sup>&reg;</sup> Card</ion-nav-title>
<ion-nav-buttons side="secondary"> <ion-nav-buttons side="secondary">
<button class="button back-button" ng-show="!error" ui-sref="tabs.bitpayCard.preferences"> <button class="button back-button" ng-show="!error" ui-sref="tabs.bitpayCard.preferences">
<i class="icon ion-ios-gear-outline"></i> <i class="icon ion-ios-gear-outline"></i>
@ -20,8 +20,9 @@
<div class="amount"> <div class="amount">
<div ng-if="bitpayCard.bitpayCardCurrentBalance" ng-click="bitpayCard.update()"> <div ng-if="bitpayCard.bitpayCardCurrentBalance" ng-click="bitpayCard.update()">
<div class="size-36 m20b">${{bitpayCard.bitpayCardCurrentBalance}}</div> <div class="size-36 m20b">${{bitpayCard.bitpayCardCurrentBalance}}</div>
<a class="button button-positive button-small" <a class="button button-primary button-small"
ui-sref="tabs.bitpayCard.amount({'cardId': cardId, 'toName': 'BitPay Card'})" translate> style="padding-left: 1em; padding-right: 1em;"
ui-sref="tabs.bitpayCard.amount({'cardId': cardId, 'toName': 'BitPay Card'})" translate>
Add Funds Add Funds
</a> </a>
</div> </div>

View file

@ -1,43 +1,40 @@
<ion-view id="bitpayCard-intro" hide-tabs> <ion-view id="bitpayCard-intro" class="onboarding" hide-tabs>
<ion-nav-bar class="bar-stable"> <ion-nav-bar>
<ion-nav-back-button> <ion-nav-back-button>
</ion-nav-back-button> </ion-nav-back-button>
<ion-nav-title></ion-nav-title> <ion-nav-title></ion-nav-title>
<ion-nav-buttons side="secondary"> <ion-nav-buttons side="secondary">
<button class="button back-button button-clear" ng-click="orderBitPayCard()"> <button class="button button-clear" ng-click="bitPayCardInfo()">
<i class="icon ion-ios-information-outline"></i> <i class="icon ion-ios-information-outline bitpayCard__info"></i>
</button> </button>
</ion-nav-buttons> </ion-nav-buttons>
</ion-nav-bar> </ion-nav-bar>
<ion-content scroll="false"> <ion-content scroll="false">
<div class="text-center padding"> <div class="bitpayCard__illustration">
<img src="img/bitpay-card-visa.svg" width="100%"> <img class="bitpayCard__illustration__img" src="img/bitpay-card-visa.svg">
</div> </div>
<ion-slide-box> <ion-slide-box>
<ion-slide> <ion-slide>
<p translate> <p class="slider__text" translate>
Turn bitcoin into dollars, swipe anywhere Visa&reg; is accepted. Turn bitcoin into dollars, swipe anywhere Visa<sup>&reg;</sup> is accepted.
</p> </p>
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<p translate> <p class="slider__text" translate>
<span translate>Get local cash anywhere you go, from any Visa&reg;-compatible ATM.</span> <span translate>Get local cash anywhere you go, from any Visa<sup>&reg;</sup> compatible ATM. ATM bank fees may apply.</span>
<div translate class="size-10 text-center">
*ATM bank fees may apply
</div>
</p> </p>
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<p translate> <p class="slider__text" translate>
Pay 0% fees to turn bitcoin into dollars. Pay 0% fees to turn bitcoin into dollars.
</p> </p>
</ion-slide> </ion-slide>
</ion-slide-box> </ion-slide-box>
<div class="cta-button"> <div class="cta-button">
<button class="button button-block button-primary" ng-click="orderBitPayCard()" translate> <button class="button button-standard button-primary" ng-click="orderBitPayCard()" translate>
Order the BitPay Card Order the BitPay Card
</button> </button>
<button class="button button-block button-transparent text-white m10t" ng-click="connectBitPayCard()" translate> <button class="button button-standard button-secondary button-clear" ng-click="connectBitPayCard()" translate>
Connect my BitPay Card Connect my BitPay Card
</button> </button>
</div> </div>

View file

@ -104,7 +104,7 @@
Claim code: <span class="text-bold" copy-to-clipboard="buy.giftCard.claimCode">{{buy.giftCard.claimCode}}</span> Claim code: <span class="text-bold" copy-to-clipboard="buy.giftCard.claimCode">{{buy.giftCard.claimCode}}</span>
</div> </div>
<div class="m10t"> <div class="m10t">
<button class="button button-positive" <button class="button button-primary"
ng-click="openExternalLink('https://www.amazon.com/gc/redeem?claimCode=' + buy.giftCard.claimCode)"> ng-click="openExternalLink('https://www.amazon.com/gc/redeem?claimCode=' + buy.giftCard.claimCode)">
Redeem Now Redeem Now
</button> </button>

View file

@ -20,6 +20,11 @@
</div> </div>
</div> </div>
<div class="info"> <div class="info">
<div class="item single-line" ng-if="_paypro">
<span class="label" translate>Payment Expires:</span>
<span class="item-note" ng-if="!paymentExpired.value">{{remainingTimeStr.value}}</span>
<span class="item-note" ng-if="paymentExpired.value" ng-style="{'color': 'red'}" translate>Expired</span>
</div>
<div class="item"> <div class="item">
<span class="label" translate>To</span> <span class="label" translate>To</span>
<span class="payment-proposal-to"> <span class="payment-proposal-to">
@ -85,8 +90,7 @@
<slide-to-accept-success <slide-to-accept-success
slide-success-show="sendStatus === 'success'" slide-success-show="sendStatus === 'success'"
slide-success-on-confirm="onSuccessConfirm()" slide-success-on-confirm="onSuccessConfirm()"
slide-success-hide-on-confirm="true" slide-success-hide-on-confirm="true">
>
<span ng-hide="wallet.m > 1">Payment Sent</span> <span ng-hide="wallet.m > 1">Payment Sent</span>
<span ng-show="wallet.m > 1">Proposal Created</span> <span ng-show="wallet.m > 1">Proposal Created</span>
</slide-to-accept-success> </slide-to-accept-success>
@ -95,8 +99,7 @@
wallet-selector-wallets="wallets" wallet-selector-wallets="wallets"
wallet-selector-selected-wallet="wallet" wallet-selector-selected-wallet="wallet"
wallet-selector-show="showWallets" wallet-selector-show="showWallets"
wallet-selector-on-select="onWalletSelect" wallet-selector-on-select="onWalletSelect">
>
</wallet-selector> </wallet-selector>
</ion-view> </ion-view>

View file

@ -28,31 +28,26 @@
</div> </div>
<div class="text-center small-10 small-centered columns" ng-show="!showOauthForm"> <div class="text-center small-10 small-centered columns" ng-show="!showOauthForm">
<p class="glidera-lead">You can buy and sell Bitcoin with a US bank account directly in this app.</p> <p class="glidera-lead">You can buy and sell Bitcoin with a US bank account directly in this app.</p>
<p class="glidera-text">Connect your Glidera account to get started.</p>
<p class="disclosure">
DISCLOSURE.<br>
Glidera Inc. (Glidera) is providing the service of buying or selling bitcoin to BitPay users. To enable this
service, Glidera has registered with US Treasury Departments FinCEN as a Money Service Business
(#31000042625755). Users of BitPay must agree to the service agreement presented by Glidera prior to obtaining
Glideras service of buying or selling bitcoins. Service available in U.S. and Canada only. In U.S. (buy & sell) CA, GA, IL, KS,
MA, MD, MO, MT, MN, SC, TX, AZ, CO, DE, ME, NJ, PA, TN, UT, NV, WI. In Canada (buy & sell) AB, BC, MB, NB, NL, NS, NT, NU,
ON, PE, SK, YT.
</p>
<p class="m20t text-gray size-12">Connect your Glidera account to get started</p>
<button class="button button-standard button-primary" <button class="button button-standard button-primary"
ng-click="openExternalLink(glidera.getAuthenticateUrl()); showOauthForm = true"> ng-click="openExternalLink(glidera.getAuthenticateUrl()); showOauthForm = true">
Connect to Glidera Connect to Glidera
</button> </button>
<div class="m10t"> <div class="m10t">
<a href ng-click="showOauthForm = true" class="text-gray size-12"> <a href ng-click="showOauthForm = true" class="button button-standard button-secondary buttion-clear" translate>
Do you already have the Oauth Code? Have the OAuth Code?
</a> </a>
</div> </div>
<div class="disclosure">
<p translate>Glidera Inc. (Glidera) is providing the service of buying or selling bitcoin to BitPay users. To enable this service, Glidera has registered with US Treasury Departments FinCEN as a Money Service Business (#31000042625755). Users of BitPay must agree to the service agreement presented by Glidera prior to obtaining Glideras service of buying or selling bitcoin.</p>
<p>Service is available in the U.S. and Canada. In the U.S. AZ, CA, CO, DE, GA, IL, KS, MA, MD, ME, MN, MO, MT, NJ, NV, PA, SC, TN, TX, UT, WI. In Canada AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, SK, YT.</p>
</div>
</div> </div>
<div ng-show="showOauthForm"> <div ng-show="showOauthForm">
<form name="oauthCodeForm" ng-submit="glidera.submitOauthCode(code)" novalidate> <form class="settings" name="oauthCodeForm" ng-submit="glidera.submitOauthCode(code)" novalidate>
<div class="list"> <div class="list settings-input-group">
<label class="item item-input item-stacked-label"> <label class="item item-input item-stacked-label">
<span class="input-label">OAuth Code</span> <span class="input-label">OAuth Code</span>
<input type="text" <input type="text"
@ -60,21 +55,7 @@
ng-attr-placeholder="{{'Paste the authorization code here'}}" required> ng-attr-placeholder="{{'Paste the authorization code here'}}" required>
</label> </label>
</div> </div>
<div class="row"> <input class="button button-standard button-primary" type="submit" value="Connect Glidera Account" ng-disabled="oauthCodeForm.$invalid">
<div class="col">
<input type="button"
value="Cancel"
class="button button-standard button-light"
ng-click="showOauthForm = false">
</div>
<div class="col">
<input
class="button button-standard button-primary"
type="submit"
value="Get started"
ng-disabled="oauthCodeForm.$invalid">
</div>
</div>
</form> </form>
</div> </div>
</div> </div>

View file

@ -10,7 +10,7 @@
<span class="item-note m10l"> <span class="item-note m10l">
{{wallet.status.availableBalanceStr}} {{wallet.status.availableBalanceStr}}
</span> </span>
<span class="item-note m10l" ng-show="wallet.n > 1 && wallet.isComplete()"> <span class="item-note m10l wallet-number" ng-class="{'visible': wallet.n > 1 && wallet.isComplete()}">
{{wallet.m}}-of-{{wallet.n}} {{wallet.m}}-of-{{wallet.n}}
</span> </span>
</div> </div>

View file

@ -23,7 +23,7 @@
</div> </div>
</div> </div>
<div class="text-center"> <div class="text-center">
<button ng-disabled="!terms.accept3" class="button utton-block button-positive" ng-click="termsModal.hide(); confirm()" translate>Confirm & Finish</button> <button ng-disabled="!terms.accept3" class="button button-block button-primary" ng-click="termsModal.hide(); confirm()" translate>Confirm &amp; Finish</button>
</div> </div>
</div> </div>
</ion-modal-view> </ion-modal-view>

View file

@ -29,7 +29,7 @@
</span> </span>
<i class="icon bp-arrow-right"></i> <i class="icon bp-arrow-right"></i>
</a> </a>
<a class="item item-icon-right" ui-sref="tabs.preferences.preferencesEmail"> <a class="item has-setting-value item-icon-right" ui-sref="tabs.preferences.preferencesEmail">
<span class="setting-title" translate>Email Notifications</span> <span class="setting-title" translate>Email Notifications</span>
<span class="setting-value"> <span class="setting-value">
<span ng-if="!wallet.email" translate>Disabled</span> <span ng-if="!wallet.email" translate>Disabled</span>

View file

@ -20,7 +20,7 @@
</div> </div>
<button type="submit" <button type="submit"
class="button button-standard button-primary" class="button button-standard button-primary"
ng-disabled="disableSave" translate> ng-disabled="aliasForm.$invalid || (alias.value == walletAlias)" translate>
Save Save
</button> </button>
</form> </form>

View file

@ -37,7 +37,7 @@
</span> </span>
</div> </div>
<div class="box-notification warning ng-hide" ng-show="formData.noSignEnabled"> <div class="box-notification warning ng-hide warning-red" ng-show="formData.noSignEnabled">
<span class="size-14"> <span class="size-14">
<i class="ion-alert-circled"></i> <i class="ion-alert-circled"></i>
<span translate> <span translate>

View file

@ -1,9 +1,9 @@
<ion-view id="tab-home"> <ion-view id="tab-home">
<ion-nav-bar class="bar-royal"> <ion-nav-bar class="bar-royal">
<ion-nav-title>{{'Home' | translate}}</ion-nav-title> <ion-nav-title><img class="tab-home__logo" src="img/app/logo-negative.svg"></ion-nav-title>
</ion-nav-bar> </ion-nav-bar>
<ion-content class="padding"> <ion-content>
<ion-refresher <ion-refresher
ng-if="isAndroid" ng-if="isAndroid"
pulling-icon="ion-ios-refresh" pulling-icon="ion-ios-refresh"
@ -74,9 +74,6 @@
</i> </i>
<span> <span>
{{wallet.name || wallet.id}} {{wallet.name || wallet.id}}
<span class="size-12 text-light" ng-if="wallet.n > 1">
{{wallet.m}}-of-{{wallet.n}}
</span>
</span> </span>
<p> <p>
<span ng-if="!wallet.isComplete()" class="assertive" translate> <span ng-if="!wallet.isComplete()" class="assertive" translate>
@ -85,6 +82,9 @@
<span ng-if="wallet.isComplete()"> <span ng-if="wallet.isComplete()">
<span ng-if="!wallet.balanceHidden">{{wallet.status.availableBalanceStr}}</span> <span ng-if="!wallet.balanceHidden">{{wallet.status.availableBalanceStr}}</span>
<span ng-if="wallet.balanceHidden" translate>[Balance Hidden]</span> <span ng-if="wallet.balanceHidden" translate>[Balance Hidden]</span>
<span class="tab-home__wallet__multisig-number" ng-if="wallet.n > 1">
{{wallet.m}}-of-{{wallet.n}}
</span>
</span> </span>
&nbsp; &nbsp;
</p> </p>
@ -94,21 +94,21 @@
<a ng-repeat="card in bitpayCards" <a ng-repeat="card in bitpayCards"
ui-sref="tabs.bitpayCard({id:card.id})" ui-sref="tabs.bitpayCard({id:card.id})"
ng-if="bitpayCardEnabled && bitpayCards[0]" ng-if="bitpayCardEnabled && bitpayCards[0]"
class="item item-icon-left item-big-icon-left item-icon-right"> class="item item-sub item-icon-left item-big-icon-left item-icon-right">
<i class="icon big-icon-svg"> <i class="icon big-icon-svg">
<div class="bg icon-bitpay-card"></div> <div class="bg icon-bitpay-card"></div>
</i> </i>
<h2>BitPay Visa&reg; Card</h2> <span>BitPay Visa&reg; Card</span>
<p>{{cardsHistory[card.id].balance ? '$' + cardsHistory[card.id].balance : 'Add funds to get started'|translate}}</p> <p>{{cardsHistory[card.id].balance ? '$' + cardsHistory[card.id].balance : 'Add funds to get started'|translate}}</p>
<i class="icon bp-arrow-right"></i> <i class="icon bp-arrow-right"></i>
</a> </a>
<a ui-sref="tabs.bitpayCardIntro" <a ui-sref="tabs.bitpayCardIntro"
ng-if="bitpayCardEnabled && !bitpayCards[0] && externalServices.BitpayCard" ng-if="bitpayCardEnabled && !bitpayCards[0] && externalServices.BitpayCard"
class="item item-icon-left item-big-icon-left item-icon-right"> class="item item-sub item-icon-left item-big-icon-left item-icon-right">
<i class="icon big-icon-svg"> <i class="icon big-icon-svg">
<div class="bg icon-bitpay-card"></div> <div class="bg icon-bitpay-card"></div>
</i> </i>
<h2>BitPay Visa&reg; Card</h2> <span>BitPay Visa&reg; Card</span>
<p translate>Add your card</p> <p translate>Add your card</p>
<i class="icon bp-arrow-right"></i> <i class="icon bp-arrow-right"></i>
</a> </a>
@ -120,14 +120,16 @@
Buy &amp; Sell Bitcoin Buy &amp; Sell Bitcoin
<a ui-sref="tabs.buyandsell"><i class="icon ion-ios-plus-empty list-add-button"></i></a> <a ui-sref="tabs.buyandsell"><i class="icon ion-ios-plus-empty list-add-button"></i></a>
</div> </div>
<a ng-if="glideraEnabled" ui-sref="tabs.buyandsell.glidera" class="item item-sub item-icon-right"> <div>
<img src="img/glidera-logo.png" width="90"/> <a ng-if="glideraEnabled" ui-sref="tabs.buyandsell.glidera" class="item item-extra-padding item-sub item-icon-right">
<i class="icon bp-arrow-right"></i> <img src="img/glidera-logo.png" width="90"/>
</a> <i class="icon bp-arrow-right"></i>
<!-- disable coinbase for this release --> </a>
<!-- <a ng-if="coinbaseEnabled" ui-sref="exchange.coinbase" class="item"> <!-- disable coinbase for this release -->
<img src="img/coinbase-logo.png" width="90"> TODO <!-- <a ng-if="coinbaseEnabled" ui-sref="exchange.coinbase" class="item">
</a> --> <img src="img/coinbase-logo.png" width="90"> TODO
</a> -->
</div>
</div> </div>
<div class="list card" ng-if="wallets[0] && externalServices.AmazonGiftCards && amazonEnabled"> <div class="list card" ng-if="wallets[0] && externalServices.AmazonGiftCards && amazonEnabled">
@ -148,7 +150,7 @@
<i class="icon bp-arrow-down" ng-show="hideNextSteps"></i> <i class="icon bp-arrow-down" ng-show="hideNextSteps"></i>
</div> </div>
<div ng-show="!hideNextSteps"> <div ng-show="!hideNextSteps">
<a ui-sref="tabs.bitpayCardIntro" ng-if="!externalServices.BitpayCard && bitpayCardEnabled" class="item item-icon-left item-big-icon-left item-icon-right next-step"> <a ui-sref="tabs.bitpayCardIntro" ng-if="!externalServices.BitpayCard && bitpayCardEnabled" class="item item-sub item-icon-left item-big-icon-left item-icon-right next-step">
<i class="icon big-icon-svg"> <i class="icon big-icon-svg">
<div class="bg icon-bitpay-card"></div> <div class="bg icon-bitpay-card"></div>
</i> </i>

View file

@ -58,7 +58,7 @@
<!-- <i class="icon bp&#45;arrow&#45;right"></i> --> <!-- <i class="icon bp&#45;arrow&#45;right"></i> -->
<!-- </a> --> <!-- </a> -->
<!-- --> <!-- -->
<a class="item item-icon-left item-icon-right" ui-sref="tabs.unit"> <a class="item has-setting-value item-icon-left item-icon-right" ui-sref="tabs.unit">
<i class="icon big-icon-svg"> <i class="icon big-icon-svg">
<img src="img/icon-unit.svg" class="bg"/> <img src="img/icon-unit.svg" class="bg"/>
</i> </i>
@ -69,7 +69,7 @@
<i class="icon bp-arrow-right"></i> <i class="icon bp-arrow-right"></i>
</a> </a>
<a class="item item-icon-left item-icon-right" ui-sref="tabs.altCurrency"> <a class="item has-setting-value item-icon-left item-icon-right" ui-sref="tabs.altCurrency">
<i class="icon big-icon-svg"> <i class="icon big-icon-svg">
<img src="img/icon-alternative-currency.svg" class="bg"/> <img src="img/icon-alternative-currency.svg" class="bg"/>
</i> </i>
@ -80,7 +80,7 @@
<i class="icon bp-arrow-right"></i> <i class="icon bp-arrow-right"></i>
</a> </a>
<a class="item item-icon-left item-icon-right" ui-sref="tabs.fee"> <a class="item has-setting-value item-icon-left item-icon-right" ui-sref="tabs.fee">
<i class="icon big-icon-svg"> <i class="icon big-icon-svg">
<img src="img/icon-network.svg" class="bg"/> <img src="img/icon-network.svg" class="bg"/>
</i> </i>