build(www): rename public directory to www
This commit is contained in:
parent
2c264dfffa
commit
de6e8062d5
367 changed files with 1 additions and 1 deletions
105
www/views/modals/amazon-card-details.html
Normal file
105
www/views/modals/amazon-card-details.html
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
<ion-modal-view ng-controller="amazonCardDetailsController">
|
||||
<ion-header-bar align-title="center" class="bar-royal">
|
||||
<button class="button button-back button-clear" ng-click="cancel()">
|
||||
Close
|
||||
</button>
|
||||
<h1 class="title">Details</h1>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content>
|
||||
|
||||
<div class="header-modal text-center">
|
||||
<img src="img/a_generic.jpg" alt="Amazon.com Gift Card" width="230" ng-click="refreshGiftCard()">
|
||||
|
||||
<div ng-show="card.claimCode">
|
||||
<div class="m10t">
|
||||
Gift Card Amount:
|
||||
<span class="text-bold">
|
||||
{{card.amount | currency : '$ ' : 2}}
|
||||
</span>
|
||||
</div>
|
||||
<div ng-show="card.cardStatus !== 'Canceled'">
|
||||
Claim code: <span class="text-bold" copy-to-clipboard="card.claimCode">{{card.claimCode}}</span>
|
||||
</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')">
|
||||
Redeem Now
|
||||
</button>
|
||||
</div>
|
||||
<div class="m10t" ng-show="card.cardStatus == 'Canceled'">
|
||||
<div class="m10t">
|
||||
Status:
|
||||
<span class="text-bold">
|
||||
CANCELED
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="!card.claimCode">
|
||||
<div class="m10t">
|
||||
Status:
|
||||
<span class="text-bold" ng-show="card.status == 'PENDING'">
|
||||
PENDING
|
||||
</span>
|
||||
<span class="text-bold" ng-show="card.status == 'FAILURE' || card.status == 'RESEND'">
|
||||
FAILURE
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m10t text-center">
|
||||
<a class="button button-clear button-calm" ng-click="openExternalLink(card.invoiceUrl)">See invoice</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box-notification warning" ng-show="card.status == 'FAILURE' || card.status == 'RESEND'">
|
||||
There was a failure to the create gift card. Please, contact BitPay support.
|
||||
</div>
|
||||
|
||||
<div class="oh m20t size-12 p15h" ng-show="card.claimCode && card.cardStatus == 'Fulfilled'">
|
||||
To redeem your gift card, follow these steps:
|
||||
|
||||
<ol class="m10t size-12">
|
||||
<li>1. Visit <a ng-click="openExternalLink('https://www.amazon.com/gc')">www.amazon.com/gc</a>
|
||||
<li>2. Click Apply to Account and enter the Claim Code when prompted.
|
||||
<li>3. Gift card funds will be applied automatically to eligible orders during the checkout process.
|
||||
<li>4. You must pay for any remaining balance on your order with another payment method.
|
||||
</ol>
|
||||
|
||||
<p class="size-12">
|
||||
Your gift card claim code may also be entered when prompted during checkout. To redeem your gift card using
|
||||
the Amazon.com 1-Click® service, first add the gift card funds to Your Account.
|
||||
</p>
|
||||
|
||||
<p class="size-12">
|
||||
If you have questions about redeeming your gift card, please visit
|
||||
<a ng-click="openExternalLink('https://www.amazon.com/gc-redeem')">www.amazon.com/gc-redeem</a>.
|
||||
If you have questions regarding the BitPay Introductory offer, please contact BitPay.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="size-12 p15 m30v">
|
||||
* <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a> is not a sponsor of this promotion.
|
||||
Except as required by law, <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a>
|
||||
Gift Cards ("GCs") cannot be transferred for value or redeemed for cash. GCs may be used only for purchases of
|
||||
eligible goods at <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a> or certain of its
|
||||
affiliated websites. For complete terms and conditions, see
|
||||
<a ng-click="openExternalLink('https://www.amazon.com/gc-legal')">www.amazon.com/gc-legal</a>.
|
||||
GCs are issued by ACI Gift Cards, Inc., a Washington corporation. All Amazon ®, ™ & © are IP
|
||||
of <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a>, Inc. or its affiliates.
|
||||
No expiration date or service fees.
|
||||
</div>
|
||||
|
||||
<div class="list text-center">
|
||||
<a class="item" ng-show="card.status == 'SUCCESS' && card.cardStatus == 'Fulfilled'" ng-click="cancelGiftCard()">
|
||||
<span class="assertive">Cancel</span>
|
||||
</a>
|
||||
<a class="item" ng-show="card.status == 'FAILURE' || card.cardStatus == 'Canceled'
|
||||
|| card.cardStatus == 'Expired'" ng-click="remove()">
|
||||
<span class="assertive">Remove</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
20
www/views/modals/bitpay-card-confirmation.html
Normal file
20
www/views/modals/bitpay-card-confirmation.html
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<ion-modal-view>
|
||||
<ion-content ng-controller="bitpayCardConfirmationController">
|
||||
<div class="text-center">
|
||||
<h1 class="text-center m20b p20h">Are you sure you would like to log out of your Bitpay Card account?</h1>
|
||||
<p class="text-gray p20h">You will need to log back for fill in your Bitpay Card.</p>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button class="button button-block button-stable" ng-click="cancel()">
|
||||
Cancel
|
||||
</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button class="button button-block button-assertive" ng-click="ok()">
|
||||
<span>Log out</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
18
www/views/modals/coinbase-confirmation.html
Normal file
18
www/views/modals/coinbase-confirmation.html
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<ion-modal-view ng-controller="coinbaseConfirmationController">
|
||||
<div class="m20tp text-center">
|
||||
<div class="row">
|
||||
<h1 class="text-center m20b p20h">Are you sure you would like to log out of your Coinbase account?</h1>
|
||||
<p class="text-gray p20h">You will need to log back in to buy or sell bitcoin in Copay.</p>
|
||||
<div class="large-6 medium-6 small-6 columns">
|
||||
<button class="button light-gray expand outline round" ng-click="cancel()">
|
||||
<i class="fi-arrow-left"></i> <span class="tu">Back</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="large-6 medium-6 small-6 columns">
|
||||
<button class="button warning expand round" ng-click="ok()">
|
||||
<span>Log out</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-modal-view>
|
||||
104
www/views/modals/coinbase-tx-details.html
Normal file
104
www/views/modals/coinbase-tx-details.html
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
<ion-modal-view ng-controller="coinbaseTxDetailsController">
|
||||
<ion-header-bar align-title="center" class="tab-bar" ng-style="{'background-color': '#2b71b1'}">
|
||||
<div class="left-small">
|
||||
<a ng-click="cancel()">
|
||||
<i class="icon-arrow-left3 icon-back"></i>
|
||||
<span class="text-back">Back</span>
|
||||
</a>
|
||||
</div>
|
||||
<h1 class="title ellipsis" translate>Details</h1>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content>
|
||||
<div class="fix-modals-touch">
|
||||
<div class="header-modal bg-gray text-center">
|
||||
<div class="p20">
|
||||
<img src="img/bought.svg" alt="bought" width="65" ng-show="(tx.type == 'buy' || (tx.type == 'send' && tx.to)) && tx.status == 'completed'">
|
||||
<img src="img/bought-pending.svg" alt="bought" width="65"
|
||||
ng-show="(tx.type == 'buy' || (tx.type == 'send' && tx.to)) && tx.status != 'completed'">
|
||||
<img src="img/sold.svg" alt="bought" width="65" ng-show="tx.type == 'sell' && tx.status == 'completed'">
|
||||
<img src="img/sold-pending.svg" alt="bought" width="65"
|
||||
ng-show="(tx.type == 'sell' || (tx.type == 'send' && tx.from)) && tx.status != 'completed'">
|
||||
</div>
|
||||
<div ng-show="tx.status == 'completed'">
|
||||
<span ng-show="tx.type == 'buy' || tx.type == 'send'">Bought</span>
|
||||
<span ng-show="tx.type == 'sell'">Sold</span>
|
||||
</div>
|
||||
<div ng-show="tx.type == 'send' && (tx.to || tx.from) && tx.status != 'completed'">
|
||||
<span ng-show="tx.to">Receiving purchased bitcoin</span>
|
||||
<span ng-show="tx.from">Sending bitcoin to sell</span>
|
||||
</div>
|
||||
<div ng-show="(tx.type == 'sell' || tx.type == 'buy') && tx.status != 'completed'">
|
||||
<span ng-show="tx.type == 'buy'">Buying bitcoin</span>
|
||||
<span ng-show="tx.type == 'sell'">Selling bitcoin</span>
|
||||
</div>
|
||||
<div class="size-24 text-bold">
|
||||
<span ng-if="tx.type == 'sell' || (tx.type == 'send' && tx.from)">-</span>{{tx.amount.amount.replace('-','')}}
|
||||
{{tx.amount.currency}}
|
||||
</div>
|
||||
<div class="label gray radius m10b">
|
||||
<span ng-if="tx.type == 'sell' || (tx.type == 'send' && tx.from)">-</span>{{tx.native_amount.amount.replace('-','')}}
|
||||
{{tx.native_amount.currency}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="m20b box-notification" ng-show="tx.error">
|
||||
<ul class="no-bullet m0 text-warning size-12">
|
||||
<li ng-repeat="err in tx.error.errors" ng-bind-html="err.message"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<ul class="no-bullet size-14">
|
||||
|
||||
<li ng-show="tx.details && tx.status != 'pending'" class="line-b p10 oh">
|
||||
<span class="text-gray">{{tx.details.title}}</span>
|
||||
<span class="right">{{tx.details.subtitle}}</span>
|
||||
</li>
|
||||
|
||||
<li class="line-b p10 oh">
|
||||
<span class="text-gray">Status</span>
|
||||
<span class="text-success right" ng-if="tx.status == 'completed'">Completed</span>
|
||||
<span class="text-info right" ng-if="tx.status == 'pending'">Pending</span>
|
||||
<span class="text-warning right" ng-if="tx.status == 'error'">Error</span>
|
||||
</li>
|
||||
|
||||
<li ng-show="tx.created_at" class="line-b p10 oh">
|
||||
<span class="text-gray">Date</span>
|
||||
<span class="right">{{tx.created_at | amCalendar}}</span>
|
||||
</li>
|
||||
|
||||
<li ng-show="tx.price_sensitivity" class="line-b p10 oh">
|
||||
<span class="text-gray">Price Sensitivity</span>
|
||||
<span class="right">{{tx.price_sensitivity.name}}</span>
|
||||
</li>
|
||||
|
||||
<li ng-show="tx.sell_price_amount" class="line-b p10 oh">
|
||||
<span class="text-gray">Sell Price</span>
|
||||
<span class="right">{{tx.sell_price_amount}} {{tx.sell_price_currency}}</span>
|
||||
</li>
|
||||
|
||||
<li ng-show="tx.description" class="line-b p10 oh">
|
||||
<span class="text-gray" ng-show="tx.from && tx.type == 'send'">Sent bitcoin from</span>
|
||||
<span class="text-gray" ng-show="tx.to && tx.type == 'send'">Receive bitcoin in</span>
|
||||
<span class="right text-bold">{{tx.description}}</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="row m20t" ng-show="tx.status == 'error'">
|
||||
<div class="columns">
|
||||
<p class="text-center size-12 text-gray">
|
||||
This action will remove the transaction.
|
||||
</p>
|
||||
<button class="button outline round dark-gray expand tiny"
|
||||
ng-click="remove()">
|
||||
<i class="fi-x"></i>
|
||||
Remove
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="extra-margin-bottom"></div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
18
www/views/modals/confirmation.html
Normal file
18
www/views/modals/confirmation.html
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<ion-modal-view ng-controller="confirmationController">
|
||||
<div class="m20tp text-center">
|
||||
<div class="row">
|
||||
<h1 class="text-center m20b p20">{{title|translate}}</h1>
|
||||
<div class="large-6 medium-6 small-6 columns">
|
||||
<button class="button warning expand round" ng-disabled="loading" ng-click="ok()">
|
||||
<i class="fi-trash"></i> <span translate>Yes</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="large-6 medium-6 small-6 columns">
|
||||
<button class="button light-gray expand outline round" ng-disabled="loading"
|
||||
ng-click="cancel()">
|
||||
<i class="fi-x"></i> <span class="tu" translate>Cancel</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-modal-view>
|
||||
88
www/views/modals/customAmount.html
Normal file
88
www/views/modals/customAmount.html
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
<ion-modal-view ng-controller="customAmountController">
|
||||
<ion-header-bar align-title="center" class="tab-bar" ng-style="{'background-color':color}">
|
||||
<div class="left-small">
|
||||
<a ng-click="cancel()" class="p10">
|
||||
<span class="text-close" translate>Close</span>
|
||||
</a>
|
||||
</div>
|
||||
<h1 class="title ellipsis" translate>Request a specific amount</h1>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content ng-style="{'background-color': '#f6f7f9'}">
|
||||
<div class="fix-modals-touch">
|
||||
<div class="m20b" ng-show="customizedAmountBtc">
|
||||
<h4 class="title m0" translate>QR Code</h4>
|
||||
<ul class="no-bullet size-14 m0">
|
||||
<li class="line-b p10 oh text-center">
|
||||
<qrcode size="220" data="bitcoin:{{addr + '?amount=' + customizedAmountBtc}}"></qrcode>
|
||||
<div class="m10t text-center" ng-show="isCordova">
|
||||
<span class="button outline dark-gray tiny round"
|
||||
ng-click="shareAddress('bitcoin:' + addr + '?amount=' + customizedAmountBtc)">
|
||||
<i class="fi-share"></i>
|
||||
<span translate>Share address</span>
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4 class="title m0" translate>Details</h4>
|
||||
<ul class="no-bullet size-14 m0">
|
||||
<li class="line-b p10 oh">
|
||||
<span class="text-gray" translate>Address</span>:
|
||||
<span class="right">
|
||||
<span class="text-gray enable_text_select">{{addr}}</span>
|
||||
</span>
|
||||
</li>
|
||||
<li class="line-b p10 oh">
|
||||
<span class="text-gray" translate>Amount</span>:
|
||||
<span class="right">
|
||||
{{customizedAmountUnit}}
|
||||
<span class="label gray radius">{{customizedAlternativeUnit}}</span>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div ng-show="!customizedAmountBtc" class="row m20t">
|
||||
<div class="large-12 large-centered columns">
|
||||
<form name="amountForm" ng-submit="submitForm(amountForm)" novalidate>
|
||||
<div class="right" ng-hide="amountForm.amount.$pristine && !amountForm.amount.$modelValue ">
|
||||
<span class="has-error right size-12" ng-if="amountForm.amount.$invalid">
|
||||
<i class="icon-close-circle size-14"></i>
|
||||
<span clas="vm" translate>Not valid</span>
|
||||
</span>
|
||||
<small class="text-primary right" ng-if="!amountForm.amount.$invalid">
|
||||
<i class="icon-checkmark-circle size-14"></i>
|
||||
</small>
|
||||
</div>
|
||||
<div ng-show="!showAlternative">
|
||||
<label for="amount">
|
||||
<span translate>Amount</span>
|
||||
</label>
|
||||
<div class="input">
|
||||
<input type="number" id="amount" name="amount" ng-attr-placeholder="{{'Amount in'|translate}} {{unitName}}" ignore-mouse-wheel
|
||||
ng-model="_customAmount" ng-minlength="0.00000001" ng-maxlength="10000000000" valid-amount required autocomplete="off">
|
||||
<input type="number" id="alternative" name="alternative" ng-model="_customAlternative" style="display:none">
|
||||
<a class="postfix button" ng-style="{'background-color':color}" ng-click="toggleAlternative()">{{unitName}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="showAlternative">
|
||||
<label for="alternative"><span translate>Amount</span> [{{ alternativeIsoCode }}]
|
||||
</label>
|
||||
<div class="input">
|
||||
<input type="number" id="alternative" name="alternative" ng-attr-placeholder="{{'Amount in'|translate}} {{alternativeName}}" ignore-mouse-wheel
|
||||
ng-model="_customAlternative" required autocomplete="off" required>
|
||||
<input type="number" id="amount" name="amount" ng-model="_customAmount" style="display:none">
|
||||
<a class="postfix button black" ng-click="toggleAlternative()"> {{ alternativeIsoCode }}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="button black round expand" ng-disabled="amountForm.$invalid" ng-style="{'background-color':color}" translate>
|
||||
Generate QR Code
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-view-modal>
|
||||
63
www/views/modals/glidera-tx-details.html
Normal file
63
www/views/modals/glidera-tx-details.html
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<ion-modal-view ng-controller="glideraTxDetailsController">
|
||||
<ion-header-bar class="bar-royal">
|
||||
<button class="button button-back button-clear"
|
||||
ng-click="cancel()">
|
||||
Close
|
||||
</button>
|
||||
<h1 class="title">Details</h1>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content>
|
||||
<div class="text-center">
|
||||
<div class="p20">
|
||||
<img src="img/bought.svg" alt="bought" width="80" ng-show="tx.type == 'BUY' && tx.status == 'COMPLETE'">
|
||||
<img src="img/bought-pending.svg" alt="bought" width="65" ng-show="tx.type == 'BUY' && tx.status == 'PROCESSING'">
|
||||
<img src="img/sold.svg" alt="bought" width="80" ng-show="tx.type == 'SELL' && tx.status == 'COMPLETE'">
|
||||
<img src="img/sold-pending.svg" alt="bought" width="65" ng-show="tx.type == 'SELL' && tx.status == 'PROCESSING'">
|
||||
</div>
|
||||
<span ng-show="tx.type == 'BUY'">Bought</span>
|
||||
<span ng-show="tx.type == 'SELL'">Sold</span>
|
||||
<b>{{tx.qty}}</b> BTC
|
||||
<div class="size-36 m20v">
|
||||
{{tx.subtotal|currency:'':2}} {{tx.currency}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="list">
|
||||
|
||||
<li class="item">
|
||||
Status
|
||||
<span class="item-note">
|
||||
<span class="text-success" ng-if="tx.status == 'COMPLETE'">Completed</span>
|
||||
<span class="text-info" ng-if="tx.status == 'PROCESSING'">Processing</span>
|
||||
<span class="text-warning" ng-if="tx.status == 'ERROR'">Error</span>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li ng-show="tx.transactionDate" class="item">
|
||||
Date
|
||||
<span class="item-note">{{tx.transactionDate | amCalendar}}</span>
|
||||
</li>
|
||||
|
||||
<li ng-show="tx.price" class="item">
|
||||
Exchange rate
|
||||
<span class="item-note">{{tx.price|currency:'':2}} {{tx.currency}}/BTC</span>
|
||||
</li>
|
||||
|
||||
<li ng-show="tx.subtotal" class="item">
|
||||
Subtotal
|
||||
<span class="item-note">{{tx.subtotal|currency:'':2}} {{tx.currency}}</span>
|
||||
</li>
|
||||
|
||||
<li ng-show="tx.fees" class="item">
|
||||
Fees
|
||||
<span class="item-note">{{tx.fees|currency:'':2}} {{tx.currency}}</span>
|
||||
</li>
|
||||
|
||||
<li ng-show="tx.total" class="item">
|
||||
Total
|
||||
<span class="item-note">{{tx.total|currency:'':2}} {{tx.currency}}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
57
www/views/modals/paypro.html
Normal file
57
www/views/modals/paypro.html
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<ion-modal-view ng-controller="payproController">
|
||||
<ion-header-bar align-title="center" class="bar-royal" ng-style="{'background-color': color}">
|
||||
<button class="button button-clear" ng-click="cancel()">
|
||||
{{'Close' | translate}}
|
||||
</button>
|
||||
<div class="title" translate>
|
||||
Payment request
|
||||
</div>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content>
|
||||
<div class="header-modal text-center size-42">
|
||||
{{amountStr}}
|
||||
</div>
|
||||
|
||||
<div class="list">
|
||||
<div class="item item-divider" translate>
|
||||
Details
|
||||
</div>
|
||||
<div class="item">
|
||||
{{'Pay To'|translate}}
|
||||
<span class="item-note">{{_paypro.domain}}</span>
|
||||
</div>
|
||||
<div class="item" ng-if="_paypro.toAddress">
|
||||
{{'Address'|translate}}
|
||||
<span class="item-note">{{_paypro.toAddress}}</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
{{'Certified by'|translate}}
|
||||
<span class="item-note">
|
||||
<span ng-show="_paypro.caTrusted">
|
||||
<i class="ion-locked" style="color:green"></i>
|
||||
{{_paypro.caName}}<br>
|
||||
<span translate>(Trusted)</span>
|
||||
</span>
|
||||
<span ng-show="!_paypro.caTrusted">
|
||||
<span ng-show="_paypro.selfSigned">
|
||||
<i class="ion-unlocked" style="color:red"></i> <span translate>Self-signed Certificate</span>
|
||||
</span>
|
||||
<span ng-show="!_paypro.selfSigned">
|
||||
<i class="ion-locked" style="color:yellow"></i>{{_paypro.caName}}<br>
|
||||
<span translate>WARNING: UNTRUSTED CERTIFICATE</span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item" ng-if="_paypro.memo">
|
||||
{{'Memo'|translate}}
|
||||
<span class="item-note wrapword">{{_paypro.memo}}</span>
|
||||
</div>
|
||||
<div class="item" ng-if="_paypro.expires">
|
||||
{{'Expires'|translate}}
|
||||
<span class="item-note">{{_paypro.expires * 1000 | amTimeAgo }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
15
www/views/modals/receive-tips.html
Normal file
15
www/views/modals/receive-tips.html
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<ion-modal-view ng-style="{opacity: '0.9'}" ng-controller="receiveTipsController">
|
||||
<ion-nav-bar class="bar-ligt">
|
||||
<ion-nav-buttons side="secondary">
|
||||
<button class="button" ng-click="close()">
|
||||
X
|
||||
</button>
|
||||
</ion-nav-buttons>
|
||||
</ion-nav-bar>
|
||||
<ion-content class="has-header">
|
||||
<div class="text-center">
|
||||
<h2>Receive bitcoin by sharing your address</h2>
|
||||
<h3>Other bitcoin users can scan this code to send you money</h3>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
15
www/views/modals/scan-tips.html
Normal file
15
www/views/modals/scan-tips.html
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<ion-modal-view ng-style="{opacity: '0.9'}" ng-controller="scanTipsController">
|
||||
<ion-nav-bar class="bar-ligt">
|
||||
<ion-nav-buttons side="secondary">
|
||||
<button class="button" ng-click="close()">
|
||||
X
|
||||
</button>
|
||||
</ion-nav-buttons>
|
||||
</ion-nav-bar>
|
||||
<ion-content class="has-header">
|
||||
<div class="text-center">
|
||||
<h2>Scan the code to pay with bitcoin</h2>
|
||||
<h3>QR codes could also contain a bitcoin wallet invitation, or an URL</h3>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
12
www/views/modals/scanner.html
Normal file
12
www/views/modals/scanner.html
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<ion-modal-view ng-controller="scannerController" ng-init="init()">
|
||||
<ion-header-bar align-title="center" class="bar-royal">
|
||||
<button ng-click="cancel()" class="button button-back button-clear" translate>
|
||||
Close
|
||||
</button>
|
||||
<h1 class="title ellipsis" translate>QR-Scanner</h1>
|
||||
</ion-header-bar>
|
||||
<ion-content >
|
||||
<canvas id="qr-canvas" width="200" height="150"></canvas>
|
||||
<video id="qrcode-scanner-video" width="300" height="225"></video>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
86
www/views/modals/search.html
Normal file
86
www/views/modals/search.html
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
<ion-modal-view>
|
||||
<ion-header-bar align-title="center" class="bar-royal" ng-style="{'background-color':color}">
|
||||
<button class="button button-clear" ng-click="close()">
|
||||
Close
|
||||
</button>
|
||||
<div class="title" translate>
|
||||
Search Transactions
|
||||
</div>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content ng-controller="searchController" ng-init="search = ''">
|
||||
<div class="bar bar-header item-input-inset">
|
||||
<label class="item-input-wrapper">
|
||||
<i class="icon ion-ios-search placeholder-icon"></i>
|
||||
<input type="search" ng-model="search" ng-init="search = ''" ng-change="updateSearchInput(search)"
|
||||
placeholder="{{'Search transactions' | translate}}">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="list">
|
||||
<div class="item" ng-repeat="btx in txHistorySearchResults track by btx.txid" ng-click="openTxModal(btx)">
|
||||
|
||||
<span class="item-note text-right">
|
||||
<span class="size-16" ng-class="{'text-bold': btx.recent}">
|
||||
<span ng-if="btx.action == 'received'">+</span>
|
||||
<span ng-if="btx.action == 'sent'">-</span>
|
||||
<span class="size-12" ng-if="btx.action == 'invalid'" translate>
|
||||
(possible double spend)
|
||||
</span>
|
||||
<span ng-if="btx.action != 'invalid'">
|
||||
{{btx.amountStr}}
|
||||
</span>
|
||||
</span>
|
||||
<p>
|
||||
<time ng-if="btx.time">{{btx.time * 1000 | amTimeAgo}}</time>
|
||||
<span translate class="text-warning"
|
||||
ng-show="!btx.time && (!btx.confirmations || btx.confirmations == 0)" translate>
|
||||
Unconfirmed
|
||||
</span>
|
||||
</p>
|
||||
</span>
|
||||
|
||||
<img class="left m10r" src="img/icon-receive-history.svg" alt="sync" width="40" ng-if="btx.action == 'received'">
|
||||
<img class="left m10r" src="img/icon-sent-history.svg" alt="sync" width="40" ng-if="btx.action == 'sent'">
|
||||
<img class="left m10r" src="img/icon-moved.svg" alt="sync" width="40" ng-if="btx.action == 'moved'">
|
||||
|
||||
<h2>
|
||||
<div class="padding" ng-if="btx.action == 'received'">
|
||||
<span class="ellipsis">
|
||||
<h2 ng-if="btx.note.body">{{btx.note.body}}</h2>
|
||||
<h2 ng-if="!btx.note.body" translate> Received</h2>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="padding" ng-if="btx.action == 'sent'">
|
||||
<span class="ellipsis">
|
||||
<h2 ng-if="btx.message">{{btx.message}}</h2>
|
||||
<h2 ng-if="!btx.message && btx.note.body">{{btx.note.body}}</h2>
|
||||
<h2 ng-if="!btx.message && !btx.note.body && wallet.addressbook[btx.addressTo]">{{wallet.addressbook[btx.addressTo]}}</h2>
|
||||
<h2 ng-if="!btx.message && !btx.note.body && !wallet.addressbook[btx.addressTo]" translate> Sent</h2>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="padding" ng-if="btx.action == 'moved'">
|
||||
<span class="ellipsis">
|
||||
<h2 ng-if="btx.note.body">{{btx.note.body}}</h2>
|
||||
<h2 ng-if="!btx.note.body" translate>Moved</h2>
|
||||
</span>
|
||||
</div>
|
||||
<span class="label tu warning radius" ng-if="btx.action == 'invalid'" translate>Invalid</span>
|
||||
</h2>
|
||||
|
||||
</div>
|
||||
<div class="text-gray text-center size-12 p10t" ng-if="txHistoryShowMore">
|
||||
<span class="size-12" translate>{{filteredTxHistory.length - txHistorySearchResults.length}} more</span>
|
||||
|
||||
<i class="icon-arrow-down4"></i>
|
||||
</div>
|
||||
<ion-infinite-scroll
|
||||
ng-if="txHistoryShowMore"
|
||||
on-infinite="moreSearchResults()"
|
||||
distance="1%">
|
||||
</ion-infinite-scroll>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
19
www/views/modals/terms.html
Normal file
19
www/views/modals/terms.html
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<ion-modal-view id="terms-of-use">
|
||||
<ion-nav-bar class="bar-ligt">
|
||||
<ion-nav-title>{{'Terms of Use' | translate}}</ion-nav-title>
|
||||
<ion-nav-buttons side="primary">
|
||||
<button class="button no-border" ng-click="termsModal.hide()">
|
||||
<i class="ion-ios-arrow-thin-left"></i>
|
||||
</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>
|
||||
</ion-modal-view>
|
||||
178
www/views/modals/tx-details.html
Normal file
178
www/views/modals/tx-details.html
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
<ion-modal-view ng-controller="txDetailsController" ng-init="init()" id="tx-details">
|
||||
<ion-header-bar align-title="center" class="bar-royal" ng-style="{'background-color': color}">
|
||||
<button class="button button-clear" ng-click="cancel()">
|
||||
{{'Close' | translate}}
|
||||
</button>
|
||||
<div class="title">
|
||||
{{title}}
|
||||
</div>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content>
|
||||
<div class="header-modal text-center" ng-init="showRate = false">
|
||||
<div ng-show="btx.action != 'invalid'">
|
||||
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-style="{'background-color': color}" class="bg"/>
|
||||
</i>
|
||||
|
||||
<div class="size-36 m20t" copy-to-clipboard="btx.amountStr">
|
||||
{{btx.amountStr}}
|
||||
</div>
|
||||
|
||||
<div class="m10t" style="height:20px;" ng-click="showRate =! showRate">
|
||||
<span ng-show="!showRate && alternativeAmountStr">
|
||||
{{alternativeAmountStr}}
|
||||
</span>
|
||||
<span ng-show="showRate && alternativeAmountStr">
|
||||
{{rateStr}} ({{rateDate | amDateFormat:'MM/DD/YYYY HH:mm a'}})
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-show="btx.action == 'sent'">
|
||||
<div>
|
||||
<span translate>Sent from</span>
|
||||
<strong ng-style="{'color': color}">{{wallet.credentials.walletName}}</strong>
|
||||
</div>
|
||||
<i class="icon ion-ios-arrow-thin-down size-24"></i>
|
||||
</div>
|
||||
|
||||
<div ng-show="btx.action == 'received'">
|
||||
<div class="padding-vertical">
|
||||
<i class="icon ion-ios-arrow-thin-up size-24"></i>
|
||||
</div>
|
||||
<span translate>Received Funds</span>
|
||||
</div>
|
||||
|
||||
<div ng-show="btx.action == 'moved'">
|
||||
<span translate>Moved Funds</span>
|
||||
</div>
|
||||
|
||||
<div ng-show="btx.action == 'invalid'">
|
||||
-
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="list">
|
||||
<div class="item item-icon-left" ng-show="btx.action == 'sent'">
|
||||
<i class="icon ion-social-bitcoin-outline"></i>
|
||||
<div ng-if="!btx.hasMultiplesOutputs && btx.addressTo && btx.addressTo != 'N/A'" 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>
|
||||
</span>
|
||||
<span ng-if="!btx.merchant">
|
||||
<span ng-show="btx.labelTo">{{btx.labelTo}}</span>
|
||||
<contact ng-show="!btx.labelTo" address="{{btx.addressTo}}"></contact>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item item-icon-left"
|
||||
ng-click="openExternalLink('https://' + (getShortNetworkName() == 'test' ? 'test-' : '') + 'insight.bitpay.com/tx/' + btx.txid)">
|
||||
<i class="icon ion-ios-upload-outline"></i>
|
||||
<span class="text-gray" translate>View transaction on the blockchain</span>
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<div ng-if="btx.action == 'received' || btx.action == 'moved'">
|
||||
{{'Date'|translate}}
|
||||
<span class="item-note">
|
||||
<time>{{ btx.time * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>
|
||||
</span>
|
||||
</div>
|
||||
<div ng-if="btx.action == 'sent'">
|
||||
{{'Created by'|translate}} <strong>{{btx.creatorName}}</strong>
|
||||
<span class="item-note">
|
||||
<time>{{ btx.createdOn * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item" ng-if="btx.action != 'received' && btx.feeLevel" copy-to-clipboard="btx.feeStr">
|
||||
{{'Fee'|translate}}: {{btx.feeStr}}
|
||||
<span class="item-note">
|
||||
<span class="text-warning" ng-show="!btx.confirmations || btx.confirmations == 0" translate>
|
||||
Unconfirmed
|
||||
</span>
|
||||
<span class="label gray radius" ng-show="btx.confirmations>0 && !btx.safeConfirmed">
|
||||
{{btx.confirmations}}
|
||||
</span>
|
||||
<span class="label gray radius" ng-show="btx.safeConfirmed">
|
||||
{{btx.safeConfirmed}}
|
||||
</span>
|
||||
<span translate>Confirmations</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="item" ng-if="btx.message && btx.action != 'received'" copy-to-clipboard="btx.message">
|
||||
{{'Description'|translate}}
|
||||
<span class="item-note">
|
||||
{{btx.message}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div ng-if="btx.merchant" class="item" copy-to-clipboard="btx.merchant.pr.pd.memo">
|
||||
{{'Merchant message'|translate}}
|
||||
<span class="item-note">
|
||||
{{btx.merchant.pr.pd.memo}}
|
||||
</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.
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="item" ng-click="showCommentPopup()">
|
||||
{{'Memo'|translate}}
|
||||
<span class="item-note" translate ng-if="!btx.note">
|
||||
<i class="icon ion-ios-plus-empty"></i>
|
||||
</span>
|
||||
<span class="item-note" ng-if="btx.note && btx.note.body">
|
||||
{{btx.note.body}}
|
||||
<div>
|
||||
<span translate>Edited by</span> {{btx.note.editedByName}},
|
||||
<time>{{btx.note.editedOn * 1000 | amTimeAgo}}</time>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div ng-if="actionList[0]">
|
||||
<div class="item item-divider" translate>Timeline</div>
|
||||
<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="row">
|
||||
<div class="col col-10">
|
||||
<span id="timeline-icon">{{$index + 1}}</span>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div>{{a.description}}</div>
|
||||
<div>
|
||||
<span>{{a.by}}</span>
|
||||
<span class="item-note">
|
||||
<time>{{ a.time * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
73
www/views/modals/tx-status.html
Normal file
73
www/views/modals/tx-status.html
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
<ion-modal-view id="tx-status" ng-controller="txStatusController">
|
||||
<div ng-if="type == 'broadcasted'" class="popup-txsent text-center m30tp">
|
||||
<i class="icon ion-checkmark-round"></i>
|
||||
<div ng-show="tx.amountStr" class="m20t size-36">
|
||||
{{tx.amountStr}}
|
||||
</div>
|
||||
<div class="size-24 text-gray m20v">
|
||||
<span ng-if="!fromBitPayCard" translate>Sent</span>
|
||||
<span ng-if="fromBitPayCard" translate>Funds sent</span>
|
||||
</div>
|
||||
<div class="text-center m20t" ng-if="entryExist || !fromSendTab || fromPayPro">
|
||||
<a class="button button-positive" ng-click="cancel()" translate>OKAY</a>
|
||||
</div>
|
||||
<div class="collect-address" ng-if="!entryExist && fromSendTab && !fromPayPro">
|
||||
<div class="row">
|
||||
<p translate class="col">Would you like to add this address to your address book?</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<span class="address">
|
||||
<i class="icon ion-social-bitcoin"></i>
|
||||
<contact class="enable_text_select ellipsis" address="{{tx.toAddress}}"></contact>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col col-50">
|
||||
<button class="button button-block button-stable" ng-click="cancel()">
|
||||
{{'Skip' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
<div class="col col-50">
|
||||
<button class="button button-block button-stable" ng-click="save(tx.toAddress)">
|
||||
{{'Add Address' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-if="type == 'created'" class="popup-txsigned text-center m30tp">
|
||||
<i class="icon ion-checkmark-round"></i>
|
||||
<div class="text-center size-24 tu text-bold m20v">
|
||||
<span translate>Payment Proposal Created</span>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<a class="button button-positive" ng-click="cancel()" translate>OKAY</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div ng-if="type == 'accepted'" class="popup-txsigned text-center m30tp">
|
||||
<i class="icon ion-checkmark-round"></i>
|
||||
<div class="text-center size-24 tu text-bold m20v">
|
||||
<span translate>Payment Accepted</span>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<a class="button button-positive" ng-click="cancel()" translate>OKAY</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="type=='rejected'" class="popup-txrejected text-center m30tp">
|
||||
<i class="icon ion-close-round"></i>
|
||||
<div class="text-center size-24 tu text-bold m20v">
|
||||
<span translate>Payment Rejected</span>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<a class="button button-positive" ng-click="cancel()" translate>OKAY</a>
|
||||
</div>
|
||||
</div>
|
||||
</ion-modal-view>
|
||||
168
www/views/modals/txp-details.html
Normal file
168
www/views/modals/txp-details.html
Normal file
|
|
@ -0,0 +1,168 @@
|
|||
<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}">
|
||||
<button class="button button-clear" ng-click="close()">
|
||||
Close
|
||||
</button>
|
||||
<div class="title" translate>
|
||||
Payment Proposal
|
||||
</div>
|
||||
<button class="button button-clear" ng-click="reject()" ng-disabled="loading" ng-if="isShared && tx.pendingForUs">
|
||||
Reject
|
||||
</button>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content ng-init="updateCopayerList()" ng-class="{'slide-to-pay': tx.pendingForUs && canSign && isCordova}">
|
||||
<div class="list">
|
||||
<div class="item head">
|
||||
<div class="sending-label">
|
||||
<i class="icon ion-arrow-up-c"></i>
|
||||
<span translate>Sending</span>
|
||||
</div>
|
||||
<div class="amount-label">
|
||||
<div class="amount">{{tx.amountStr}}</div>
|
||||
<div class="alternative" ng-show="tx.alternativeAmountStr">{{tx.alternativeAmountStr}}</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center m10t assertive" ng-if="tx.removed" translate>
|
||||
The payment was removed by creator
|
||||
</div>
|
||||
|
||||
<div class="text-center m10t" ng-show="tx.status != 'pending'">
|
||||
<div ng-show="tx.status == 'accepted' && !tx.isGlidera">
|
||||
<div class="m10b positive" translate>Payment accepted, but not yet broadcasted</div>
|
||||
|
||||
<button class="button button-positive button-block" ng-click="broadcast(tx)" ng-disabled="loading">
|
||||
<i class="icon ion-ios-cloud-upload-outline"></i>
|
||||
<span translate>Broadcast Payment</span>
|
||||
</button>
|
||||
</div>
|
||||
<div ng-show="tx.status == 'accepted' && tx.isGlidera" >
|
||||
<div class="m10h" translate>Payment accepted. It will be broadcasted by Glidera. In case there is a problem, it can be deleted 6 hours after it was created.</div>
|
||||
</div>
|
||||
<div class="balanced" ng-show="tx.status == 'broadcasted'" translate>Payment Sent</div>
|
||||
<div class="assertive" ng-show="tx.status=='rejected'" translate>Payment Rejected</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item assertive text-center" ng-show="!currentSpendUnconfirmed && tx.hasUnconfirmedInputs" translate>
|
||||
Warning: this transaction has unconfirmed inputs
|
||||
</div>
|
||||
|
||||
<div class="info">
|
||||
<div class="item">
|
||||
<span translate>To</span>
|
||||
<span class="payment-proposal-to" copy-to-clipboard="tx.toAddress">
|
||||
<i class="icon ion-social-bitcoin"></i>
|
||||
<contact ng-if="!tx.hasMultiplesOutputs" class="ellipsis" address="{{tx.toAddress}}"></contact>
|
||||
<span ng-if="tx.hasMultiplesOutputs" translate>Multiple recipients</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div ng-show="tx.hasMultiplesOutputs" class="item" ng-click="showMultiplesOutputs = !showMultiplesOutputs">
|
||||
<span class="text-gray" translate>Recipients</span>
|
||||
<span class="right">{{tx.recipientCount}}
|
||||
<i ng-show="showMultiplesOutputs" class="icon ion-ios-arrow-up"></i>
|
||||
<i ng-show="!showMultiplesOutputs" class="icon ion-ios-arrow-up"></i>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="item" ng-show="tx.hasMultiplesOutputs && showMultiplesOutputs"
|
||||
ng-repeat="output in tx.outputs" ng-include="'views/includes/output.html'">
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
{{'From'|translate}}
|
||||
<span class="item-note">
|
||||
<i class="icon big-icon-svg right">
|
||||
<img src="img/icon-wallet.svg" ng-style="{'background-color': wallet.color}" class="bg"/>
|
||||
</i>
|
||||
<div class="m10t m55r">{{wallet.name}}</div>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
{{'Created by'|translate}}
|
||||
<span class="item-note">
|
||||
{{tx.creatorName}} <time>{{ (tx.ts || tx.createdOn ) * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item" ng-show="tx.message">
|
||||
{{'Memo'|translate}}
|
||||
<span class="item-note">
|
||||
{{tx.message}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
{{'Fee'|translate}}
|
||||
<span class="item-note">
|
||||
{{tx.feeStr}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div ng-if="tx.paypro">
|
||||
<div class="item item-divider" translate>Payment details</div>
|
||||
<div class="item">
|
||||
{{'To'|translate}}
|
||||
<span class="item-note">
|
||||
<span>
|
||||
<span ng-show="tx.merchant.pr.ca"><i class="fi-lock"></i> {{tx.paypro.domain}}</span>
|
||||
<span ng-show="!tx.merchant.pr.ca"><i class="fi-unlock"></i> {{tx.paypro.domain}}</span>
|
||||
</span>
|
||||
<contact address="{{tx.toAddress}}" ng-hide="tx.merchant"></contact>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item" ng-if="paymentExpired">
|
||||
{{'Expired'|translate}}
|
||||
<span class="item-note">
|
||||
<time>{{tx.paypro.expires * 1000 | amTimeAgo }}</time>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item" ng-if="!paymentExpired">
|
||||
{{'Expires'|translate}}
|
||||
<span class="item-note">
|
||||
<time>{{expires}}</time>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
{{'Merchant Message'|translate}}
|
||||
<span class="item-note">{{tx.paypro.pr.pd.memo}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="actionList[0]">
|
||||
<div class="item item-divider" translate>Timeline</div>
|
||||
|
||||
<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="row">
|
||||
<div class="col col-10">
|
||||
<span id="timeline-icon">{{$index + 1}}</span>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div>{{a.description}}</div>
|
||||
<div>
|
||||
<span>{{a.by}}</span>
|
||||
<span class="item-note">
|
||||
<time>{{ a.time * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button class="button button-block button-positive"
|
||||
ng-click="sign()"
|
||||
ng-if="tx.pendingForUs && canSign && !loading && !paymentExpired && !isCordova" translate>
|
||||
Click to accept
|
||||
</button>
|
||||
<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>
|
||||
* 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>
|
||||
<button class="button button-assertive button-clear" ng-click="remove()" ng-disabled="loading">
|
||||
<i class="fi-trash size-14 m5r"></i>
|
||||
<span translate>Delete Payment Proposal</span>
|
||||
</button>
|
||||
</div>
|
||||
</ion-content>
|
||||
<accept class="accept-slide" ng-if="tx.pendingForUs && canSign && !loading && !paymentExpired && isCordova"></accept>
|
||||
</ion-modal-view>
|
||||
57
www/views/modals/wallets.html
Normal file
57
www/views/modals/wallets.html
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<ion-modal-view ng-controller="walletsController">
|
||||
<ion-header-bar align-title="center" class="tab-bar">
|
||||
<div class="left-small">
|
||||
<a ng-click="cancel()" class="p10">
|
||||
<span class="text-close" translate>Close</span>
|
||||
</a>
|
||||
</div>
|
||||
<h1 class="title ellipsis">
|
||||
<span ng-show="type == 'BUY' || type == 'RECEIVE'" translate>Choose your destination wallet</span>
|
||||
<span ng-show="type == 'SELL' || type == 'SEND'" translate>Choose your source wallet</span>
|
||||
</h1>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content ng-style="{'background-color': '#F6F7F9'}">
|
||||
|
||||
<div>
|
||||
<div class="box-notification text-center size-12 text-warning m10t" ng-show="error">
|
||||
<i class="fi-error"></i> {{error}}
|
||||
</div>
|
||||
<div ng-show="type == 'SELL'">
|
||||
<h4 class="title m0 oh">
|
||||
<div class="left">
|
||||
<i class="fi-info size-18 m10r"></i>
|
||||
</div>
|
||||
<div class="size-10 m5t" translate>
|
||||
Notice: only 1-1 (single signature) wallets can be used for sell bitcoin
|
||||
</div>
|
||||
</h4>
|
||||
</div>
|
||||
<div ng-show="type != 'SELL'">
|
||||
<h4 class="title m0 oh">
|
||||
</h4>
|
||||
</div>
|
||||
<ul class="no-bullet">
|
||||
<li class="line-b" ng-repeat="w in wallets">
|
||||
<a ng-click="selectWallet(w.id)" class="db oh">
|
||||
<div class="avatar-wallet"
|
||||
ng-style="{'background-color':w.color}">
|
||||
<i class="icon-wallet size-21"></i>
|
||||
</div>
|
||||
<div class="ellipsis name-wallet text-bold">
|
||||
{{w.name || w.id}}
|
||||
<span class="has-error right text-light size-12" ng-show="errorSelectedWallet[w.id]">
|
||||
<i class="icon-close-circle size-14"></i>
|
||||
<span class="vm">{{errorSelectedWallet[w.id]}}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="size-12">{{w.m}} of {{w.n}}
|
||||
<span ng-show="w.network=='testnet'">[Testnet]</span>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="extra-margin-bottom"></div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
Loading…
Add table
Add a link
Reference in a new issue