fix merge conflicts

This commit is contained in:
Marty Alcala 2016-10-18 17:23:43 -04:00
commit 78bd523391
272 changed files with 8069 additions and 5496 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="116.6 16.8 86.8 30.5"><path d="M203.4 24h-4.5l-2.6 11-.4 1.5c-.3.1-.5.1-.8.2-.5.1-.9.1-1.4.1-.6 0-1-.1-1.4-.3-.3-.2-.6-.4-.7-.7-.1-.3-.2-.7-.2-1.1 0-.4.1-.9.2-1.3l1.4-5.7.9-3.8h-4.6l-2.1 8.8c-.3 1.1-.4 2.1-.4 3 0 1 .1 1.8.4 2.5.3.7.9 1.3 1.7 1.7.8.4 1.9.6 3.3.6 1 0 1.9-.1 2.6-.3h.1c-.2.9-.6 1.6-1.3 2.2-.7.6-1.6.9-2.9.9-.5 0-1.1 0-1.5-.1l-.9 3.7c.6.1 1.3.1 2 .1 1.4 0 2.6-.2 3.6-.5s1.9-.8 2.7-1.4c.7-.6 1.4-1.4 1.9-2.4s.9-2.1 1.2-3.4l3.1-13.1.6-2.2zm-18.9 9.4c-.3 1.1-.4 2.3-.3 3.5.1 1.2.6 2.9 1 3.8h-4.4c-.5-.9-.5-1.3-.6-1.6-.6.5-1.2.8-1.9 1.1-.7.3-1.4.5-2.3.5-1 0-1.9-.2-2.6-.5-.7-.3-1.3-.8-1.8-1.4-.5-.6-.8-1.3-1-2.1-.2-.8-.3-1.6-.3-2.6 0-1.4.3-2.7.7-3.9.5-1.2 1.2-2.3 2.1-3.2.9-.9 3-3 6.5-3h7l-2.1 9.4zm-3.2-5.6c-2.1 0-2.5 0-3.4.4-.6.3-1.1.8-1.6 1.4-.4.5-.8 1.2-1.1 1.9-.3.7-.4 1.5-.4 2.3 0 1 .2 1.7.5 2.3s.9.8 1.8.8c.5 0 .9-.1 1.3-.3.4-.2.8-.5 1.2-.9 0-.5.1-1 .2-1.6s.2-1.1.3-1.5l1.2-4.8m-12.1 2.8c0 1.5-.3 2.8-.7 4.1-.5 1.2-1.2 2.3-2 3.2-.9.9-1.9 1.6-3.1 2.1-1.2.5-2.5.8-3.9.8-.7 0-1.4-.1-2.1-.2l-1.4 5.5h-4.5l5.2-22h6c1.1 0 2.1.2 2.9.5.8.3 1.5.8 2 1.4.5.6.9 1.3 1.2 2.1.3.7.4 1.6.4 2.5zm-11.1 6.2c.3.1.8.1 1.3.1.8 0 1.5-.1 2.2-.4.6-.3 1.2-.7 1.7-1.2s.8-1.2 1.1-1.9c.3-.7.4-1.6.4-2.5 0-.9-.2-1.6-.6-2.2-.4-.6-1.1-.9-2-.9h-1.8l-2.3 9zm-9.4 0c-.6 0-1-.1-1.4-.3-.3-.2-.6-.4-.7-.7-.1-.3-.2-.7-.2-1.1s.1-.9.2-1.3l1.4-5.7h5.1l.9-3.8h-5.2l1.2-4.8-4.8.8-3 12.9c-.3 1.1-.4 2.1-.4 3 0 1 .1 1.8.4 2.5.3.7.9 1.3 1.7 1.7.8.4 1.9.6 3.3.6 1 0 1.9-.1 2.6-.3.1 0 .2 0 .3-.1l.9-3.9c-.3.1-.6.2-.9.2-.5.3-.9.3-1.4.3zM137.2 24l-4 16.7h4.5l4-16.7zm4.9-2l.7-2.9h-4.5l-.7 2.9zm-14.9 2c1 0 1.8.2 2.5.5s1.3.8 1.8 1.4c.5.6.8 1.3 1 2.1s.3 1.6.3 2.5c0 1.4-.3 2.7-.8 4-.5 1.2-1.2 2.3-2.1 3.3s-1.9 1.6-3.2 2.2c-1.2.5-2.5.8-3.9.8h-1c-.5 0-1 0-1.6-.1-.6-.1-1.2-.2-1.9-.4s-1.3-.4-1.9-.7l5.2-22 4.7-.7-1.9 7.8c.4-.2.8-.3 1.2-.4.7-.3 1.1-.3 1.6-.3zm-4 13c.7 0 1.4-.2 2-.5.6-.3 1.2-.8 1.6-1.4.5-.6.8-1.2 1.1-1.9.3-.7.4-1.5.4-2.3 0-1-.2-1.7-.5-2.3-.3-.5-1-.8-1.9-.8-.3 0-.6 0-1 .1-.5.1-.8.3-1.2.6l-2 8.3c.6.1.8.1.9.1.2.1.4.1.6.1z" fill="#FFF"/></svg>

After

Width:  |  Height:  |  Size: 2 KiB

1
www/img/logo.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="252.5 17 185 64"><path d="M437.6 32.1H428l-5.6 23.4-.8 3.1c-.6.2-1 .2-1.7.4-1 .2-1.9.2-2.9.2-1.3 0-2.1-.2-2.9-.6-.6-.4-1.3-.8-1.5-1.5-.2-.6-.4-1.5-.4-2.3s.2-1.9.4-2.7l2.9-12.2 1.9-8.1h-9.8l-4.5 18.7c-.6 2.3-.8 4.5-.8 6.4 0 2.1.2 3.8.8 5.3.6 1.5 1.9 2.7 3.6 3.6 1.7.8 4.1 1.3 7 1.3 2.1 0 4.1-.2 5.6-.6h.2c-.4 1.9-1.3 3.4-2.7 4.7-1.5 1.3-3.4 1.9-6.2 1.9-1 0-2.3 0-3.1-.2l-2 7.9c1.3.2 2.7.2 4.3.2 2.9 0 5.6-.4 7.7-1 2.1-.6 4.1-1.7 5.8-2.9 1.5-1.3 2.9-2.9 4.1-5.1 1-2.1 1.9-4.5 2.5-7.2l6.6-27.8 1.1-4.9zM397.4 52c-.6 2.3-.8 4.9-.6 7.4.2 2.5 1.3 6.2 2.1 8.1h-9.3c-1-1.9-1-2.7-1.3-3.4-1.3 1-2.5 1.7-4.1 2.3-1.5.6-2.9 1-4.9 1-2.1 0-4.1-.4-5.6-1s-2.7-1.7-3.8-2.9c-1-1.3-1.7-2.7-2.1-4.5s-.6-3.4-.6-5.6c0-2.9.6-5.8 1.5-8.3 1-2.5 2.5-4.9 4.5-6.8 1.9-1.9 6.4-6.4 13.8-6.4h14.9L397.4 52zm-6.8-11.8c-4.5 0-5.3 0-7.2.8-1.3.6-2.3 1.7-3.4 2.9-.8 1-1.7 2.5-2.3 4.1-.6 1.5-.8 3.1-.8 4.9 0 2.1.4 3.6 1 4.9.6 1.2 1.9 1.7 3.8 1.7 1 0 1.9-.2 2.7-.6.8-.4 1.7-1 2.5-1.9 0-1 .2-2.1.4-3.4.2-1.3.4-2.3.6-3.1l2.7-10.3m-25.8 6c0 3.1-.6 6-1.5 8.7-1 2.5-2.5 4.9-4.3 6.8-1.9 1.9-4.1 3.4-6.6 4.5s-5.3 1.7-8.3 1.7c-1.5 0-2.9-.2-4.5-.4l-2.9 11.6h-9.5l11-46.8H351c2.3 0 4.5.4 6.2 1s3.1 1.7 4.3 2.9c1 1.3 1.9 2.7 2.5 4.5.6 1.6.8 3.5.8 5.5zm-23.5 13.1c.6.2 1.7.2 2.7.2 1.7 0 3.1-.2 4.7-.8 1.3-.6 2.5-1.5 3.6-2.5 1-1 1.7-2.5 2.3-4.1.6-1.5.8-3.4.8-5.3s-.4-3.4-1.3-4.7c-.8-1.3-2.3-1.9-4.3-1.9H346l-4.7 19.1zm-20 0c-1.3 0-2.1-.2-2.9-.6-.6-.4-1.3-.8-1.5-1.5-.2-.6-.4-1.5-.4-2.3 0-.8.2-1.9.4-2.7l2.9-12.2h10.8l1.9-8.1h-11l2.5-10.2-10.2 1.7-6.4 27.4c-.6 2.3-.8 4.5-.8 6.4 0 2.1.2 3.8.8 5.3.6 1.5 1.9 2.7 3.6 3.6 1.7.9 4.1 1.3 7 1.3 2.1 0 4.1-.2 5.6-.6.2 0 .4 0 .6-.2l1.9-8.3c-.6.2-1.3.4-1.9.4-1 .6-1.9.6-2.9.6zm-24.4-27.2l-8.5 35.5h9.5l8.5-35.5zm10.3-4.3l1.5-6.1h-9.5l-1.5 6.1zm-31.6 4.3c2.1 0 3.8.4 5.3 1s2.7 1.7 3.8 2.9c1 1.3 1.7 2.7 2.1 4.5s.6 3.4.6 5.3c0 2.9-.6 5.8-1.7 8.5-1 2.5-2.5 4.9-4.5 7-1.9 2.1-4.1 3.4-6.8 4.7-2.5 1-5.3 1.7-8.3 1.7H264c-1.1 0-2.1 0-3.4-.2-1.3-.2-2.5-.4-4.1-.8-1.5-.4-2.7-.8-4.1-1.5l11.1-46.6 10-1.5-4.1 16.6c.8-.4 1.7-.6 2.5-.8 1.8-.8 2.6-.8 3.7-.8zm-8.5 27.6c1.5 0 2.9-.4 4.3-1s2.5-1.7 3.4-2.9c1-1.3 1.7-2.5 2.3-4.1s.8-3.1.8-4.9c0-2.1-.4-3.6-1-4.9-.6-1-2.1-1.7-4.1-1.7-.6 0-1.3 0-2.1.2-1 .2-1.7.6-2.5 1.3L264 59.4c1.3.2 1.7.2 1.9.2.3.1.8.1 1.2.1z" fill="#002855"/></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -8,7 +8,7 @@
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" type="text/css" href="css/copay.css">
<title>{{appConfig.nameCase}} - {{appConfig.description}}</title>
<link rel="shortcut icon" href="img/favicon.ico">
<link rel="shortcut icon" href="img/app/favicon.ico">
</head>
<body>

View file

@ -1,4 +1,4 @@
<ion-view id="add-address">
<ion-view id="add-address" hide-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-title>
<span translate>Add Contact</span>

View file

@ -1,4 +1,4 @@
<ion-view id="view-address-book">
<ion-view id="view-address-book" hide-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-back-button>
</ion-nav-back-button>
@ -24,7 +24,7 @@
</div>
</ion-content>
<ion-content class="ng-hide" ng-show="!isEmptyList">
<div class="bar bar-header item-input-inset" ng-show="!isEmptyList">
<div class="bar bar-header item-input-inset" ng-show="!isEmptyList && addressbook.length >= 5">
<label class="item-input-wrapper">
<i class="icon ion-ios-search placeholder-icon"></i>
<input type="search"
@ -36,7 +36,7 @@
<ion-list>
<ion-item ng-repeat="addrEntry in addressbook"
class="item-icon-right item-avatar"
ui-sref="tabs.addressbook.view({address:addrEntry.address})">
ui-sref="tabs.addressbook.view({address:addrEntry.address, email: addrEntry.email, name: addrEntry.name})">
<gravatar name="{{addrEntry.name}}" width="50" email="{{addrEntry.email}}"></gravatar>
<h2>{{addrEntry.name}}</h2>
<p>{{addrEntry.address}}</p>

View file

@ -1,4 +1,4 @@
<ion-view id="address-book-view">
<ion-view id="address-book-view" hide-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-back-button>
</ion-nav-back-button>

View file

@ -1,4 +1,4 @@
<ion-view id="view-amount">
<ion-view id="view-amount" hide-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-title>
{{'Enter Amount'|translate}}
@ -12,15 +12,17 @@
<div>
<div class="item item-no-bottom-border" translate>Recipient</div>
<div class="item item-text-wrap item-icon-left bitcoin-address" ng-class="{'item-big-icon-left':isCard}">
<i ng-if="isWallet" class="icon ion-briefcase size-21"></i>
<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">
<img src="img/icon-wallet.svg" ng-style="{'background-color': toColor}" class="bg"/>
</i>
<span ng-if="!isWallet">
<gravatar ng-if="!isCard" class="send-gravatar" name="{{toName}}" width="30" email="{{toEmail}}"></gravatar>
<i ng-if="isCard" class="icon big-icon-svg">
<gravatar ng-if="!cardId" class="send-gravatar" name="{{toName}}" width="30" email="{{toEmail}}"></gravatar>
<i ng-if="cardId" class="icon big-icon-svg">
<div class="bg icon-bitpay-card"></div>
</i>
</span>
<span ng-class="{'m10l':isCard}">{{toName || toAddress}}</span>
<span class="m10l">{{toName || toAddress}}</span>
</div>
</div>

View file

@ -1,4 +1,4 @@
<ion-view id="wallet-backup-phrase">
<ion-view id="wallet-backup-phrase" hide-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-title>
{{viewTitle}}

View file

@ -1,4 +1,4 @@
<ion-view id="backup-warning" class="onboarding" ng-controller="backupWarningController">
<ion-view id="backup-warning" class="onboarding" ng-controller="backupWarningController" hide-tabs>
<ion-nav-bar>
<ion-nav-buttons side="primary">
<button class="button button-back button-clear" ng-click="goBack()">

View file

@ -2,9 +2,9 @@
<ion-nav-bar class="bar-royal">
<ion-nav-back-button>
</ion-nav-back-button>
<ion-nav-title>BitPay Card</ion-nav-title>
<ion-nav-buttons side="secondary" ng-show="bitpayCard.bitpayCardAuthenticated">
<button class="button back-button" ui-sref="tabs.bitpayCard.preferences">
<ion-nav-title>BitPay Visa&reg; Card</ion-nav-title>
<ion-nav-buttons side="secondary">
<button class="button back-button" ng-show="!error" ui-sref="tabs.bitpayCard.preferences">
<i class="icon ion-ios-gear-outline"></i>
</button>
</ion-nav-buttons>
@ -16,145 +16,80 @@
Sandbox version. Only for testing purpose
</div>
<div class="m20t text-center size-12 text-gray" ng-show="!bitpayCard.bitpayCardAuthenticated && bitpayCard.loadingSession">
Loading...
</div>
<div ng-show="!bitpayCard.bitpayCardAuthenticated && !bitpayCard.loadingSession">
<div class="text-center m20t">
<img src="img/bitpay-card-visa.svg" width="200">
<div class="oh pr" ng-show="!error">
<div class="amount">
<div ng-if="bitpayCard.bitpayCardCurrentBalance" ng-click="bitpayCard.update()">
<div class="size-36 m20b">${{bitpayCard.bitpayCardCurrentBalance}}</div>
<a class="button button-positive button-small"
ui-sref="tabs.bitpayCard.amount({'cardId': cardId, 'toName': 'BitPay Card'})" translate>
Add Funds
</a>
</div>
<h4 class="text-center">
<span ng-show="!bitpayCard.bitpayCardTwoFactorPending">Login to your account</span>
<span ng-show="bitpayCard.bitpayCardTwoFactorPending">2-Step Verification</span>
</h4>
<form
ng-show="!bitpayCard.bitpayCardTwoFactorPending"
name="authenticateForm"
ng-submit="bitpayCard.authenticate(email, password)"
novalidate>
<div class="card list">
<label class="item item-input item-stacked-label">
<span class="input-label">Email</span>
<input name="email"
type="email"
ng-model="email"
ng-disabled="bitpayCard.authenticating"
required>
</label>
<label class="item item-input item-stacked-label">
<span class="input-label">Password</span>
<input name="password"
type="password"
ng-model="password"
ng-disabled="bitpayCard.authenticating"
required>
</label>
</div>
<input class="button button-block button-positive"
type="submit"
ng-disabled="!authenticateForm.$valid || bitpayCard.authenticating"
value="Login">
</form>
<p ng-show="bitpayCard.bitpayCardTwoFactorPending" class="size-12 text-center text-gray">
Enter the verification code generated by the authenticator app on your phone.
</p>
<form
ng-show="bitpayCard.bitpayCardTwoFactorPending"
name="authenticate2FAForm"
ng-submit="bitpayCard.authenticate2FA(twoFactorCode)"
novalidate>
<div class="list">
<label class="item item-input item-stacked-label">
<span class="input-label">Verification Code</span>
<input name="twoFactorCode"
type="text"
ng-model="twoFactorCode"
ng-disabled="bitpayCard.authenticating"
required>
</label>
</div>
<input class="button button-block button-positive"
type="submit"
ng-disabled="!authenticate2FAForm.$valid || bitpayCard.authenticating"
value="Login">
</form>
</div>
<div ng-show="bitpayCard.bitpayCardAuthenticated">
<div class="oh pr">
<div class="amount">
<div ng-if="!loadingHistory && bitpayCard.bitpayCardCurrentBalance" ng-click="bitpayCard.update()">
<div class="size-36 m20b">${{bitpayCard.bitpayCardCurrentBalance}}</div>
<a class="button button-positive button-small" ui-sref="tabs.bitpayCard.amount({'isCard': true, 'toName': 'BitPay Card'})">
<i class="icon ion-ios-plus-empty"></i> {{'Add Funds'|translate}}
</a>
</div>
<div ng-if="loadingHistory" class="m10t">
<strong class="size-36">...</strong>
</div>
<div ng-if="!bitpayCard.bitpayCardCurrentBalance" class="m10t">
<strong class="size-36">...</strong>
</div>
</div>
<div
class="m10t text-center padding"
ng-show="!bitpayCard.bitpayCardTransactionHistory[0] &&
!bitpayCard.bitpayCardInvoiceHistory[0] && (!loadingHistory || !bitpayCardCached)">
<i class="icon ion-ios-arrow-thin-up size-24"></i>
<h1>Get started</h1>
<h4>Your BitPay Card is ready. Add funds to your card to start using your card at stores and ATMs worldwide.</h4>
<div class="wallet-details-wallet-info">
<img style="height:0.6em" ng-show="loadingHistory" src="img/icon-sync-white.svg">
</div>
</div>
<div class="list" ng-if="bitpayCardCached">
<div class="item item-divider">
<select class="select-style" ng-model="dateRange" ng-change="bitpayCard.update(dateRange)">
<option value="last30Days">Recent Activity</option>
<option value="lastMonth">Last Month</option>
<option value="all">All Activity</option>
<div ng-show="error" class="text-center m10t assertive">
{{error}}
</div>
<div
class="m10t text-center padding ng-hide"
ng-show="bitpayCard.getStarted">
<i class="icon ion-ios-arrow-thin-up size-24"></i>
<h1>Get started</h1>
<h4>Your BitPay Card is ready. Add funds to your card to start using your card at stores and ATMs worldwide.</h4>
</div>
<div class="list" ng-show="!bitpayCard.getStarted">
<label class="item item-input item-select">
<div class="input-label" translate>
Activity
</div>
<select ng-model="dateRange.value" ng-change="bitpayCard.update()">
<option value="last30Days" selected translate>Recent</option>
<option value="lastMonth" translate>Last Month</option>
<option value="all" translate>All</option>
</select>
</label>
<div ng-if="bitpayCard.bitpayCardTransactionHistory[0]"
ng-repeat="tx in bitpayCard.bitpayCardTransactionHistory | orderBy: ['pending','-timestamp']"
class="item row">
<div class="col col-10">
<img class="m5t" ng-src="img/mcc-icons/{{tx.icon}}.svg" width="22">
</div>
<div
ng-repeat="tx in bitpayCard.bitpayCardTransactionHistory | orderBy: ['pending','-timestamp']"
class="item row"
ng-init="bitpayCard.getMerchantInfo(tx)">
<div class="col col-10" ng-init="icon = bitpayCard.getIconName(tx)">
<img class="m5t" ng-src="img/mcc-icons/{{icon}}.svg" width="22">
</div>
<div class="col">
<div class="size-12 text-bold">
{{tx.merchant.name}}
</div>
<div class="size-12">
{{tx.merchant.city}}, {{tx.merchant.state}}
</div>
<div class="col col-50">
<div class="size-12 text-bold">
{{tx.merchant.name}}
</div>
<div
ng-init="desc = bitpayCard.processDescription(tx)"
class="col size-12">
{{desc}}
<div class="size-12">
{{tx.merchant.city}}, {{tx.merchant.state}}
</div>
<div class="col">
<img ng-show="!tx.pending" ng-src="img/check.svg" width="14">
<img ng-show="tx.pending" ng-src="img/sync.svg" width="14">
</div>
<div class="col text-right size-12 text-gray">
<div class="size-14"
ng-class="{
'text-success': tx.amount.indexOf('-') == -1 && !tx.pending,
'text-gray': tx.amount.indexOf('-') == -1 && tx.pending}">
{{tx.amount | currency:'$':2 }}
</div>
<time>{{tx.timestamp | amTimeAgo}}</time>
</div>
<!--
<div class="col size-12">
{{tx.desc}}
</div>
-->
<div class="col col-10 text-center p10t">
<img ng-show="!tx.pending" ng-src="img/check.svg" width="14">
<img ng-show="tx.pending" ng-src="img/sync.svg" width="14">
</div>
<div class="col text-right size-12 text-gray">
<div class="size-14"
ng-class="{
'text-success': tx.amount.indexOf('-') == -1 && !tx.pending,
'text-gray': tx.amount.indexOf('-') == -1 && tx.pending}">
{{tx.amount | currency:'$':2 }}
</div>
<time ng-if="!tx.pending">{{tx.timestamp | amTimeAgo}}</time>
<span ng-if="tx.pending" class="tu" translate>Pending</span>
</div>
</div>
</div>

View file

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

View file

@ -105,7 +105,7 @@
</div>
<div class="m10t">
<button class="button button-positive"
ng-click="openExternalLink('https://www.amazon.com/gc/redeem?claimCode=' + buy.giftCard.claimCode, '_system')">
ng-click="openExternalLink('https://www.amazon.com/gc/redeem?claimCode=' + buy.giftCard.claimCode)">
Redeem Now
</button>
</div>

View file

@ -1,4 +1,4 @@
<ion-view id="view-confirm">
<ion-view id="view-confirm" hide-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-title>
{{'Confirm'|translate}}
@ -22,9 +22,21 @@
<div class="info">
<div class="item">
<span class="label" translate>To</span>
<span class="payment-proposal-to" copy-to-clipboard="toAddress">
<img src="img/icon-bitcoin-small.svg">
<contact class="ellipsis" address="{{toAddress}}">{{toAddress}}</contact>
<span class="payment-proposal-to">
<img ng-if="!cardId" src="img/icon-bitcoin-small.svg">
<img ng-if="cardId" src="img/icon-card.svg" width="34">
<contact ng-if="!toName && !_paypro" class="ellipsis" address="{{toAddress}}" copy-to-clipboard="toAddress">
</contact>
<span class="m15l size-14" ng-if="toName && !_paypro" copy-to-clipboard="toAddress">{{toName}}</span>
<div ng-if="_paypro" ng-click="openPPModal(_paypro)" class="m15l size-14 w100p pointer">
<i ng-show="_paypro.verified && _paypro.caTrusted" class="ion-locked" style="color:green"></i>
<i ng-show="!_paypro.caTrusted" class="ion-unlocked" style="color:red"></i>
<span class="ellipsis" ng-show="!toName">{{_paypro.domain || _paypro.toAddress}}</span>
<span ng-show="toName">{{toName}}</span>
</div>
<!-- <contact ng-if="!tx.hasMultiplesOutputs" class="ellipsis" address="{{toAddress}}"></contact>
<span ng-if="tx.hasMultiplesOutputs" translate>Multiple recipients</span> -->
</span>

View file

@ -5,17 +5,17 @@
</ion-nav-back-button>
</ion-nav-bar>
<ion-content ng-init="file = true">
<ion-content>
<div class="row text-center top-tabs">
<div class="col" ng-click="file = true" ng-style="file && {'border-bottom-style': 'solid'}">
<div class="col" ng-click="file.value = true" ng-style="file.value && {'border-bottom-style': 'solid'}">
<span class="" translate>File/Text</span>
</div>
<div class="col" ng-click="file = false" ng-style="!file && {'border-bottom-style': 'solid'}">
<div class="col" ng-click="generateQrCode();" ng-style="!file.value && {'border-bottom-style': 'solid'}">
<span class="" translate>QR Code</span>
</div>
</div>
<div ng-include="'views/tab-export-file.html'" ng-if="file"></div>
<div ng-include="'views/tab-export-qrCode.html'" ng-if="!file"></div>
<div ng-include="'views/tab-export-file.html'" ng-if="file.value"></div>
<div ng-include="'views/tab-export-qrCode.html'" ng-if="!file.value"></div>
</ion-content>
</ion-view>

View file

@ -1,17 +1,22 @@
<ion-view>
<ion-view id="glidera">
<ion-nav-bar class="bar-royal">
<ion-nav-back-button>
</ion-nav-back-button>
<ion-nav-title>Glidera</ion-nav-title>
<ion-nav-buttons side="secondary">
<button class="button back-button" ng-show="token" ui-sref="tabs.buyandsell.glidera.preferences">
<i class="icon ion-ios-gear-outline"></i>
</button>
</ion-nav-buttons>
</ion-nav-bar>
<ion-content>
<div class="box-notification error" ng-show="!network">
<div class="box-notification error m0" ng-show="!network">
Glidera is disabled for this application
</div>
<div class="box-notification warning" ng-show="network == 'testnet'">
<div class="box-notification warning m0" ng-show="network == 'testnet'">
Testnet wallets only work with Glidera Sandbox Accounts
</div>
@ -19,25 +24,24 @@
<div ng-init="showOauthForm = false">
<div class="text-center m20v">
<img src="img/glidera-logo.png" ng-click="update(token, permissions)" width="200">
<img src="img/glidera-logo.png" ng-click="update({'fullUpdate': true})" width="200">
</div>
<div class="text-center small-10 small-centered columns" ng-show="!showOauthForm">
<p class="m10b">You can buy and sell Bitcoin with a US bank account directly in Copay.</p>
<p class="glidera-lead">You can buy and sell Bitcoin with a US bank account directly in this app.</p>
<p class="m20t padding text-gray size-12 text-left">
<p class="disclosure">
DISCLOSURE.<br>
Glidera Inc. (Glidera) is providing the service of buying or selling bitcoins to Copay users. To enable this
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 Copay must agree to the service agreement presented by Glidera prior to obtaining
(#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"
ng-click="openExternalLink(glidera.getAuthenticateUrl(), '_system'); showOauthForm = true">
ng-click="openExternalLink(glidera.getAuthenticateUrl()); showOauthForm = true">
Connect to Glidera
</button>
<div class="m10t">
@ -60,7 +64,7 @@
<div class="col">
<input type="button"
value="Cancel"
class="button button-block button-light"
class="button button-standard button-light"
ng-click="showOauthForm = false">
</div>
<div class="col">
@ -76,34 +80,20 @@
</div>
</div>
<div ng-if="token && permissions">
<div ng-if="token">
<div class="text-center m20v">
<img src="img/glidera-logo.png" ng-click="update(token, permissions)" width="200">
<img src="img/glidera-logo.png" ng-click="update({'fullUpdate': true})" width="200">
</div>
<div class="list">
<a class="item item-icon-left item-icon-right" href ui-sref="tabs.buyandsell.glidera.preferences">
<i class="icon ion-ios-gear"></i>
<span ng-show="personalInfo">{{personalInfo.firstName}} {{personalInfo.lastName}}</span>
<span class="item-note" ng-show="email">
{{email}}
</span>
<i class="icon bp-arrow-right"></i>
<div class="text-center m30v size-12"
ng-show="status && !status.userCanTransact">
<h4 class="text-bold">Complete Setup</h4>
<div>Your Glidera account is not ready to transact. Please, verify it at <b>Glidera.io</b></div>
<a class="button"
ng-init="glideraUrl = network == 'testnet' ? 'https://sandbox.glidera.io/login' : 'https://glidera.io/login'"
ng-click="openExternalLink(glideraUrl)">
Go to Glidera
</a>
</div>
<div class="padding">
<div class="text-center m30v size-12"
ng-show="status && !status.userCanTransact">
<h4 class="text-bold"> Complete Setup</h4>
<div>Your Glidera account is not ready to transact. Please, verify it at <b>Glidera.io</b></div>
<a class="button"
ng-init="glideraUrl = network == 'testnet' ? 'https://sandbox.glidera.io/login' :
'https://glidera.io/login'"
ng-click="openExternalLink(glideraUrl)">
Go to Glidera
</a>
</div>
</div>
</div>
<div class="list"
ng-show="status && status.userCanTransact">
@ -123,7 +113,7 @@
</a>
</div>
<div class="list card" ng-show="permissions.transaction_history">
<div class="list card" ng-show="permissions && permissions.transaction_history">
<div class="item item-heading">
Activity
</div>

View file

@ -1,14 +1,17 @@
<li class="p10 oh" copy-to-clipboard="output.toAddress">
<div class="item" copy-to-clipboard="output.toAddress">
<span class="text-gray" translate>To</span>:
<span class="right enable_text_select">{{output.toAddress || output.address}}</span>
</li>
<li class="p10" copy-to-clipboard="output.amountStr">
</div>
<div class="item" copy-to-clipboard="output.amountStr">
<span class="text-gray" translate>Amount</span>:
<span class="right enable_text_select">{{output.amountStr}}
<span ng-show="output.alternativeAmountStr" class="label gray radius">{{output.alternativeAmountStr}}</span>
<span ng-show="output.alternativeAmountStr">({{output.alternativeAmountStr}})</span>
</span>
</li>
<li class="p10 oh" copy-to-clipboard="output.message">
</div>
<div class="item" copy-to-clipboard="output.message" ng-show-"output.message">
<span class="text-gray" translate>Note</span>:
<span class="right enable_text_select">{{output.message}}</span>
</li>
</div>

View file

@ -1,12 +1,15 @@
<div class="wallets" ng-show="wallets[0]">
<ion-slides class="slides" slider="data.slider">
<ion-slides class="slides" slider="data.slider" options="sliderOptions">
<ion-slide-page ng-repeat="wallet in wallets track by $index">
<div class="card" ng-click="slider.slideTo($index)">
<div class="item item-icon-left text-right">
<div class="item item-icon-left text-right" ng-class="{'noBalance': !wallet.status.availableBalanceStr}">
<i class="icon big-icon-svg">
<img src="img/icon-wallet.svg" ng-style="{'background-color': wallet.color}" class="bg"/>
</i>
<span>{{wallet.name || wallet.id}}</span>
<span class="wallet-name">{{wallet.name || wallet.id}}</span>
<span class="item-note m10l">
{{wallet.status.availableBalanceStr}}
</span>
<span class="item-note m10l" ng-show="wallet.n > 1 && wallet.isComplete()">
{{wallet.m}}-of-{{wallet.n}}
</span>

View file

@ -23,7 +23,7 @@
</div>
<div class="m10t" ng-show="card.cardStatus == 'Fulfilled'">
<button class="button button-positive"
ng-click="openExternalLink('https://www.amazon.com/gc/redeem?claimCode=' + card.claimCode, '_system')">
ng-click="openExternalLink('https://www.amazon.com/gc/redeem?claimCode=' + card.claimCode)">
Redeem Now
</button>
</div>

View file

@ -7,13 +7,23 @@
</button>
</ion-nav-buttons>
</ion-nav-bar>
<ion-content class="has-header" scroll="false">
<ion-scroll ng-include="'views/includes/terms.html'" direction="y" ng-style="{'height': '60%'}"></ion-scroll>
<div id="agree-to-terms">
<a ng-click="openExternalLink('https://copay.io/disclaimer')" ng-show="lang != 'en'" translate>Official English Disclaimer</a>
<ion-checkbox ng-model="terms.accept3"></ion-checkbox>
<p translate>I have read, understood, and agree with the Terms of use.</p>
<button ng-disabled="!terms.accept3" class="button button-block button-positive" ng-click="termsModal.hide(); confirm()" translate>Confirm & Finish</button>
</div>
<ion-content class="has-header">
<div ng-include="'views/includes/terms.html'" direction="y"></div>
</ion-content>
<div id="agree-to-terms">
<div class="text-center">
<a ng-click="openExternalLink('https://copay.io/disclaimer', true, 'View Terms of Service', 'The official English Terms of Service are available on the BitPay website. Would you like to view them?', 'Open Website', 'Go Back')" ng-show="lang != 'en'" translate>Official English Disclaimer</a>
</div>
<div class="row">
<div class="col col-20">
<ion-checkbox ng-model="terms.accept3"></ion-checkbox>
</div>
<div class="col col-80">
<p translate>I have read, understood, and agree with the Terms of use.</p>
</div>
</div>
<div class="text-center">
<button ng-disabled="!terms.accept3" class="button utton-block button-positive" ng-click="termsModal.hide(); confirm()" translate>Confirm & Finish</button>
</div>
</div>
</ion-modal-view>

View file

@ -55,9 +55,9 @@
</div>
<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' && !btx.hasMultiplesOutputs && btx.addressTo && btx.addressTo != 'N/A'">
<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 copy-to-clipboard="btx.addressTo">
<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-unlock color-yellowi"></i> {{btx.merchant.domain}}</span>
@ -69,8 +69,22 @@
</div>
</div>
<div ng-show="btx.hasMultiplesOutputs" class="item item-icon-right item-heading" ng-click="showMultiplesOutputs = !showMultiplesOutputs">
{{'Recipients'|translate}}
[ {{btx.recipientCount}} ]
<i class="icon bp-arrow-up" ng-show="showMultiplesOutputs"></i>
<i class="icon bp-arrow-down" ng-show="!showMultiplesOutputs"></i>
</div>
<div class="item" ng-show="btx.hasMultiplesOutputs && showMultiplesOutputs"
ng-repeat="output in btx.outputs"
ng-include="'views/includes/output.html'">
</div>
<div class="item item-icon-left"
ng-click="openExternalLink('https://' + (getShortNetworkName() == 'test' ? 'test-' : '') + 'insight.bitpay.com/tx/' + btx.txid)">
ng-click="openExternalLink('https://' + (getShortNetworkName() == 'test' ? 'test-' : '') + 'insight.bitpay.com/tx/' + btx.txid, true, 'View Transaction on Insight', 'Would you like to view this transaction on the Insight blockchain explorer?', 'Open Insight', 'Go back')">
<i class="icon ion-ios-upload-outline"></i>
<span class="text-gray" translate>View transaction on the blockchain</span>
</div>
@ -120,20 +134,6 @@
</span>
</div>
<div ng-show="btx.hasMultiplesOutputs" class="item" ng-click="showMultiplesOutputs = !showMultiplesOutputs">
{{'Recipients'|translate}}
<span class="item-note">
{{btx.recipientCount}}
<i ng-show="showMultiplesOutputs" class="icon-arrow-up3 size-24"></i>
<i ng-show="!showMultiplesOutputs" class="icon-arrow-down3 size-24"></i>
</span>
</div>
<div class="item" ng-show="btx.hasMultiplesOutputs && showMultiplesOutputs"
ng-repeat="output in btx.outputs"
ng-include="'views/includes/output.html'">
</div>
<div ng-if="btx.action == 'invalid'" class="item">
<span class="right" translate>
This transaction has become invalid; possibly due to a double spend attempt.

View file

@ -16,7 +16,7 @@
v{{version}}
</span>
</div>
<div class="item item-icon-left" ng-click="openExternalLink('https://github.com/bitpay/'+name+'/tree/'+commitHash)">
<div class="item item-icon-left" ng-click="openExternalLink('https://github.com/bitpay/'+name+'/tree/'+commitHash+'', true, 'Open GitHub Project', 'You can see the latest developments and contribute to this open source app by visiting our project on GitHub.', 'Open GitHub', 'Go Back')">
<i class="icon ion-social-github-outline"></i>
<span translate>Commit hash</span>
<span class="item-note">

View file

@ -2,14 +2,21 @@
<ion-nav-bar class="bar-royal">
<ion-nav-back-button>
</ion-nav-back-button>
<ion-nav-title>Preferences</ion-nav-title>
<ion-nav-title>BitPay Visa&reg; Cards</ion-nav-title>
</ion-nav-bar>
<ion-content ng-controller="preferencesBitpayCardController">
<ul class="list">
<li class="item assertive" ng-click="logout()">
Log out
</li>
</ul>
<ion-content>
<div class="list">
<div class="item item-divider" translate>
Cards
</div>
<div class="item" ng-repeat="card in bitpayCards">
xxxx-xxxx-xxxx-{{card.lastFourDigits}}
</div>
<div class="item item-divider"></div>
<div class="item assertive" ng-click="remove()">
Removes all data from this device
</div>
</div>
</ion-content>
</ion-view>

View file

@ -9,10 +9,11 @@
<ion-content>
<div class="settings-explaination">
<div class="settings-description" translate>
You'll receive email notifications about payments sent and received from this wallet.
You'll receive email notifications about payments sent and received from {{wallet.name}}.
</div>
<a href ng-if="emailForExist" class="settings-description-disabled" ng-click="save(null)" translate>Remove email notifications</a>
</div>
<form name="emailForm" ng-submit="save(emailForm)" novalidate>
<form name="emailForm" ng-submit="save(email.value)" novalidate>
<div class="list settings-input-group">
<label class="item item-input item-stacked-label">
<span class="input-label" translate>Email Address</span>

View file

@ -1,4 +1,4 @@
<ion-view>
<ion-view class="settings">
<ion-nav-bar class="bar-royal">
<ion-nav-title>{{'Transaction History' | translate}}</ion-nav-title>
<ion-nav-back-button>
@ -6,17 +6,20 @@
</ion-nav-bar>
<ion-content>
<div class="item item-divider"></div>
<div class="item" ng-show="csvReady && !isCordova" ng-csv="csvContent" csv-header="csvHeader" filename="Copay-{{wallet.name}}.csv">
<a class="item ng-hide" href ng-show="csvReady && !isCordova" ng-csv="csvContent" csv-header="csvHeader" filename="Copay-{{wallet.name}}.csv">
<span translate>Export to file</span>
</div>
<div class="item" ng-show="!csvReady && !isCordova">
</a>
<a class="item ng-hide" href ng-show="!csvReady && !isCordova">
<span translate>Export to file</span>
<span class="item-note" translate>
<span class="item-note ng-hide" ng-show="!err" translate>
preparing...
</span>
</div>
<div class="item assertive" ng-click="clearTransactionHistory()">
<span translate>Clear cache</span>
</div>
<span class="item-note ng-hide" ng-show="err">
{{err | translate}}
</span>
</a>
<a class="item" ng-click="clearTransactionHistory()">
<span class="assertive" translate>Clear cache</span>
</a>
</ion-content>
</ion-view>

View file

@ -13,11 +13,13 @@
</ion-radio>
</div>
<div class="padding">
<span translate>All contributions to Copay's translation are welcome. Sign up at crowdin.com and join the Copay project at</span>
<a ng-click="openExternalLink('https://crowdin.com/project/copay', '_system')">https://crowdin.com/project/copay</a>.
<span translate>Were always looking for translation contributions! You can make corrections or help to make this app available in your native language by joining our community on Crowdin.</span>
<button class="button button-standard button-primary" ng-click="openExternalLink(true, 'Open Translation Community', 'You can make contributions by signing up on our Crowdin community translation website. Were looking forward to hearing from you!
', 'Open Crowdin', 'Go Back')" translate>Contribute Translations
</button>
<span translate>
Don't see your language on Crowdin? Contact the Owner on Crowdin! We'd love to support your language.
</span>
</div>
</ion-content>
</ion-view>
</ion-view>

View file

@ -68,7 +68,6 @@
</button>
<div ng-show="isCordova">
<h4 translate>Export options</h4>
<button class="button button-standard button-primary"
ng-disabled="(!formData.password || formData.password != formData.repeatpassword)"
ng-style="{'background-color':wallet.color}"

View file

@ -5,7 +5,7 @@
<ion-content class="padding">
<ion-refresher
ng-if="isCordova"
ng-if="isAndroid"
pulling-icon="ion-ios-refresh"
spinner="ios-small"
on-refresh="onRefresh()">
@ -59,7 +59,7 @@
<a ui-sref="tabs.add" ng-if="wallets[0]"><i class="icon ion-ios-plus-empty list-add-button"></i></a>
</div>
<div>
<a ng-if="!wallets[0]" ui-sref="tabs.add" class="item item-icon-left item-big-icon-left item-icon-right next-step ng-hide">
<a ng-if="!wallets[0]" ui-sref="tabs.add" class="item item-icon-left item-big-icon-left item-icon-right next-step">
<i class="icon big-icon-svg">
<div class="bg icon-create-wallet"></div>
</i>
@ -78,7 +78,6 @@
{{wallet.m}}-of-{{wallet.n}}
</span>
</span>
<p>
<span ng-if="!wallet.isComplete()" class="assertive" translate>
Incomplete
@ -91,15 +90,26 @@
</p>
<i class="icon bp-arrow-right"></i>
</a>
<a ui-sref="tabs.bitpayCard"
ng-if="wallets[0] && externalServices.BitpayCard && bitpayCardEnabled"
class="item item-sub item-icon-left item-big-icon-left item-icon-right">
<a ng-repeat="card in bitpayCards"
ui-sref="tabs.bitpayCard({id:card.id})"
ng-if="bitpayCardEnabled && bitpayCards[0]"
class="item item-icon-left item-big-icon-left item-icon-right">
<i class="icon big-icon-svg">
<div class="bg icon-bitpay-card"></div>
</i>
<h2>BitPay Card</h2>
<p ng-if="!bitpayCard" translate>Add funds to get started</p>
<span ng-if="bitpayCard">${{bitpayCard.balance}}</span>
<h2>BitPay Visa&reg; Card</h2>
<p>{{cardsHistory[card.id].balance ? '$' + cardsHistory[card.id].balance : 'Add funds to get started'|translate}}</p>
<i class="icon bp-arrow-right"></i>
</a>
<a ui-sref="tabs.bitpayCardIntro"
ng-if="bitpayCardEnabled && !bitpayCards[0] && externalServices.BitpayCard"
class="item item-icon-left item-big-icon-left item-icon-right">
<i class="icon big-icon-svg">
<div class="bg icon-bitpay-card"></div>
</i>
<h2>BitPay Visa&reg; Card</h2>
<p translate>Add your card</p>
<i class="icon bp-arrow-right"></i>
</a>
</div>
@ -138,7 +148,7 @@
<i class="icon bp-arrow-down" ng-show="hideNextSteps"></i>
</div>
<div ng-show="!hideNextSteps">
<a ui-sref="tabs.bitpayCard" ng-if="!externalServices.BitpayCard && bitpayCardEnabled" class="item item-sub 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-icon-left item-big-icon-left item-icon-right next-step">
<i class="icon big-icon-svg">
<div class="bg icon-bitpay-card"></div>
</i>

View file

@ -2,7 +2,7 @@
<ion-nav-bar class="bar-royal">
<ion-nav-title>{{'Receive' | translate}}</ion-nav-title>
</ion-nav-bar>
<ion-content>
<ion-content scroll="false">
<div class="list card padding text-center" ng-if="!wallets[0]">
<span translate>No Wallet</span>
</div>
@ -59,23 +59,21 @@
</div>
</div>
</div>
<div class="row">
<div class="col" ng-show="isCordova && addr">
<div class="item item-icon-left" ng-click="shareAddress(addr)">
<i class="icon ion-ios-upload-outline"></i>
<span translate>Share</span>
</div>
<div id="qr-options" class="row text-center">
<div class="item item-icon-left" ng-click="shareAddress(addr)" ng-show="isCordova && addr">
<i class="icon ion-ios-upload-outline"></i>
<span translate>Share</span>
</div>
<div class="col" ng-class="{'center-block col-50': !isCordova || !addr}">
<div ng-class="{'center-block': !isCordova || !addr}">
<div class="item item-icon-left" ng-click="setAddress(true)">
<i class="icon ion-ios-loop"></i>
<span translate>Next Address</span>
</div>
</div>
</div>
<div class="row border-top">
<div id="bit-address" class="row border-top">
<div class="col col-90 center-block bit-address text-center">
<div class="item item-icon-left">
<div class="item item-icon-left item-icon-right">
<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" copy-to-clipboard="addr">{{addr}}</span>
@ -90,15 +88,4 @@
</div>
</article>
</ion-content>
<div id="first-time-tip" ng-if="firstTime">
<i class="ion-close close"></i>
<div class="row">
<h3 class="col col-60 center-block">Receive bitcoin by sharing your address</h3>
</div>
<div class="row">
<p class="col col-60 center-block">
Other bitcoin users can scan this code to send you money
</p>
</div>
</div>
</ion-view>

View file

@ -20,7 +20,7 @@
<span translate>Address Book</span>
<i class="icon bp-arrow-right"></i>
</a>
<a class="item item-icon-left item-icon-right" ng-click=openExternalLink("https://help.bitpay.com")>
<a class="item item-icon-left item-icon-right" ng-click="openExternalLink('https://help.bitpay.com', true, 'BitPay Help Center', 'Help and support information is available at the BitPay Help Center website. Would you like to go there now?', 'Open Help Center', 'Go Back')">
<i class="icon big-icon-svg">
<img src="img/icon-help-support.svg" class="bg"/>
</i>
@ -99,9 +99,11 @@
<i class="icon big-icon-svg circle">
<img src="img/icon-wallet.svg" ng-style="{'background-color': item.color}" class="bg"/>
</i>
{{item.name || item.id}}
<span ng-show="item.n > 1" class="text-light">
{{item.m}}-of-{{item.n}}
<span>
{{item.name || item.id}}
<span class="size-12 text-light" ng-show="item.n > 1">
{{item.m}}-of-{{item.n}}
</span>
</span>
<span class="right text-light assertive" ng-show="!item.isComplete()" translate>
Incomplete
@ -135,7 +137,6 @@
<span translate>About</span> {{appName}}
<i class="icon bp-arrow-right"></i>
</a>
<div class="item item-divider"></div>
</div>
</ion-content>

View file

@ -1,4 +1,4 @@
<ion-tabs class="tabs-icon-top tabs-color-active-positive ion-tabs-transparent" ng-class="{'tabs-item-hide': hideTabs}">
<ion-tabs class="tabs-icon-top tabs-color-active-positive ion-tabs-transparent {{$root.hideTabs}}">
<ion-tab title="Home" icon-off="ico-home" icon-on="ico-home-selected" ui-sref="tabs.home">
<ion-nav-view name="tab-home"></ion-nav-view>

View file

@ -11,7 +11,7 @@
</div>
<button class="button button-standard button-primary"
ng-show="lang != 'en'"
ng-click="openExternalLink(disclaimerUrl)" translate>
ng-click="openExternalLink(disclaimerUrl, true, 'View Terms of Service', 'The official English Terms of Service are available on the BitPay website. Would you like to view them?', 'Open Website', 'Go Back')" translate>
Official English Disclaimer
</button>
</ion-content>

View file

@ -21,8 +21,10 @@
</div>
<div class="padding">
<p>
<span translate>All contributions to Copay's translation are welcome. Sign up at crowdin.com and join the Copay project at</span>
<a ng-click="openExternalLink('https://crowdin.com/project/copay', '_system')">https://crowdin.com/project/copay</a>.
<span translate>Were always looking for translation contributions! You can make corrections or help to make this app available in your native language by joining our community on Crowdin.</span>
<button class="button button-standard button-primary" ng-click="openExternalLink(true, 'Open Translation Community', 'You can make contributions by signing up on our Crowdin community translation website. Were looking forward to hearing from you!
', 'Open Crowdin', 'Go Back')" translate>Contribute Translations
</button>
</p>
<span translate>
Don't see your language on Crowdin? Contact the Owner on Crowdin! We'd love to support your language.

View file

@ -12,7 +12,7 @@
<ion-content has-bouncing="false">
<ion-refresher
ng-if="isCordova"
ng-if="isAndroid"
pulling-icon="ion-ios-refresh"
spinner="ios-small"
on-refresh="onRefresh()">
@ -90,10 +90,6 @@
</div>
</div>
<div class="wallet-details-release size-12" ng-show="newRelease" ng-click="openExternalLink('https://github.com/bitpay/copay/releases/latest')">
<span>{{newRelease}}</span><i class="icon-arrow-right3 right size-18"></i>
</div>
<div class="card list" ng-if="txps[0]">
<div class="item item-heading" translate>