Merge branch 'ref/design' of https://github.com/bitpay/bitpay-wallet into feature/external_link_open_system_browser
# Conflicts: # www/views/glidera.html
|
|
@ -13,12 +13,12 @@
|
||||||
"gitHubRepoName": "bitpay-wallet",
|
"gitHubRepoName": "bitpay-wallet",
|
||||||
"disclaimerUrl": "",
|
"disclaimerUrl": "",
|
||||||
"url": "https://bitpay.com",
|
"url": "https://bitpay.com",
|
||||||
"appDescription": "Secure Bitcoin Storage",
|
"appDescription": "Secure Bitcoin Wallet",
|
||||||
"winAppName": "BitPayWallet",
|
"winAppName": "BitPayWallet",
|
||||||
"wpPublisherId": "{}",
|
"wpPublisherId": "{}",
|
||||||
"wpProductId": "{}",
|
"wpProductId": "{}",
|
||||||
"pushSenderId": "1036948132229",
|
"pushSenderId": "1036948132229",
|
||||||
"description": "Secure Bitcoin Storage",
|
"description": "Secure Bitcoin Wallet",
|
||||||
"version": "0.14.0",
|
"version": "0.14.0",
|
||||||
"androidVersion": "1",
|
"androidVersion": "1",
|
||||||
"_extraCSS": null,
|
"_extraCSS": null,
|
||||||
|
|
|
||||||
11968
public/css/copay.css
16611
public/js/copay.js
|
Before Width: | Height: | Size: 556 KiB After Width: | Height: | Size: 526 KiB |
|
Before Width: | Height: | Size: 590 KiB After Width: | Height: | Size: 550 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 87 KiB |
|
|
@ -116,7 +116,7 @@ angular.module('copayApp.controllers').controller('confirmController', function(
|
||||||
};
|
};
|
||||||
|
|
||||||
popupService.showPrompt(null, message, opts, function(res) {
|
popupService.showPrompt(null, message, opts, function(res) {
|
||||||
if (res) $scope.description = res;
|
if (typeof res != 'undefined') $scope.description = res;
|
||||||
$timeout(function() {
|
$timeout(function() {
|
||||||
$scope.$apply();
|
$scope.$apply();
|
||||||
}, 100);
|
}, 100);
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,20 @@ angular.module('copayApp.controllers').controller('txpDetailsController', functi
|
||||||
$scope.color = $scope.wallet.color;
|
$scope.color = $scope.wallet.color;
|
||||||
$scope.data = {};
|
$scope.data = {};
|
||||||
$scope.hasClick = platformInfo.hasClick;
|
$scope.hasClick = platformInfo.hasClick;
|
||||||
|
$scope.displayAmount = getDisplayAmount(tx.amountStr);
|
||||||
|
$scope.displayUnit = getDisplayUnit(tx.amountStr);
|
||||||
initActionList();
|
initActionList();
|
||||||
checkPaypro();
|
checkPaypro();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getDisplayAmount(amountStr) {
|
||||||
|
return amountStr.split(' ')[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDisplayUnit(amountStr) {
|
||||||
|
return amountStr.split(' ')[1];
|
||||||
|
}
|
||||||
|
|
||||||
function initActionList() {
|
function initActionList() {
|
||||||
$scope.actionList = [];
|
$scope.actionList = [];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
angular.module('copayApp.controllers').controller('backupWarningController', function($scope, $state, $timeout, $stateParams, $ionicModal) {
|
angular.module('copayApp.controllers').controller('backupWarningController', function($scope, $state, $timeout, $stateParams, $ionicModal) {
|
||||||
|
|
||||||
$scope.walletId = $stateParams.walletId;
|
$scope.walletId = $stateParams.walletId;
|
||||||
$scope.fromState = $stateParams.from;
|
$scope.fromState = $stateParams.from == 'onboarding' ? $stateParams.from + '.backupRequest' : $stateParams.from;
|
||||||
$scope.toState = $scope.fromState + ".backup";
|
$scope.toState = $stateParams.from + '.backup';
|
||||||
|
|
||||||
$scope.openPopup = function() {
|
$scope.openPopup = function() {
|
||||||
$ionicModal.fromTemplateUrl('views/includes/screenshotWarningModal.html', {
|
$ionicModal.fromTemplateUrl('views/includes/screenshotWarningModal.html', {
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,9 @@ angular.module('copayApp.controllers').controller('tabHomeController',
|
||||||
$scope.hideHomeTip = function() {
|
$scope.hideHomeTip = function() {
|
||||||
storageService.setHomeTipAccepted(false, function(error, value) {
|
storageService.setHomeTipAccepted(false, function(error, value) {
|
||||||
$scope.homeTip = false;
|
$scope.homeTip = false;
|
||||||
|
$timeout(function() {
|
||||||
|
$scope.$apply();
|
||||||
|
})
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function(
|
||||||
var CONTACTS_SHOW_LIMIT;
|
var CONTACTS_SHOW_LIMIT;
|
||||||
var currentContactsPage;
|
var currentContactsPage;
|
||||||
|
|
||||||
|
|
||||||
var updateList = function() {
|
var updateList = function() {
|
||||||
CONTACTS_SHOW_LIMIT = 10;
|
CONTACTS_SHOW_LIMIT = 10;
|
||||||
currentContactsPage = 0;
|
currentContactsPage = 0;
|
||||||
|
|
@ -103,11 +104,56 @@ angular.module('copayApp.controllers').controller('tabSendController', function(
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var updateHasFunds = function() {
|
||||||
|
$scope.hasFunds = null;
|
||||||
|
|
||||||
|
var wallets = profileService.getWallets({
|
||||||
|
onlyComplete: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!wallets || !wallets.length) {
|
||||||
|
$scope.hasFunds = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var index = 0;
|
||||||
|
lodash.each(wallets, function(w) {
|
||||||
|
walletService.getStatus(w, {}, function(err, status) {
|
||||||
|
++index;
|
||||||
|
if (err || !status) {
|
||||||
|
$log.error(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status.availableBalanceSat) {
|
||||||
|
$scope.hasFunds = true;
|
||||||
|
}
|
||||||
|
if (index == wallets.length) {
|
||||||
|
$scope.hasFunds = $scope.hasFunds || false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
$scope.$on("$ionicView.beforeEnter", function(event, data) {
|
$scope.$on("$ionicView.beforeEnter", function(event, data) {
|
||||||
$scope.formData = {
|
$scope.formData = {
|
||||||
search: null
|
search: null
|
||||||
};
|
};
|
||||||
updateList();
|
updateList();
|
||||||
|
updateHasFunds();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// This could probably be enhanced refactoring the routes abstract states
|
||||||
|
$scope.createWallet = function() {
|
||||||
|
$state.go('tabs.home').then(function() {
|
||||||
|
$state.go('tabs.add.create-personal');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.buyBitcoin = function() {
|
||||||
|
$state.go('tabs.home').then(function() {
|
||||||
|
$state.go('tabs.buyandsell.glidera');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,9 @@ $button-secondary-active-border: transparent;
|
||||||
&.button-secondary {
|
&.button-secondary {
|
||||||
&.button-standard {
|
&.button-standard {
|
||||||
@extend %button-standard;
|
@extend %button-standard;
|
||||||
|
& + .button-standard {
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,19 @@
|
||||||
padding-left: 74px;
|
padding-left: 74px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.icon-svg {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
> img {
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-clip: padding-box;
|
||||||
|
background-size: contain;
|
||||||
|
height: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.big-icon-svg {
|
.big-icon-svg {
|
||||||
padding: 0 7px;
|
padding: 0 7px;
|
||||||
> .bg {
|
> .bg {
|
||||||
|
|
|
||||||
|
|
@ -27,3 +27,14 @@ ion-tabs.ion-tabs-transparent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// .placeholder-icon padding cannot be modified by a variable
|
||||||
|
$placeholder-icon-padding: 10px;
|
||||||
|
.placeholder-icon {
|
||||||
|
&:first-child {
|
||||||
|
padding-right: $placeholder-icon-padding;
|
||||||
|
}
|
||||||
|
&:last-child {
|
||||||
|
padding-left: $placeholder-icon-padding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#backup-confirm-modal{
|
|
||||||
|
|
||||||
}
|
|
||||||
12
src/sass/views/includes/modals/backup-needed-modal.scss
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#backup-needed-modal{
|
||||||
|
.button.button-secondary {
|
||||||
|
font-size: 14px;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.button {
|
||||||
|
display: block;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -73,5 +73,5 @@
|
||||||
background: rgba(0, 0, 0, .8);
|
background: rgba(0, 0, 0, .8);
|
||||||
}
|
}
|
||||||
|
|
||||||
@import "backup-confirm-modal";
|
@import "backup-needed-modal";
|
||||||
@import "screenshot-warning-model";
|
@import "screenshot-warning-model";
|
||||||
|
|
|
||||||
|
|
@ -1,42 +1,97 @@
|
||||||
#txp-details{
|
#txp-details {
|
||||||
|
$item-lateral-padding: 20px;
|
||||||
|
$item-vertical-padding: 10px;
|
||||||
|
$item-border-color: #EFEFEF;
|
||||||
|
$item-label-color: #6C6C6E;
|
||||||
|
|
||||||
|
.list {
|
||||||
|
background: #f5f5f5;
|
||||||
|
}
|
||||||
.slide-to-pay {
|
.slide-to-pay {
|
||||||
bottom: 100px;
|
bottom: 100px;
|
||||||
}
|
}
|
||||||
.head {
|
.head {
|
||||||
padding-bottom: 30px;
|
padding: 30px $item-lateral-padding 4rem;
|
||||||
.sending-label{
|
border-top: 0;
|
||||||
line-height: 70px;
|
|
||||||
font-size: 25px;
|
.sending-label {
|
||||||
i {
|
display: flex;
|
||||||
margin-left: 20px;
|
font-size: 18px;
|
||||||
}
|
align-items: center;
|
||||||
span {
|
margin-bottom: 1.5rem;
|
||||||
margin-left: 15px;
|
|
||||||
|
img {
|
||||||
|
margin-right: 1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.amount-label{
|
.amount-label{
|
||||||
margin-left: 20px;
|
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
.amount{
|
.amount{
|
||||||
font-size: 36px;
|
font-size: 38px;
|
||||||
|
margin-bottom: .5rem;
|
||||||
|
|
||||||
|
> .unit {
|
||||||
|
font-family: "Roboto-Light";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.alternative{
|
.alternative {
|
||||||
font-size: 18px;
|
font-size: 16px;
|
||||||
font-weight: 200;
|
font-family: "Roboto-Light";
|
||||||
color: grey;
|
color: #9B9B9B;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.info{
|
.item {
|
||||||
|
border-color: $item-border-color;
|
||||||
|
}
|
||||||
|
.info {
|
||||||
span {
|
span {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
.item {
|
||||||
|
color: #4A4A4A;
|
||||||
|
padding: $item-vertical-padding $item-lateral-padding;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
font-size: 14px;
|
||||||
|
color: $item-label-color;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.single-line {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 17px $item-lateral-padding;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
margin: 0;
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.item-divider {
|
||||||
|
padding-top: 1.2rem;
|
||||||
|
color: $item-label-color;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
.payment-proposal-to {
|
.payment-proposal-to {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 5px 15px;
|
padding: 8px 13px;
|
||||||
background-color: #f5f5f5;
|
background-color: rgba(203, 203, 203, .13);
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
img {
|
||||||
|
padding: .2rem;
|
||||||
|
padding-left: 0;
|
||||||
|
border-right: 1px solid #e4e4e4;
|
||||||
|
padding-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
i {
|
i {
|
||||||
color: grey;
|
color: grey;
|
||||||
position: inherit;
|
position: inherit;
|
||||||
|
|
@ -49,18 +104,115 @@
|
||||||
}
|
}
|
||||||
contact {
|
contact {
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
margin-bottom: 3px;
|
|
||||||
margin-top: 5px;
|
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.wallet {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: .2rem 0;
|
||||||
|
i {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
height: 24px;
|
||||||
|
width: 24px;
|
||||||
|
padding: 2px;
|
||||||
|
margin-right: .7rem;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-item {
|
||||||
|
border: 0;
|
||||||
|
&:nth-child(2) {
|
||||||
|
border-top: 1px solid $item-border-color;
|
||||||
|
}
|
||||||
|
&:last-child {
|
||||||
|
border-bottom: 1px solid $item-border-color;
|
||||||
|
}
|
||||||
|
padding: 17px $item-lateral-padding;
|
||||||
|
|
||||||
|
> * {
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
&__icon {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
min-width: 40px;
|
||||||
|
padding-right: 1rem;
|
||||||
|
padding-left: 1rem;
|
||||||
|
margin-right: .5rem;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: '';
|
||||||
|
background: #e8e8e8;
|
||||||
|
height: 100px;
|
||||||
|
width: 1px;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%) translateY(-100%);
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '';
|
||||||
|
background: #e8e8e8;
|
||||||
|
height: 100px;
|
||||||
|
width: 1px;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%) translateY(100%);
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
> div {
|
||||||
|
border: 3px solid #09C286;
|
||||||
|
border-radius: 50%;
|
||||||
|
display: flex;
|
||||||
|
height: 26px;
|
||||||
|
width: 26px;
|
||||||
|
font-size: 13px;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-weight: 600;
|
||||||
|
vertical-align: middle;
|
||||||
|
color: #09C286;
|
||||||
|
|
||||||
|
&.rejected {
|
||||||
|
background: #E15061;
|
||||||
|
border-color: #E15061;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-family: "Roboto-Bold";
|
||||||
|
font-size: 19px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__label {
|
||||||
|
flex-grow: 1;
|
||||||
|
|
||||||
|
> .action {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .name {
|
||||||
|
color: #aaa;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.accept-slide {
|
.proposal-deletion-help {
|
||||||
position: fixed;
|
color: $item-label-color;
|
||||||
bottom: 0;
|
padding: 1rem 2rem;
|
||||||
width: 100%;
|
|
||||||
height: 100px;
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,6 @@
|
||||||
font-size: .8rem;
|
font-size: .8rem;
|
||||||
i {
|
i {
|
||||||
font-size: 1.3rem;
|
font-size: 1.3rem;
|
||||||
&.ion-social-bitcoin-outline {
|
|
||||||
border-right: 1px solid rgb(228, 228, 228);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.bit-address {
|
.bit-address {
|
||||||
|
|
@ -111,6 +108,10 @@
|
||||||
margin-bottom:1rem;
|
margin-bottom:1rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.receive-tab-bitcoin-icon {
|
||||||
|
border-right: 1px solid rgb(228, 228, 228);
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes fadeIn {
|
@keyframes fadeIn {
|
||||||
|
|
|
||||||
|
|
@ -7,51 +7,13 @@ $scannerBackgroundColor: #060d2d;
|
||||||
.bar-header {
|
.bar-header {
|
||||||
opacity: .9;
|
opacity: .9;
|
||||||
}
|
}
|
||||||
|
.zero-state-cta {
|
||||||
|
padding-bottom: 6vh;
|
||||||
|
}
|
||||||
&-has-problems,
|
&-has-problems,
|
||||||
&-loading-camera {
|
&-loading-camera {
|
||||||
background-color: $scannerBackgroundColor;
|
background-color: $scannerBackgroundColor;
|
||||||
}
|
}
|
||||||
&-has-problems {
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
|
|
||||||
.zero-state {
|
|
||||||
&-icon {
|
|
||||||
display: inline-block;
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
border-radius: 50%;
|
|
||||||
padding: 13px;
|
|
||||||
box-shadow: $subtle-box-shadow;
|
|
||||||
background-color: #fff;
|
|
||||||
}
|
|
||||||
&-heading {
|
|
||||||
font-size: 20px;
|
|
||||||
margin: 1rem;
|
|
||||||
}
|
|
||||||
&-description {
|
|
||||||
margin: 0 2rem 120px;
|
|
||||||
opacity: .6;
|
|
||||||
max-width: 300px;
|
|
||||||
}
|
|
||||||
&-tldr {
|
|
||||||
margin: 1rem auto;
|
|
||||||
}
|
|
||||||
&-description,
|
|
||||||
&-tldr {
|
|
||||||
max-width: 300px;
|
|
||||||
}
|
|
||||||
&-cta {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
|
||||||
padding-bottom: 6vh;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&-loading-camera {
|
&-loading-camera {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%
|
width: 100%
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,15 @@
|
||||||
#tab-send {
|
#tab-send {
|
||||||
|
.zero-state-cta {
|
||||||
|
padding-bottom: 3vh;
|
||||||
|
}
|
||||||
|
.send-heading {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
.bitcoin-address {
|
.bitcoin-address {
|
||||||
|
border-top: none;
|
||||||
|
padding-bottom: .5rem;
|
||||||
@media(max-width: 480px) {
|
@media(max-width: 480px) {
|
||||||
input {
|
input {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
@import "address-book";
|
@import "address-book";
|
||||||
@import "wallet-backup-phrase";
|
@import "wallet-backup-phrase";
|
||||||
@import "address-book";
|
@import "address-book";
|
||||||
|
@import "zero-state";
|
||||||
@import "onboarding/onboarding";
|
@import "onboarding/onboarding";
|
||||||
@import "includes/walletActivity";
|
@import "includes/walletActivity";
|
||||||
@import "includes/wallets";
|
@import "includes/wallets";
|
||||||
|
|
|
||||||
45
src/sass/views/zero-state.scss
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
.zero-state {
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
&-icon {
|
||||||
|
display: inline-block;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
border-radius: 50%;
|
||||||
|
padding: 13px;
|
||||||
|
box-shadow: $subtle-box-shadow;
|
||||||
|
background-color: #fff;
|
||||||
|
img {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&-heading {
|
||||||
|
font-size: 20px;
|
||||||
|
margin: 1rem;
|
||||||
|
}
|
||||||
|
&-description {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-left: 2rem;
|
||||||
|
margin-right: 2rem;
|
||||||
|
margin-bottom: 120px;
|
||||||
|
opacity: .6;
|
||||||
|
max-width: 300px;
|
||||||
|
}
|
||||||
|
&-tldr {
|
||||||
|
margin: 1rem auto;
|
||||||
|
}
|
||||||
|
&-description,
|
||||||
|
&-tldr {
|
||||||
|
max-width: 300px;
|
||||||
|
}
|
||||||
|
&-cta {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
16
www/img/icon-bitcoin-small.svg
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="12px" height="16px" viewBox="0 0 12 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 40.1 (33804) - http://www.bohemiancoding.com/sketch -->
|
||||||
|
<title>Bitcoin_Symbol</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<defs></defs>
|
||||||
|
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.8">
|
||||||
|
<g id="Address-(Bitcoin)" transform="translate(-11.000000, -12.000000)" fill="#5D5D5D">
|
||||||
|
<g id="Items/Bitcoin-Address">
|
||||||
|
<g id="Items/Bitcoin-Address-Copy">
|
||||||
|
<path d="M19.6342548,15.1610219 L20.1628282,12.9767055 L18.8173687,12.6561808 L18.3048127,14.7930121 C17.9484261,14.7099131 17.5880351,14.6268141 17.2316485,14.5555864 L17.7442045,12.4187551 L16.3827276,12.0982304 L15.8541542,14.2825468 C15.5658415,14.2152762 15.2735244,14.163834 14.9852116,14.0965634 L13.1312004,13.6573258 L12.7908312,15.0700087 C12.7908312,15.0700087 13.7959215,15.2876489 13.7598824,15.3074344 C14.3044732,15.4419756 14.4085861,15.7941571 14.3885644,16.0632396 L13.7919172,18.5522523 C13.8279562,18.5680807 13.8760084,18.5680807 13.9280648,18.6036945 C13.8760084,18.5878661 13.8439736,18.5878661 13.7919172,18.5720378 L12.975031,22.0542813 C12.9069572,22.2204793 12.7347704,22.457905 12.3623664,22.374806 C12.3783838,22.3906344 11.3732935,22.1373803 11.3732935,22.1373803 L10.7366028,23.6687761 L12.4905054,24.0723998 C12.8148572,24.1554988 13.1392091,24.2227694 13.4435392,24.3098255 L12.9149658,26.5139274 L14.2604254,26.8344521 L14.7889988,24.6501356 C15.1654071,24.749063 15.5217937,24.8361191 15.8621629,24.9192181 L15.3335895,27.0877061 L16.6790491,27.4082308 L17.2076225,25.2041289 C19.5061158,25.6077526 21.2239794,25.4217691 21.9207352,23.3522085 C22.4813433,21.7020999 21.8686787,20.7603113 20.6433495,20.1390474 C21.5403225,19.9372355 22.1890262,19.3634568 22.3572087,18.1881996 C22.5774476,16.5737048 21.336101,15.7308436 19.6342548,15.1610219 Z M19.3299247,22.4737334 C18.937499,24.123842 16.1144366,23.2651524 15.2094549,23.0475122 L15.9062107,20.1192619 C16.8272098,20.3408592 19.7383678,20.7444829 19.3299247,22.4737334 L19.3299247,22.4737334 Z M19.7023287,18.1881996 C19.3459421,19.6839814 16.9953922,18.9637902 16.2305626,18.7778067 L16.8792663,16.122596 C17.6280786,16.3046223 20.078737,16.625147 19.7023287,18.1881996 L19.7023287,18.1881996 Z" id="Bitcoin_Symbol" transform="translate(16.559574, 19.753231) rotate(-13.000000) translate(-16.559574, -19.753231) "></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
13
www/img/icon-bitcoin-symbol.svg
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Bitcoin_Symbol" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||||
|
y="0px" viewBox="0 0 12 16" style="enable-background:new 0 0 12 16;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#5D5D5D;}
|
||||||
|
</style>
|
||||||
|
<path class="st0" d="M7.4,2.5l0-2.4L6,0.2l0,2.3c-0.4,0-0.8,0-1.2,0l0-2.3l-1.5,0l0,2.4c-0.3,0-0.6,0-0.9,0l-2,0l0,1.5
|
||||||
|
c0,0,1.1,0,1,0c0.6,0,0.8,0.3,0.8,0.6l0,6.5c0,0.2-0.2,0.5-0.6,0.5c0,0-1.1,0-1.1,0l-0.3,1.7l1.9,0c0.4,0,0.7,0,1,0l0,2.4l1.5,0
|
||||||
|
l0-2.4c0.4,0,0.8,0,1.2,0l0,2.3l1.5,0l0-2.4c2.5-0.1,4.2-0.7,4.4-3c0.2-1.8-0.7-2.6-2.1-3C10.5,7,11,6.2,10.9,5
|
||||||
|
C10.7,3.3,9.3,2.7,7.4,2.5z M8.8,10.1c0,1.8-3.1,1.6-4.1,1.6l0-3.2C5.7,8.5,8.8,8.2,8.8,10.1L8.8,10.1z M8.2,5.6
|
||||||
|
c0,1.6-2.6,1.4-3.4,1.4l0-2.9C5.6,4.2,8.2,3.9,8.2,5.6L8.2,5.6z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 939 B |
19
www/img/sending-icon.svg
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="34px" height="34px" viewBox="0 0 34 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 40.1 (33804) - http://www.bohemiancoding.com/sketch -->
|
||||||
|
<title>Received</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<defs></defs>
|
||||||
|
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<g id="Icons/Transaction/Send" transform="translate(-7.000000, -8.000000)">
|
||||||
|
<g id="Icons/Send">
|
||||||
|
<g id="icons/received">
|
||||||
|
<g id="Received" transform="translate(24.244258, 24.883990) scale(-1, 1) rotate(-45.000000) translate(-24.244258, -24.883990) translate(7.244258, 7.883990)">
|
||||||
|
<path d="M17.3272285,33.991292 C26.4399269,33.991292 33.8272285,26.6039904 33.8272285,17.491292 C33.8272285,8.37859367 26.4399269,0.991292046 17.3272285,0.991292046 C8.21453012,0.991292046 0.82722849,8.37859367 0.82722849,17.491292 C0.82722849,26.6039904 8.21453012,33.991292 17.3272285,33.991292 Z" id="Oval-204" fill="#F2F2F2" opacity="0.8"></path>
|
||||||
|
<path d="M9.08046771,17.7310374 L25.550467,17.7310374 M15.140197,25.2788677 L7.74513693,17.8384337 L14.8830819,10.5152146" id="Line" stroke="#BEBEBE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="translate(16.647802, 17.897041) scale(1, -1) rotate(-135.000000) translate(-16.647802, -17.897041) "></path>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.6 KiB |
|
|
@ -29,7 +29,7 @@
|
||||||
<span class="input-label" translate>Email</span>
|
<span class="input-label" translate>Email</span>
|
||||||
<input type="text"
|
<input type="text"
|
||||||
id="email"
|
id="email"
|
||||||
placeholder="name@example.com"
|
placeholder="name@example.com"
|
||||||
name="email"
|
name="email"
|
||||||
ng-model="addressbookEntry.email">
|
ng-model="addressbookEntry.email">
|
||||||
</label>
|
</label>
|
||||||
|
|
@ -54,7 +54,7 @@
|
||||||
|
|
||||||
<div class="padding">
|
<div class="padding">
|
||||||
<button type="submit"
|
<button type="submit"
|
||||||
class="button button-block button-positive"
|
class="button button-standard button-primary"
|
||||||
ng-click="add(addressbookEntry)"
|
ng-click="add(addressbookEntry)"
|
||||||
ng-disabled="!addressbookForm.$valid" translate>
|
ng-disabled="!addressbookForm.$valid" translate>
|
||||||
Save
|
Save
|
||||||
|
|
|
||||||
|
|
@ -52,9 +52,7 @@
|
||||||
You haven’t added any contacts to your address book yet. Get started by adding your first one.
|
You haven’t added any contacts to your address book yet. Get started by adding your first one.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<button class="button button-standard button-primary" ui-sref="tabs.addressbook.add" translate>Add Contact</button>
|
||||||
<button class="button button-block button-positive col" ui-sref="tabs.addressbook.add" translate>Add Contact</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="button button-block button-positive"
|
<button class="button button-standard button-primary"
|
||||||
ng-click="sendTo()" translate>
|
ng-click="sendTo()" translate>
|
||||||
Send Money
|
Send Money
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
<div ng-if="!giftCards" class="m20t padding text-center">
|
<div ng-if="!giftCards" class="m20t padding text-center">
|
||||||
|
|
||||||
<button class="button button-block button-positive" ui-sref="tabs.giftcards.amazon.buy">
|
<button class="button button-standard button-primary" ui-sref="tabs.giftcards.amazon.buy">
|
||||||
Buy now
|
Buy now
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
<div class="input-label" translate>In order to verify your wallet backup, please type your password.</div>
|
<div class="input-label" translate>In order to verify your wallet backup, please type your password.</div>
|
||||||
<input type="text" id="passphrase" ng-model="data.passphrase" autocapitalize="off" spellcheck="false" autofocus/>
|
<input type="text" id="passphrase" ng-model="data.passphrase" autocapitalize="off" spellcheck="false" autofocus/>
|
||||||
</label>
|
</label>
|
||||||
<button ng-disabled="!data.passphrase" class="button button-block button-positive" ng-click="goToStep(4);" translate>Confirm
|
<button ng-disabled="!data.passphrase" class="button button-standard button-primary" ng-click="goToStep(4);" translate>Confirm
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@
|
||||||
<wallets ng-if="wallets[0]" wallets="wallets"></wallets>
|
<wallets ng-if="wallets[0]" wallets="wallets"></wallets>
|
||||||
|
|
||||||
<div class="padding">
|
<div class="padding">
|
||||||
<button class="button button-block button-positive"
|
<button class="button button-standard button-primary"
|
||||||
ng-disabled="!formData.fiat"
|
ng-disabled="!formData.fiat"
|
||||||
type="submit">
|
type="submit">
|
||||||
Buy now
|
Buy now
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
<span ng-show="buy.giftCard.status == 'FAILURE'">
|
<span ng-show="buy.giftCard.status == 'FAILURE'">
|
||||||
This failure could not be recoverable. Request your refund from your list of cards
|
This failure could not be recoverable. Request your refund from your list of cards
|
||||||
</span>
|
</span>
|
||||||
<button class="button button-block button-positive" ng-click="$root.go('amazon')">
|
<button class="button button-standard button-primary" ng-click="$root.go('amazon')">
|
||||||
Back
|
Back
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@
|
||||||
...
|
...
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="button button-block button-positive"
|
<button class="button button-standard button-primary"
|
||||||
type="submit"
|
type="submit"
|
||||||
ng-disabled="limits.transactDisabledPendingFirstTransaction || !buy.buyPrice.qty || buy.loading">
|
ng-disabled="limits.transactDisabledPendingFirstTransaction || !buy.buyPrice.qty || buy.loading">
|
||||||
Continue
|
Continue
|
||||||
|
|
@ -101,7 +101,7 @@
|
||||||
<input type="number" ng-model="twoFaCode" placeholder="2FA Code" required ignore-mouse-wheel>
|
<input type="number" ng-model="twoFaCode" placeholder="2FA Code" required ignore-mouse-wheel>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<button class="button button-block button-positive"
|
<button class="button button-standard button-primary"
|
||||||
type="submit" ng-disabled="buyForm.$invalid || buy.loading">
|
type="submit" ng-disabled="buyForm.$invalid || buy.loading">
|
||||||
Buy
|
Buy
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -117,7 +117,7 @@
|
||||||
A transfer has been initiated from your bank account. Your bitcoins should arrive to your wallet in 2-4 business days.
|
A transfer has been initiated from your bank account. Your bitcoins should arrive to your wallet in 2-4 business days.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<button class="button button-block button-positive" ui-sref="tabs.buyandsell.glidera">OK</button>
|
<button class="button button-standard button-primary" ui-sref="tabs.buyandsell.glidera">OK</button>
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
</ion-view>
|
</ion-view>
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<div ng-show="secret">
|
<div ng-show="secret">
|
||||||
<div class="text-center m10t" ng-if="isCordova">
|
<div class="text-center m10t" ng-if="isCordova">
|
||||||
<button class="button button-outline button-positive"
|
<button class="button button-outline button-primary"
|
||||||
ng-click="shareSecret()">
|
ng-click="shareSecret()">
|
||||||
<i class="icon ion-ios-upload-outline"></i>
|
<i class="icon ion-ios-upload-outline"></i>
|
||||||
<span translate>Share invitation</span>
|
<span translate>Share invitation</span>
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,6 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="m20t text-gray size-12">Connect your Glidera account to get started</p>
|
<p class="m20t text-gray size-12">Connect your Glidera account to get started</p>
|
||||||
|
|
||||||
<button class="button button-block button-positive"
|
<button class="button button-block button-positive"
|
||||||
ng-click="openExternalLink(glidera.getAuthenticateUrl(), 'Glidera authentication'); showOauthForm = true">
|
ng-click="openExternalLink(glidera.getAuthenticateUrl(), 'Glidera authentication'); showOauthForm = true">
|
||||||
Connect to Glidera
|
Connect to Glidera
|
||||||
|
|
@ -65,7 +64,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<input
|
<input
|
||||||
class="button button-block button-positive"
|
class="button button-standard button-primary"
|
||||||
type="submit"
|
type="submit"
|
||||||
value="Get started"
|
value="Get started"
|
||||||
ng-disabled="oauthCodeForm.$invalid">
|
ng-disabled="oauthCodeForm.$invalid">
|
||||||
|
|
|
||||||
|
|
@ -3,25 +3,11 @@
|
||||||
<div class="popup-modal-header-img-warning popup-modal-header-img"></div>
|
<div class="popup-modal-header-img-warning popup-modal-header-img"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="popup-modal-content popup-modal-content-warning">
|
<div class="popup-modal-content popup-modal-content-warning">
|
||||||
<div class="text-center">
|
<div>
|
||||||
<h5 translate>Backup Needed</h5>
|
<div class="popup-modal-heading" translate>Backup Needed</div>
|
||||||
<p translate>Now is a good time to backup your wallet. If this device is lost, it is impossible to access your funds without a backup.</p>
|
<div class="popup-modal-message" translate>Now is a good time to backup your wallet. If this device is lost, it is impossible to access your funds without a backup.</div>
|
||||||
<div class="row">
|
<button class="button button-clear" ng-click="doBackup()" translate>Backup now</button>
|
||||||
<div class="col">
|
<button class="button button-secondary button-clear" ng-click="close()" translate>Remind me later</button>
|
||||||
<button
|
|
||||||
class="button button-clear expand"
|
|
||||||
ng-click="close()"
|
|
||||||
translate>Not now
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<button
|
|
||||||
class="button button-clear expand"
|
|
||||||
ng-click="doBackup()"
|
|
||||||
translate>Backup wallet now
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<button class="button button-block button-positive" ng-disabled="sendStatus">
|
<button class="button button-standard button-primary" ng-disabled="sendStatus">
|
||||||
<span ng-if="!sendStatus">
|
<span ng-if="!sendStatus">
|
||||||
<ng-transclude></ng-transclude>
|
<ng-transclude></ng-transclude>
|
||||||
</span>
|
</span>
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@
|
||||||
</div> <!-- advanced -->
|
</div> <!-- advanced -->
|
||||||
</div> <!-- list -->
|
</div> <!-- list -->
|
||||||
|
|
||||||
<button type="submit" class="button button-block button-positive"
|
<button type="submit" class="button button-standard button-primary"
|
||||||
ng-disabled="joinForm.$invalid || ((encrypt && !passwordSaved) || encrypt && ((join.seedSourceId == 'new' && !createPassphrase) || (join.seedSourceId == 'set' && !passphrase)))"
|
ng-disabled="joinForm.$invalid || ((encrypt && !passwordSaved) || encrypt && ((join.seedSourceId == 'new' && !createPassphrase) || (join.seedSourceId == 'set' && !passphrase)))"
|
||||||
translate>Join
|
translate>Join
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@
|
||||||
|
|
||||||
<div class="list">
|
<div class="list">
|
||||||
<div class="item item-icon-left" ng-show="btx.action == 'sent'">
|
<div class="item item-icon-left" ng-show="btx.action == 'sent'">
|
||||||
<i class="icon ion-social-bitcoin-outline"></i>
|
<i class="icon icon-svg"><img src="img/icon-bitcoin-symbol.svg"></i>
|
||||||
<div ng-if="!btx.hasMultiplesOutputs && btx.addressTo && btx.addressTo != 'N/A'" copy-to-clipboard="btx.addressTo">
|
<div ng-if="!btx.hasMultiplesOutputs && btx.addressTo && btx.addressTo != 'N/A'" copy-to-clipboard="btx.addressTo">
|
||||||
<span ng-if="btx.merchant">
|
<span ng-if="btx.merchant">
|
||||||
<span ng-show="btx.merchant.pr.ca"><i class="fi-lock color-greeni"></i> {{btx.merchant.domain}}</span>
|
<span ng-show="btx.merchant.pr.ca"><i class="fi-lock color-greeni"></i> {{btx.merchant.domain}}</span>
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="item" ng-if="btx.action != 'received' && btx.feeLevel" copy-to-clipboard="btx.feeStr">
|
<div class="item" ng-if="btx.action != 'received' && btx.feeStr" copy-to-clipboard="btx.feeStr">
|
||||||
{{'Fee'|translate}}: {{btx.feeStr}}
|
{{'Fee'|translate}}: {{btx.feeStr}}
|
||||||
<span class="item-note">
|
<span class="item-note">
|
||||||
<span class="text-warning" ng-show="!btx.confirmations || btx.confirmations == 0" translate>
|
<span class="text-warning" ng-show="!btx.confirmations || btx.confirmations == 0" translate>
|
||||||
|
|
@ -102,7 +102,7 @@
|
||||||
<span class="label gray radius" ng-show="btx.safeConfirmed">
|
<span class="label gray radius" ng-show="btx.safeConfirmed">
|
||||||
{{btx.safeConfirmed}}
|
{{btx.safeConfirmed}}
|
||||||
</span>
|
</span>
|
||||||
<span translate>Confirmations</span>
|
<span ng-show="btx.confirmations && btx.confirmations > 0" translate>Confirmations</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<ion-modal-view id="txp-details" ng-controller="txpDetailsController" ng-init="init()">
|
<ion-modal-view id="txp-details" ng-controller="txpDetailsController" ng-init="init()">
|
||||||
<ion-header-bar align-title="center" class="bar-royal" ng-style="{'background-color': wallet.color}">
|
<ion-header-bar align-title="center" class="bar-royal">
|
||||||
<button class="button button-clear" ng-click="close()">
|
<button class="button button-clear" ng-click="close()">
|
||||||
Close
|
Close
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -11,15 +11,15 @@
|
||||||
</button>
|
</button>
|
||||||
</ion-header-bar>
|
</ion-header-bar>
|
||||||
|
|
||||||
<ion-content ng-init="updateCopayerList()" ng-class="{'slide-to-pay': tx.pendingForUs && canSign && isCordova}">
|
<ion-content ng-init="updateCopayerList()" ng-class="{'slide-to-pay': tx.pendingForUs && canSign && !hasClick}">
|
||||||
<div class="list">
|
<div class="list">
|
||||||
<div class="item head">
|
<div class="item head">
|
||||||
<div class="sending-label">
|
<div class="sending-label">
|
||||||
<i class="icon ion-arrow-up-c"></i>
|
<img src="img/sending-icon.svg">
|
||||||
<span translate>Sending</span>
|
<span translate>Sending</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="amount-label">
|
<div class="amount-label">
|
||||||
<div class="amount">{{tx.amountStr}}</div>
|
<div class="amount">{{displayAmount}} <span class="unit">{{displayUnit}}</span></div>
|
||||||
<div class="alternative" ng-show="tx.alternativeAmountStr">{{tx.alternativeAmountStr}}</div>
|
<div class="alternative" ng-show="tx.alternativeAmountStr">{{tx.alternativeAmountStr}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -50,9 +50,9 @@
|
||||||
|
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<span translate>To</span>
|
<span class="label" translate>To</span>
|
||||||
<span class="payment-proposal-to" copy-to-clipboard="tx.toAddress">
|
<span class="payment-proposal-to" copy-to-clipboard="tx.toAddress">
|
||||||
<i class="icon ion-social-bitcoin"></i>
|
<img src="img/icon-bitcoin-small.svg">
|
||||||
<contact ng-if="!tx.hasMultiplesOutputs" class="ellipsis" address="{{tx.toAddress}}"></contact>
|
<contact ng-if="!tx.hasMultiplesOutputs" class="ellipsis" address="{{tx.toAddress}}"></contact>
|
||||||
<span ng-if="tx.hasMultiplesOutputs" translate>Multiple recipients</span>
|
<span ng-if="tx.hasMultiplesOutputs" translate>Multiple recipients</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
@ -71,18 +71,18 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="item">
|
<div class="item">
|
||||||
{{'From'|translate}}
|
<span class="label" translate>From</span>
|
||||||
<span class="item-note">
|
<div class="wallet">
|
||||||
<i class="icon big-icon-svg right">
|
<i class="icon big-icon-svg">
|
||||||
<img src="img/icon-wallet.svg" ng-style="{'background-color': wallet.color}" class="bg"/>
|
<img src="img/icon-wallet.svg" ng-style="{'background-color': wallet.color}" class="bg"/>
|
||||||
</i>
|
</i>
|
||||||
<div class="m10t m55r">{{wallet.name}}</div>
|
<div>{{wallet.name}}</div>
|
||||||
</span>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item single-line">
|
||||||
{{'Created by'|translate}}
|
<span class="label" translate>Created by</span>
|
||||||
<span class="item-note">
|
<span class="item-note">
|
||||||
{{tx.creatorName}} <time>{{ (tx.ts || tx.createdOn ) * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>
|
{{tx.creatorName}} <time>{{ (tx.ts || tx.createdOn ) * 1000 | amDateFormat:'MM/DD/YYYY hh:mm a'}}</time>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item" ng-show="tx.message">
|
<div class="item" ng-show="tx.message">
|
||||||
|
|
@ -91,8 +91,8 @@
|
||||||
{{tx.message}}
|
{{tx.message}}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item">
|
<div class="item single-line">
|
||||||
{{'Fee'|translate}}
|
<span class="label" translate>Fee</span>
|
||||||
<span class="item-note">
|
<span class="item-note">
|
||||||
{{tx.feeStr}}
|
{{tx.feeStr}}
|
||||||
</span>
|
</span>
|
||||||
|
|
@ -129,20 +129,20 @@
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="actionList[0]">
|
<div ng-if="actionList[0]">
|
||||||
<div class="item item-divider" translate>Timeline</div>
|
<div class="item item-divider" translate>Timeline</div>
|
||||||
|
<div class="item timeline-item" ng-class="{'action-created' : a.type == 'created' || a.type == 'accept', 'action-rejected' : a.type == 'reject'}" ng-repeat="a in actionList | orderBy: 'time' track by $index">
|
||||||
<div class="item" ng-class="{'action-created' : a.type == 'created' || a.type == 'accept', 'action-rejected' : a.type == 'reject'}" ng-repeat="a in actionList track by $index">
|
<div class="timeline-content">
|
||||||
<div class="row">
|
<div class="timeline-content__icon">
|
||||||
<div class="col col-10">
|
<div class="rejected" ng-if="a.type === 'reject'">!</div>
|
||||||
<span id="timeline-icon">{{$index + 1}}</span>
|
<div ng-if="a.type !== 'reject'">{{$index + 1}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="timeline-content__label">
|
||||||
<div>{{a.description}}</div>
|
<div class="action">{{a.description}}</div>
|
||||||
<div>
|
<div class="name">{{a.by}}</div>
|
||||||
<span>{{a.by}}</span>
|
</div>
|
||||||
<span class="item-note">
|
<div>
|
||||||
<time>{{ a.time * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>
|
<span class="item-note">
|
||||||
</span>
|
<time>{{ a.time * 1000 | amDateFormat:'hh:mm a'}}</time>
|
||||||
</div>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -157,7 +157,7 @@
|
||||||
Click to accept
|
Click to accept
|
||||||
</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" 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.
|
||||||
</div>
|
</div>
|
||||||
<button class="button button-assertive button-clear" ng-click="remove()" ng-disabled="loading">
|
<button class="button button-assertive button-clear" ng-click="remove()" ng-disabled="loading">
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@
|
||||||
|
|
||||||
<button type="submit"
|
<button type="submit"
|
||||||
ng-disabled="scanning || !scannedKey"
|
ng-disabled="scanning || !scannedKey"
|
||||||
class="button button-block button-positive"
|
class="button button-standard button-primary"
|
||||||
ng-style="{'background-color': wallet.color}"
|
ng-style="{'background-color': wallet.color}"
|
||||||
translate>Scan Wallet Funds
|
translate>Scan Wallet Funds
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -74,7 +74,7 @@
|
||||||
<button
|
<button
|
||||||
ng-show="balanceSat > 0"
|
ng-show="balanceSat > 0"
|
||||||
ng-disabled="sending"
|
ng-disabled="sending"
|
||||||
class="button button-block button-positive"
|
class="button button-standard button-primary"
|
||||||
ng-style="{'background-color': wallet.color}"
|
ng-style="{'background-color': wallet.color}"
|
||||||
ng-click="sweepWallet()"
|
ng-click="sweepWallet()"
|
||||||
translate>Sweep Wallet
|
translate>Sweep Wallet
|
||||||
|
|
@ -82,7 +82,7 @@
|
||||||
|
|
||||||
<button
|
<button
|
||||||
ng-show="balanceSat <= 0 && scanned"
|
ng-show="balanceSat <= 0 && scanned"
|
||||||
class="button button-block button-positive"
|
class="button button-standard button-primary"
|
||||||
ng-style="{'background-color': wallet.color}"
|
ng-style="{'background-color': wallet.color}"
|
||||||
ng-click="init()"
|
ng-click="init()"
|
||||||
translate>Scan Again
|
translate>Scan Again
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit"
|
<button type="submit"
|
||||||
class="button button-block button-positive"
|
class="button button-standard button-primary"
|
||||||
ng-disabled="aliasForm.$invalid" translate>
|
ng-disabled="aliasForm.$invalid" translate>
|
||||||
Save
|
Save
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,6 @@
|
||||||
</a>
|
</a>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<button class="button button-block button-positive" ng-click="save()" translate>Save</button>
|
<button class="button button-standard button-primary" ng-click="save()" translate>Save</button>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
</ion-view>
|
</ion-view>
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit"
|
<button type="submit"
|
||||||
class="button button-block button-positive"
|
class="button button-standard button-primary"
|
||||||
ng-disabled="emailForm.$invalid" translate>
|
ng-disabled="emailForm.$invalid" translate>
|
||||||
Save
|
Save
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
|
|
@ -98,10 +98,10 @@
|
||||||
<div class="padding text-center" translate>
|
<div class="padding text-center" translate>
|
||||||
Only Main (not change) addresses are shown. The addresses on this list were not verified locally at this time.
|
Only Main (not change) addresses are shown. The addresses on this list were not verified locally at this time.
|
||||||
</div>
|
</div>
|
||||||
<button class="button button-block button-positive" ng-click="scan()" translate>
|
<button class="button button-standard button-primary" ng-click="scan()" translate>
|
||||||
Scan addresses for funds
|
Scan addresses for funds
|
||||||
</button>
|
</button>
|
||||||
<button class="button button-block button-positive" ng-show="isCordova" ng-click="sendAddrs()" translate>
|
<button class="button button-standard button-primary" ng-show="isCordova" ng-click="sendAddrs()" translate>
|
||||||
Send addresses by email
|
Send addresses by email
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@
|
||||||
</ion-nav-back-button>
|
</ion-nav-back-button>
|
||||||
</ion-nav-bar>
|
</ion-nav-bar>
|
||||||
<ion-content>
|
<ion-content>
|
||||||
<button class="button button-block button-positive" copy-to-clipboard="prepare()">
|
<button class="button button-standard button-primary" style="margin-top: 1rem" copy-to-clipboard="prepare()">
|
||||||
<i class="icon ion-clipboard"></i>
|
<i class="icon ion-clipboard"></i>
|
||||||
<span translate>Copy to clipboard</span>
|
<span translate>Copy to clipboard</span>
|
||||||
</button>
|
</button>
|
||||||
<button class="button button-block button-positive" ng-show="isCordova" ng-click="sendLogs()">
|
<button class="button button-standard button-secondary" ng-show="isCordova" ng-click="sendLogs()">
|
||||||
<i class="icon ion-ios-email-outline"></i>
|
<i class="icon ion-ios-email-outline"></i>
|
||||||
<span translate>Send by email</span>
|
<span translate>Send by email</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@
|
||||||
...
|
...
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="button button-block button-positive"
|
<button class="button button-standard button-primary"
|
||||||
type="submit"
|
type="submit"
|
||||||
ng-disabled="limits.transactDisabledPendingFirstTransaction || !sell.sellPrice.qty">
|
ng-disabled="limits.transactDisabledPendingFirstTransaction || !sell.sellPrice.qty">
|
||||||
Continue
|
Continue
|
||||||
|
|
@ -101,7 +101,7 @@
|
||||||
<input type="number" ng-model="twoFaCode" placeholder="2FA Code" required ignore-mouse-wheel>
|
<input type="number" ng-model="twoFaCode" placeholder="2FA Code" required ignore-mouse-wheel>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<button class="button button-block button-positive"
|
<button class="button button-standard button-primary"
|
||||||
type="submit"
|
type="submit"
|
||||||
ng-disabled="sellForm.$invalid ">
|
ng-disabled="sellForm.$invalid ">
|
||||||
Sell
|
Sell
|
||||||
|
|
@ -118,7 +118,7 @@
|
||||||
A transfer has been initiated to your bank account and should arrive in 4-6 business days.
|
A transfer has been initiated to your bank account and should arrive in 4-6 business days.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<button class="button button-block button-positive" ui-sref="tabs.buyandsell.glidera">OK</button>
|
<button class="button button-standard button-primary" ui-sref="tabs.buyandsell.glidera">OK</button>
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
</ion-view>
|
</ion-view>
|
||||||
|
|
|
||||||
|
|
@ -98,11 +98,10 @@
|
||||||
</div> <!-- advanced -->
|
</div> <!-- advanced -->
|
||||||
</div> <!-- list -->
|
</div> <!-- list -->
|
||||||
|
|
||||||
<button type="submit" class="button button-block button-positive"
|
<button type="submit" class="button button-standard button-primary"
|
||||||
ng-disabled="setupForm.$invalid || ((encrypt && !formData.passwordSaved) || encrypt && ((seedSource.id == 'new' && !formData.createPassphrase) || (seedSource.id == 'set' && !formData.passphrase)))">
|
ng-disabled="setupForm.$invalid || ((encrypt && !formData.passwordSaved) || encrypt && ((seedSource.id == 'new' && !formData.createPassphrase) || (seedSource.id == 'set' && !formData.passphrase)))">
|
||||||
<span translate>Create new wallet</span>
|
<span translate>Create new wallet</span>
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
</ion-view>
|
</ion-view>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -128,12 +128,10 @@
|
||||||
</div> <!-- advanced -->
|
</div> <!-- advanced -->
|
||||||
</div> <!-- list -->
|
</div> <!-- list -->
|
||||||
|
|
||||||
<button type="submit" class="button button-block button-positive"
|
<button type="submit" class="button button-standard button-primary"
|
||||||
ng-disabled="setupForm.$invalid || ((encrypt && !formData.passwordSaved) || encrypt && ((seedSource.id == 'new' && !formData.createPassphrase) || (seedSource.id == 'set' && !formData.passphrase)))">
|
ng-disabled="setupForm.$invalid || ((encrypt && !formData.passwordSaved) || encrypt && ((seedSource.id == 'new' && !formData.createPassphrase) || (seedSource.id == 'set' && !formData.passphrase)))">
|
||||||
<span translate>Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet</span>
|
<span translate>Create {{formData.requiredCopayers}}-of-{{formData.totalCopayers}} wallet</span>
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
</ion-view>
|
</ion-view>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
|
|
||||||
<button
|
<button
|
||||||
ng-click="downloadWalletBackup()"
|
ng-click="downloadWalletBackup()"
|
||||||
class="button button-block button-positive"
|
class="button button-standard button-primary"
|
||||||
ng-disabled="(!formData.password || formData.password != formData.repeatpassword)"
|
ng-disabled="(!formData.password || formData.password != formData.repeatpassword)"
|
||||||
ng-style="{'background-color':wallet.color}"
|
ng-style="{'background-color':wallet.color}"
|
||||||
ng-show="!isSafari && !isCordova">
|
ng-show="!isSafari && !isCordova">
|
||||||
|
|
@ -59,7 +59,7 @@
|
||||||
|
|
||||||
<button
|
<button
|
||||||
ng-click="viewWalletBackup()"
|
ng-click="viewWalletBackup()"
|
||||||
class="button button-block button-positive"
|
class="button button-standard button-primary"
|
||||||
ng-disabled="(!formData.password || formData.password != formData.repeatpassword)"
|
ng-disabled="(!formData.password || formData.password != formData.repeatpassword)"
|
||||||
ng-style="{'background-color':wallet.color}"
|
ng-style="{'background-color':wallet.color}"
|
||||||
ng-show="isSafari && !isCordova">
|
ng-show="isSafari && !isCordova">
|
||||||
|
|
@ -69,13 +69,13 @@
|
||||||
|
|
||||||
<div ng-show="isCordova">
|
<div ng-show="isCordova">
|
||||||
<h4 translate>Export options</h4>
|
<h4 translate>Export options</h4>
|
||||||
<button class="button button-block button-positive"
|
<button class="button button-standard button-primary"
|
||||||
ng-disabled="(!formData.password || formData.password != formData.repeatpassword)"
|
ng-disabled="(!formData.password || formData.password != formData.repeatpassword)"
|
||||||
ng-style="{'background-color':wallet.color}"
|
ng-style="{'background-color':wallet.color}"
|
||||||
ng-click="copyWalletBackup()">
|
ng-click="copyWalletBackup()">
|
||||||
<i class="fi-clipboard-pencil"></i>
|
<i class="fi-clipboard-pencil"></i>
|
||||||
<span translate>Copy to clipboard</span></button>
|
<span translate>Copy to clipboard</span></button>
|
||||||
<button class="button button-block button-positive" ng-disabled="(!formData.password || formData.password != formData.repeatpassword)"
|
<button class="button button-standard button-primary" ng-disabled="(!formData.password || formData.password != formData.repeatpassword)"
|
||||||
ng-style="{'background-color':wallet.color}"
|
ng-style="{'background-color':wallet.color}"
|
||||||
ng-click="sendWalletBackup()"><i class="fi-mail"></i>
|
ng-click="sendWalletBackup()"><i class="fi-mail"></i>
|
||||||
<span translate>Send by email</span></button>
|
<span translate>Send by email</span></button>
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="submit" class="button button-block button-positive" ng-disabled="importForm.$invalid || !formData.password" translate>
|
<button type="submit" class="button button-standard button-primary" ng-disabled="importForm.$invalid || !formData.password" translate>
|
||||||
Import backup
|
Import backup
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button translate type="submit" class="button button-block button-positive">
|
<button translate type="submit" class="button button-standard button-primary">
|
||||||
Import
|
Import
|
||||||
</button>
|
</button>
|
||||||
</div> <!-- seedoptions show -->
|
</div> <!-- seedoptions show -->
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="submit"
|
<button type="submit"
|
||||||
class="button button-block button-positive"
|
class="button button-standard button-primary"
|
||||||
ng-disabled="importForm12.$invalid" translate>Import
|
ng-disabled="importForm12.$invalid" translate>Import
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
<ion-view id="tab-receive">
|
<ion-view id="tab-receive">
|
||||||
<ion-nav-bar class="bar-royal">
|
<ion-nav-bar class="bar-royal">
|
||||||
<ion-nav-title>{{'Receive' | translate}}</ion-nav-title>
|
<ion-nav-title>{{'Receive' | translate}}</ion-nav-title>
|
||||||
<ion-nav-buttons side="secondary">
|
|
||||||
<button class="button button-clear" ng-click="checkTips(true)">
|
|
||||||
<i class="ion-help-circled"></i>
|
|
||||||
</button>
|
|
||||||
</ion-nav-buttons>
|
|
||||||
</ion-nav-bar>
|
</ion-nav-bar>
|
||||||
<ion-content>
|
<ion-content>
|
||||||
<div class="list card padding text-center" ng-if="!wallets[0]">
|
<div class="list card padding text-center" ng-if="!wallets[0]">
|
||||||
|
|
@ -23,7 +18,7 @@
|
||||||
<div class="row border-top">
|
<div class="row border-top">
|
||||||
<div class="col col-90 center-block bit-address text-center">
|
<div class="col col-90 center-block bit-address text-center">
|
||||||
<div class="item item-icon-left">
|
<div class="item item-icon-left">
|
||||||
<i class="icon ion-social-bitcoin-outline"></i>
|
<i class="icon icon-svg receive-tab-bitcoin-icon"><img src="img/icon-bitcoin-symbol.svg"></i>
|
||||||
<span class="bit-address-gen-address">...</span>
|
<span class="bit-address-gen-address">...</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -38,13 +33,13 @@
|
||||||
<span translate>All signing devices must be added to this multisig wallet before bitcoin addresses can be created.</span>
|
<span translate>All signing devices must be added to this multisig wallet before bitcoin addresses can be created.</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button class="button button-block button-positive" ng-click="goCopayers()" translate>Open wallet</button>
|
<button class="button button-standard button-primary" ng-click="goCopayers()" translate>Open wallet</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row border-top">
|
<div class="row border-top">
|
||||||
<div class="col col-90 center-block bit-address text-center">
|
<div class="col col-90 center-block bit-address text-center">
|
||||||
<div class="item item-icon-left">
|
<div class="item item-icon-left">
|
||||||
<i class="icon ion-social-bitcoin-outline"></i>
|
<i class="icon icon-svg receive-tab-bitcoin-icon"><img src="img/icon-bitcoin-symbol.svg"></i>
|
||||||
<span class="bit-address-gen-address" ng-if="!generatingAddress" translate>address not yet available</span>
|
<span class="bit-address-gen-address" ng-if="!generatingAddress" translate>address not yet available</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -81,7 +76,7 @@
|
||||||
<div class="row border-top">
|
<div class="row border-top">
|
||||||
<div class="col col-90 center-block bit-address text-center">
|
<div class="col col-90 center-block bit-address text-center">
|
||||||
<div class="item item-icon-left">
|
<div class="item item-icon-left">
|
||||||
<i class="icon ion-social-bitcoin-outline"></i>
|
<i class="icon icon-svg receive-tab-bitcoin-icon"><img src="img/icon-bitcoin-symbol.svg"></i>
|
||||||
<span class="bit-address-gen-address" ng-if="generatingAddress">...</span>
|
<span class="bit-address-gen-address" ng-if="generatingAddress">...</span>
|
||||||
<span class="bit-address-gen-address" ng-if="!generatingAddress" copy-to-clipboard="addr">{{addr}}</span>
|
<span class="bit-address-gen-address" ng-if="!generatingAddress" copy-to-clipboard="addr">{{addr}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
</ion-nav-buttons>
|
</ion-nav-buttons>
|
||||||
</ion-nav-bar>
|
</ion-nav-bar>
|
||||||
<ion-content scroll="false">
|
<ion-content scroll="false">
|
||||||
<div class="ng-hide" id="tab-scan-has-problems" ng-show="currentState === scannerStates.unauthorized || currentState === scannerStates.denied || currentState === scannerStates.unavailable">
|
<div class="ng-hide zero-state" id="tab-scan-has-problems" ng-show="currentState === scannerStates.unauthorized || currentState === scannerStates.denied || currentState === scannerStates.unavailable">
|
||||||
<i class="icon zero-state-icon">
|
<i class="icon zero-state-icon">
|
||||||
<img src="img/tab-icons/ico-receive.svg"/>
|
<img src="img/tab-icons/ico-receive.svg"/>
|
||||||
</i>
|
</i>
|
||||||
|
|
|
||||||
|
|
@ -2,25 +2,38 @@
|
||||||
<ion-nav-bar class="bar-royal">
|
<ion-nav-bar class="bar-royal">
|
||||||
<ion-nav-title>{{'Send' | translate}}</ion-nav-title>
|
<ion-nav-title>{{'Send' | translate}}</ion-nav-title>
|
||||||
</ion-nav-bar>
|
</ion-nav-bar>
|
||||||
|
<ion-content scroll="false">
|
||||||
<ion-content>
|
<div class="ng-hide zero-state" ng-show="!hasFunds">
|
||||||
<div class="item item-heading" translate>Recipient</div>
|
<i class="icon zero-state-icon">
|
||||||
|
<img src="img/tab-icons/ico-send-selected.svg"/>
|
||||||
|
</i>
|
||||||
|
<div class="zero-state-heading" translate>Start sending bitcoin</div>
|
||||||
|
<div class="zero-state-description" ng-show="hasWallets" translate>To get started, buy bitcoin or share your address. You can receive bitcoin from any wallet or service.</div>
|
||||||
|
<div class="zero-state-description" ng-show="!hasWallets" translate>To get started, you'll need to create a bitcoin wallet and get some bitcoin.</div>
|
||||||
|
<div class="zero-state-cta">
|
||||||
|
<button class="button button-standard button-primary" ng-click="buyBitcoin()" ng-show="hasWallets">Buy Bitcoin</button>
|
||||||
|
<button class="button button-standard button-primary" ng-click="createWallet()" ng-show="!hasWallets">Create bitcoin wallet</button>
|
||||||
|
<button class="button button-standard button-secondary" ui-sref="tabs.receive" ng-show="hasWallets">Show bitcoin address</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ion-content>
|
||||||
|
<ion-content class="ng-hide has-funds" ng-show="hasFunds">
|
||||||
|
<div class="item item-heading send-heading" translate>Recipient</div>
|
||||||
<label class="item item-input bitcoin-address">
|
<label class="item item-input bitcoin-address">
|
||||||
<i class="icon ion-social-bitcoin placeholder-icon"></i>
|
<i class="icon icon-svg placeholder-icon"><img src="img/icon-bitcoin-symbol.svg"></i>
|
||||||
<div class="qr-scan-icon" ng-style="{'width': '100%'}">
|
<div class="qr-scan-icon" ng-style="{'width': '100%'}">
|
||||||
<a ui-sref="tabs.scan" ng-style="{'top': '6px'}"><i class="icon ion-qr-scanner"></i></a>
|
<a ui-sref="tabs.scan" ng-style="{'top': '6px'}">
|
||||||
<input type="text"
|
<i class="icon ion-qr-scanner"></i>
|
||||||
placeholder="{{'Search or enter bitcoin address' | translate}}"
|
</a>
|
||||||
ng-model="formData.search"
|
<input type="text" placeholder="{{'Search or enter bitcoin address' | translate}}" ng-model="formData.search" ng-change="findContact(formData.search)" ng-model-onblur>
|
||||||
ng-change="findContact(formData.search)"
|
|
||||||
ng-model-onblur>
|
|
||||||
</div>
|
</div>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="item item-icon-right item-heading">
|
<div class="item item-icon-right item-heading">
|
||||||
<span translate>Contacts</span>
|
<span translate>Contacts</span>
|
||||||
<a ng-if="hasContacts" ui-sref="tabs.send.addressbook"><i class="icon ion-ios-plus-empty list-add-button"></i></a>
|
<a ng-if="hasContacts" ui-sref="tabs.send.addressbook">
|
||||||
|
<i class="icon ion-ios-plus-empty list-add-button"></i>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="list">
|
<div class="list">
|
||||||
<a class="item item-icon-left item-icon-right" ng-if="!hasContacts" ui-sref="tabs.send.addressbook">
|
<a class="item item-icon-left item-icon-right" ng-if="!hasContacts" ui-sref="tabs.send.addressbook">
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="item item-text-wrap" ng-include="'views/includes/terms.html'"></div>
|
<div class="item item-text-wrap" ng-include="'views/includes/terms.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
<button class="button button-block button-positive"
|
<button class="button button-standard button-primary"
|
||||||
ng-show="lang != 'en'"
|
ng-show="lang != 'en'"
|
||||||
ng-click="openExternalLink(disclaimerUrl, 'Bitpay disclaimer')" translate>
|
ng-click="openExternalLink(disclaimerUrl, 'Bitpay disclaimer')" translate>
|
||||||
Official English Disclaimer
|
Official English Disclaimer
|
||||||
|
|
|
||||||