Merge https://github.com/bitpay/copay into copay-cash
This commit is contained in:
commit
a0261a6c9f
146 changed files with 16800 additions and 5578 deletions
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
<ion-content>
|
||||
<div class="settings-list list">
|
||||
|
||||
<ion-toggle class="has-comment" ng-model="spendUnconfirmed.value" toggle-class="toggle-balanced" ng-change="spendUnconfirmedChange()">
|
||||
<span class="toggle-label" translate>Use Unconfirmed Funds</span>
|
||||
</ion-toggle>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<ion-view id="view-amount" hide-tabs>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-title>
|
||||
{{'Enter Amount' | translate}}
|
||||
{{'Enter amount' | translate}}
|
||||
</ion-nav-title>
|
||||
<ion-nav-back-button>
|
||||
</ion-nav-back-button>
|
||||
|
|
@ -48,16 +48,12 @@
|
|||
<div class="amount">
|
||||
<div class="amount__editable" ng-class="{'amount__editable--minimize': smallFont, 'amount__editable--standard': !smallFont, 'amount__editable--placeholder': !amount}">
|
||||
<span class="amount__number">{{amount || "0.00" }}</span>
|
||||
<a class="amount__currency-toggle" ng-click="toggleAlternative()" ng-show="showAlternativeAmount">{{alternativeIsoCode}}</a>
|
||||
<a class="amount__currency-toggle" ng-click="toggleAlternative()" ng-show="!showAlternativeAmount">{{unitName}}</a>
|
||||
<a class="amount__currency-toggle" ng-click="changeUnit()">{{unit}}</a>
|
||||
</div>
|
||||
<div ng-class="{'amount__results--minimize': smallFont, 'amount__results--standard': !smallFont, 'amount__results--placeholder': !amountResult}" ng-show="!showAlternativeAmount">
|
||||
<div class="amount__result" ng-show="globalResult">{{globalResult}} {{unitName}}</div>
|
||||
<div class="amount__result-equiv">≈ {{amountResult || '0.00'}} {{alternativeIsoCode}}</div>
|
||||
</div>
|
||||
<div ng-class="{'amount__results--minimize': smallFont, 'amount__results--standard': !smallFont, 'amount__results--placeholder': !amountResult}" ng-show="showAlternativeAmount">
|
||||
<div class="amount__result" ng-show="globalResult">{{globalResult}} {{alternativeIsoCode}}</div>
|
||||
<div class="amount__result-equiv">{{alternativeResult || '0.00'}} {{unitName}}</div>
|
||||
<div ng-class="{'amount__results--minimize': smallFont, 'amount__results--standard': !smallFont, 'amount__results--placeholder': amountResult}" ng-click="changeAlternativeUnit()">
|
||||
<div class="amount__result" ng-show="globalResult">{{globalResult}} {{unit}}</div>
|
||||
<div class="amount__result-equiv" ng-show="alternativeAmount">≈ {{alternativeAmount || '0.00'}} {{alternativeUnit}}</div>
|
||||
<div class="amount__result-equiv" ng-show="!alternativeAmount"> </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,9 +7,16 @@
|
|||
</ion-nav-back-button>
|
||||
</ion-nav-bar>
|
||||
<ion-content>
|
||||
<div class="ng-hide" ng-show="deleted">
|
||||
<div class="phrase-unavailable" translate>Wallet recovery phrase not available.</div>
|
||||
<div class="phrase-unavailable-instructions" translate>You can still export it from Advanced > Export.</div>
|
||||
<div class="ng-hide list card" ng-show="deleted">
|
||||
<div class="item heading">
|
||||
<span translate>Wallet recovery phrase not available</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="comment" translate>You can still export it from Advanced > Export.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="comment" ng-if="wallet.coin == 'bch'" translate>Note: if this BCH wallet was duplicated from a BTC wallet, they share the same recovery phrase.</span>
|
||||
</div>
|
||||
<!--
|
||||
## STEP 1
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
<div class="label" translate>From</div>
|
||||
<div class="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
<img ng-src="img/{{wallet.network == 'testnet' ? 'icon-wallet-testnet' : 'icon-wallet'}}.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
</i>
|
||||
{{wallet ? wallet.name : '...'}}
|
||||
</div>
|
||||
|
|
@ -40,19 +40,19 @@
|
|||
Details
|
||||
</div>
|
||||
<div class="item">
|
||||
<span translate>Gift card</span>
|
||||
<span translate>Gift Card</span>
|
||||
<span class="item-note">
|
||||
{{amount | currency:'$ ':2}}<span ng-if="amount"> {{currencyIsoCode}}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span translate>Invoice Fee</span>
|
||||
<span translate>Network Cost</span>
|
||||
<span class="item-note">
|
||||
<span>{{invoiceFee | currency:'$ ':2}}<span ng-if="invoiceFee"> {{currencyIsoCode}}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span translate>Network Fee</span>
|
||||
<span translate>Miner Fee</span>
|
||||
<span class="item-note">
|
||||
<span>{{networkFee | currency:'$ ':2}}<span ng-if="networkFee"> {{currencyIsoCode}}</span>
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
<div class="label">Receive in</div>
|
||||
<div class="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
<img ng-src="img/{{wallet.network == 'testnet' ? 'icon-wallet-testnet' : 'icon-wallet'}}.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
</i>
|
||||
{{wallet ? wallet.name : '...'}}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
<div class="label">Receive in</div>
|
||||
<div class="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
<img ng-src="img/{{wallet.network == 'testnet' ? 'icon-wallet-testnet' : 'icon-wallet'}}.svg" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
</i>
|
||||
{{wallet ? wallet.name : '...'}}
|
||||
</div>
|
||||
|
|
|
|||
110
www/views/buyMercadoLibre.html
Normal file
110
www/views/buyMercadoLibre.html
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
<ion-view id="mercadolibre" hide-tabs>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-back-button>
|
||||
</ion-nav-back-button>
|
||||
<ion-nav-title>
|
||||
{{'Buy'|translate}}
|
||||
</ion-nav-title>
|
||||
</ion-nav-bar>
|
||||
|
||||
<ion-content class="add-bottom-for-cta">
|
||||
<!-- BUY -->
|
||||
<div class="list">
|
||||
|
||||
<div class="item head">
|
||||
<div class="sending-label">
|
||||
<i class="icon big-icon-svg">
|
||||
<div class="bg icon-amazon"></div>
|
||||
</i>
|
||||
<span>Vale-Presente do Mercado Livre Brasil</span>
|
||||
</div>
|
||||
<div class="amount-label">
|
||||
<div class="amount">{{amountUnitStr}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info">
|
||||
<div class="item item-icon-right" ng-click="showWalletSelector()">
|
||||
<div class="label" translate>From</div>
|
||||
<div class="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img ng-src="img/{{wallet.network == 'testnet' ? 'icon-wallet-testnet' : 'icon-wallet'}}.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
</i>
|
||||
{{wallet ? wallet.name : '...'}}
|
||||
</div>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</div>
|
||||
<div ng-show="totalAmountStr">
|
||||
<div class="item item-divider" translate>
|
||||
Details
|
||||
</div>
|
||||
<div class="item">
|
||||
<span translate>Gift Card</span>
|
||||
<span class="item-note">
|
||||
{{amount | currency:'$ ':2}}<span ng-if="amount"> {{currencyIsoCode}}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span translate>Network Cost</span>
|
||||
<span class="item-note">
|
||||
<span>{{invoiceFee | currency:'$ ':2}}<span ng-if="invoiceFee"> {{currencyIsoCode}}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span translate>Miner Fee</span>
|
||||
<span class="item-note">
|
||||
<span>{{networkFee | currency:'$ ':2}}<span ng-if="networkFee"> {{currencyIsoCode}}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span translate>Total</span>
|
||||
<span class="item-note">
|
||||
<span ng-if="totalAmount">{{totalAmount | currency:'$ ':2}} {{currencyIsoCode}}</span>
|
||||
<span ng-if="totalAmountStr">({{totalAmountStr}})</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
|
||||
<click-to-accept
|
||||
is-disabled="!wallet || !totalAmountStr"
|
||||
ng-click="buyConfirm()"
|
||||
ng-if="!isCordova"
|
||||
click-send-status="sendStatus">
|
||||
Confirmar a compra
|
||||
</click-to-accept>
|
||||
<slide-to-accept
|
||||
ng-if="isCordova && wallet && totalAmountStr"
|
||||
slide-on-confirm="buyConfirm()"
|
||||
slide-send-status="sendStatus">
|
||||
Deslize para comprar
|
||||
</slide-to-accept>
|
||||
<slide-to-accept-success
|
||||
slide-success-show="sendStatus === 'success'"
|
||||
slide-success-on-confirm="goBackHome()"
|
||||
slide-success-hide-on-confirm="true">
|
||||
<span ng-show="mlGiftCard.status == 'FAILURE'">
|
||||
Sua compra não pôde ser concluída
|
||||
</span>
|
||||
<span ng-show="mlGiftCard.status == 'PENDING'">
|
||||
Sua compra foi adicionada à lista de pendentes
|
||||
</span>
|
||||
<span ng-show="mlGiftCard.status == 'SUCCESS' || mlGiftCard.status == 'active'">
|
||||
Comprou {{mlGiftCard.amount}} {{mlGiftCard.currency}}
|
||||
</span>
|
||||
<div class="m10 size-14" ng-show="mlGiftCard.status == 'SUCCESS' || mlGiftCard.cardStatus == 'active'">
|
||||
Vale-Presente gerado e pronto para usar
|
||||
</div>
|
||||
</slide-to-accept-success>
|
||||
|
||||
<wallet-selector
|
||||
wallet-selector-title="walletSelectorTitle"
|
||||
wallet-selector-wallets="wallets"
|
||||
wallet-selector-selected-wallet="wallet"
|
||||
wallet-selector-show="showWallets"
|
||||
wallet-selector-on-select="onWalletSelect">
|
||||
</wallet-selector>
|
||||
</ion-view>
|
||||
62
www/views/cashScan.html
Normal file
62
www/views/cashScan.html
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
<ion-view id="cash-scan" hide-tabs>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-title>
|
||||
<span translate>Bitcoin Cash (BCH) Balances</span>
|
||||
</ion-nav-title>
|
||||
<ion-nav-back-button>
|
||||
</ion-nav-back-button>
|
||||
</ion-nav-bar>
|
||||
|
||||
<ion-content>
|
||||
|
||||
<div class="list card">
|
||||
<div ng-if="!availableWallets[0]">
|
||||
<div class="item">
|
||||
<span class="assertive" translate>No wallets eligible for Bitcoin Cash support</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="item" ng-if="error">
|
||||
<span class="assertive">{{error}}</span>
|
||||
</div>
|
||||
|
||||
<div ng-if="availableWallets[0]">
|
||||
<div class="item heading">
|
||||
<span translate>BTC wallets</span>
|
||||
</div>
|
||||
|
||||
<div ng-repeat="wallet in availableWallets track by $index" class="item wallet supported">
|
||||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<div class="wallet-content">
|
||||
<div>{{wallet.name || wallet.id}}</div>
|
||||
<div class="balanced">{{wallet.bchBalance || ('Checking...' | translate)}} </div>
|
||||
<div class="tab-home__wallet__multisig-number" ng-if="wallet.n > 1" translate>{{wallet.m}}-of-{{wallet.n}}</div>
|
||||
</div>
|
||||
|
||||
<div class="duplicate-button">
|
||||
<button ng-click="duplicate(wallet)" class="button button-small button-outline button-primary" translate>Duplicate for BCH</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="nonEligibleWallets[0]">
|
||||
<div class="item item-divider"></div>
|
||||
|
||||
<div class="item heading">
|
||||
<span translate>Non eligible BTC wallets</span>
|
||||
</div>
|
||||
|
||||
<div ng-repeat="wallet in nonEligibleWallets track by $index" class="item item-sub item-icon-left item-big-icon-left item-button-right wallet">
|
||||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<div class="text-disabled">{{wallet.name || wallet.id}}</div>
|
||||
<div class="text-disabled">{{wallet.excludeReason}}</div>
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<span class="comment" translate>Some of your wallets are not eligible for Bitcoin Cash support. You can try to access BCH funds from these wallets using the</span>
|
||||
<a ng-click="openRecoveryToolLink()" translate>recovery tool.</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<ion-content class="add-bottom-for-cta">
|
||||
<div class="list">
|
||||
<div class="item head">
|
||||
<div class="item head" ng-hide="criticalError">
|
||||
<div class="sending-label">
|
||||
<img src="img/icon-tx-sent-outline.svg">
|
||||
<span translate ng-if="!tx.sendMax">Sending</span>
|
||||
|
|
@ -27,13 +27,13 @@
|
|||
<span class="item-note" ng-if="paymentExpired" ng-style="{'color': 'red'}" translate>Expired</span>
|
||||
</div>
|
||||
|
||||
<div class="item">
|
||||
<div class="item" ng-hide="criticalError">
|
||||
<span class="label" translate>To</span>
|
||||
<span class="payment-proposal-to" ng-if="!recipientType">
|
||||
<i class="icon icon-svg abs-v-center icon-bitcoinlogoplain"></i>
|
||||
|
||||
<div copy-to-clipboard="tx.toAddress" ng-if="!tx.paypro" class="ellipsis">
|
||||
<contact ng-if="!tx.toName" address="{{tx.toAddress}}"></contact>
|
||||
<contact ng-if="tx.toAddress && !tx.toName" address="{{tx.toAddress}}"></contact>
|
||||
<span class="m15l size-14" ng-if="tx.toName">{{tx.toName}}</span>
|
||||
</div>
|
||||
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !toColor}" ng-style="{'background-color': toColor}" class="bg"/>
|
||||
</i>
|
||||
<div copy-to-clipboard="tx.toAddress" class="ellipsis">
|
||||
<contact ng-if="!tx.toName" address="{{tx.toAddress}}"></contact>
|
||||
<contact ng-if="tx.toAddress && !tx.toName" address="{{tx.toAddress}}"></contact>
|
||||
<span ng-if="tx.toName" class="wallet-name">{{tx.toName}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -64,9 +64,7 @@
|
|||
<a class="item item-icon-right" ng-hide="!wallet" ng-click="showWalletSelector()">
|
||||
<span class="label" translate>From</span>
|
||||
<div class="wallet" ng-if="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg"/>
|
||||
</i>
|
||||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<div>{{wallet.name}}</div>
|
||||
</div>
|
||||
<div class="wallet" ng-if="!wallet">
|
||||
|
|
@ -79,18 +77,18 @@
|
|||
</a>
|
||||
<div class="item item-icon-right" ng-if="wallet" ng-click="chooseFeeLevel(tx, wallet)">
|
||||
<span class="label">{{'Fee:' | translate}} {{tx.feeLevelName | translate}}</span>
|
||||
<span class="m10l">{{tx.txp[wallet.id].feeStr || '...'}}</span>
|
||||
<span class="item-note m10l">
|
||||
<span>{{tx.txp[wallet.id].alternativeFeeStr || '...'}}
|
||||
<span class="fee-rate" ng-if="tx.txp[wallet.id].feeRatePerStr"> ·
|
||||
<i class="ion-alert-circled warn" ng-show="tx.txp[wallet.id].feeToHigh"></i>
|
||||
<span class="fee-rate" ng-class="{'warn':tx.txp[wallet.id].feeToHigh}" translate> {{tx.txp[wallet.id].feeRatePerStr}} of the sending amount </span>
|
||||
<span class="m10l">{{tx.txp[wallet.id].feeStr || '...'}}</span>
|
||||
<span class="item-note m10l">
|
||||
<span>{{tx.txp[wallet.id].alternativeFeeStr || '...'}}
|
||||
<span class="fee-rate" ng-if="tx.txp[wallet.id].feeRatePerStr"> ·
|
||||
<i class="ion-alert-circled warn" ng-show="tx.txp[wallet.id].feeToHigh"></i>
|
||||
<span class="fee-rate" ng-class="{'warn':tx.txp[wallet.id].feeToHigh}" translate> {{tx.txp[wallet.id].feeRatePerStr}} of the sending amount </span>
|
||||
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
<i ng-if="wallet.coin == 'btc'" class="icon bp-arrow-right"></i>
|
||||
</div>
|
||||
<a class="item item-icon-right" ng-if="wallet" ng-click="showDescriptionPopup(tx)">
|
||||
<span class="label" translate>Add Memo</span>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<ion-content scroll="false">
|
||||
<div class="address" ng-if="address && amountBtc">
|
||||
<div class="qr-code" copy-to-clipboard="copyToClipboard()">
|
||||
<qrcode size="220" data="bitcoin:{{address + '?amount=' + amountBtc}}" color="#334"></qrcode>
|
||||
<qrcode size="220" data="{{ protocolHandler }}:{{address + '?amount=' + amountBtc}}" color="#334"></qrcode>
|
||||
</div>
|
||||
<div class="info">
|
||||
<div class="item single-line" copy-to-clipboard="address">
|
||||
|
|
@ -38,9 +38,7 @@
|
|||
</div>
|
||||
<div class="item single-line">
|
||||
<div class="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
</i>
|
||||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
{{wallet.name}}
|
||||
</div>
|
||||
<div class="label" translate>Receive in</div>
|
||||
|
|
|
|||
9
www/views/includes/cash.html
Normal file
9
www/views/includes/cash.html
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<label class="item item-input item-select">
|
||||
<div class="input-label" translate>
|
||||
Coin
|
||||
</div>
|
||||
<select ng-model="formData.coin" ng-change="switchTestnetOff()">
|
||||
<option value="btc">BTC</option>
|
||||
<option value="bch">BCH</option>
|
||||
</select>
|
||||
</label>
|
||||
2
www/views/includes/walletIcon.html
Normal file
2
www/views/includes/walletIcon.html
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<img ng-if="wallet.network == 'testnet'" src="img/icon-wallet-testnet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg"/>
|
||||
<img ng-if="wallet.network != 'testnet'" src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg"/>
|
||||
|
|
@ -1,9 +1,15 @@
|
|||
|
||||
<ion-spinner class="spinner-dark recent right" icon="crescent" ng-show="updatingStatus || (updatingTxHistory && updatingTxHistoryProgress<=5)" ></ion-spinner>
|
||||
<div class="actions" ng-show="(walletNotRegistered || updateStatusError)">
|
||||
<a ng-show="walletNotRegistered" ng-click="recreate()" translate>Tap to recreate</a>
|
||||
<a ng-show="updateStatusError" ng-click="updateAll(true)" translate>Tap to retry</a>
|
||||
</div>
|
||||
<ion-spinner class="spinner-dark recent right" icon="crescent" ng-show="(updatingStatus || updatingTxHistory) &&
|
||||
!walletNotRegistered && !updateStatusError && !updateTxHistoryError"></ion-spinner>
|
||||
|
||||
<div>
|
||||
<span ng-show="wallet.status.wallet.singleAddress" class="size-12"><span translate>Auditable</span></span>
|
||||
<img style="height:0.6em; margin-right: 1px;" ng-show="wallet.network != 'livenet'" src="img/icon-testnet-white.svg">
|
||||
<img style="height:0.6em; margin-right: 1px;" ng-show="wallet.network != 'livenet'" src="img/icon-text-testnet-white.svg">
|
||||
<img style="height:0.6em; margin-right: 1px;" ng-show="!wallet.canSign() && !wallet.isPrivKeyExternal()" src="img/icon-read-only-white.svg">
|
||||
|
||||
<img style="height:0.6em; margin-right: 1px;" ng-show="wallet.getPrivKeyExternalSourceName() == 'trezor'" src="img/icon-trezor-white.svg">
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
<div class="wallet-item">
|
||||
<i class="icon big-icon-svg circle">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg"/>
|
||||
</i>
|
||||
<i class="icon big-icon-svg circle" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<div class="name">
|
||||
{{wallet.name || wallet.id}}
|
||||
<span class="size-12 text-light" ng-show="wallet.n > 1">
|
||||
|
|
@ -12,4 +10,3 @@
|
|||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
22
www/views/includes/walletList.html
Normal file
22
www/views/includes/walletList.html
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<span>
|
||||
{{wallet.name || wallet.id}}
|
||||
</span>
|
||||
<p>
|
||||
<span ng-if="!wallet.isComplete()" class="assertive" translate>
|
||||
Incomplete
|
||||
</span>
|
||||
<span ng-if="wallet.isComplete()">
|
||||
<span ng-if="!wallet.balanceHidden && !wallet.scanning"> {{wallet.status.totalBalanceStr ? wallet.status.totalBalanceStr : ( wallet.cachedBalance ? wallet.cachedBalance + (wallet.cachedBalanceUpdatedOn ? ' · ' + ( wallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }} </span>
|
||||
<span ng-if="wallet.scanning" translate> Scanning funds... </span>
|
||||
|
||||
<span ng-if="wallet.balanceHidden && !wallet.scanning" translate>[Balance Hidden]</span>
|
||||
<span class="tab-home__wallet__multisig-number" ng-if="wallet.n > 1">
|
||||
{{wallet.m}}-of-{{wallet.n}}
|
||||
</span>
|
||||
<i ng-if="!wallet.balanceHidden && (wallet.status.totalBalanceSat != wallet.status.spendableAmount)" class="tab-home__wallet__status-icon ion-ios-timer-outline"></i>
|
||||
<span class="assertive" ng-if="wallet.error">{{wallet.error}}</span>
|
||||
</span>
|
||||
|
||||
</p>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
14
www/views/includes/walletListSettings.html
Normal file
14
www/views/includes/walletListSettings.html
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<i class="icon big-icon-svg circle" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<span>
|
||||
{{wallet.name || wallet.id}}
|
||||
<span class="size-12 text-light" ng-show="wallet.n > 1">
|
||||
{{wallet.m}}-of-{{wallet.n}}
|
||||
</span>
|
||||
</span>
|
||||
<span class="right text-light assertive" ng-show="!wallet.isComplete()">
|
||||
{{'Incomplete' | translate}}
|
||||
</span>
|
||||
<span class="right text-light assertive" ng-show="wallet.isComplete() && wallet.needsBackup">
|
||||
{{'Backup needed' | translate}}
|
||||
</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
|
|
@ -1,32 +1,70 @@
|
|||
<action-sheet action-sheet-show="show" class="wallet-selector">
|
||||
<action-sheet action-sheet-show="show" class="wallet-selector" ng-init="walletsBtc = []; walletsBch = []">
|
||||
<img class="back-arrow" src="img/icon-back-arrow.svg" ng-click="hide()">
|
||||
<div class="header">{{title}}</div>
|
||||
|
||||
<span ng-repeat="wallet in wallets track by $index"
|
||||
ng-init="wallet.coin == 'btc' ? walletsBtc.push(wallet) : walletsBch.push(wallet)"></span>
|
||||
|
||||
<div class="header" ng-show="!walletsBtc[0] || !walletsBch[0]">{{title}}</div>
|
||||
|
||||
<div class="subheader" ng-if="walletsBtc[0] && walletsBch[0]" translate>
|
||||
<img class="wallet-coin-logo" src="img/icon-bitcoin.svg" width="18">
|
||||
<span translate>Bitcoin Wallets</span>
|
||||
</div>
|
||||
<a
|
||||
ng-repeat="w in wallets track by $index"
|
||||
ng-repeat="wallet in walletsBtc track by $index"
|
||||
class="item item-icon-left item-big-icon-left item-icon-right wallet"
|
||||
ng-click="selectWallet(w)"
|
||||
ng-click="selectWallet(wallet)"
|
||||
>
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !w.color}" ng-style="{'background-color': w.color}" class="bg">
|
||||
</i>
|
||||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<div class="wallet-inner">
|
||||
<div class="wallet-details">
|
||||
<div class="wallet-name">
|
||||
{{w.name}}
|
||||
{{wallet.name}}
|
||||
</div>
|
||||
<p class="wallet-balance">
|
||||
<span ng-if="!w.isComplete()" class="assertive" translate>
|
||||
<span ng-if="!wallet.isComplete()" class="assertive" translate>
|
||||
Incomplete
|
||||
</span>
|
||||
<span ng-if="w.isComplete()">
|
||||
<span ng-if="!w.balanceHidden">{{w.status.availableBalanceStr}}</span>
|
||||
<span ng-if="w.balanceHidden" translate>[Balance Hidden]</span>
|
||||
<span ng-if="wallet.isComplete()">
|
||||
<span ng-if="!wallet.balanceHidden">{{wallet.status.availableBalanceStr}}</span>
|
||||
<span ng-if="wallet.balanceHidden" translate>[Balance Hidden]</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<img class="check" src="img/icon-check-selected.svg" ng-show="selectedWallet === w">
|
||||
<img class="check" src="img/icon-check-selected.svg" ng-show="selectedWallet === wallet">
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="subheader" ng-if="walletsBch[0] && walletsBtc[0]">
|
||||
<img class="wallet-coin-logo" src="img/bitcoin-cash-logo.svg" width="22">
|
||||
<span translate>Bitcoin Cash Wallets</span>
|
||||
</div>
|
||||
<a
|
||||
ng-repeat="wallet in walletsBch track by $index"
|
||||
class="item item-icon-left item-big-icon-left item-icon-right wallet"
|
||||
ng-click="selectWallet(wallet)"
|
||||
>
|
||||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<div class="wallet-inner">
|
||||
<div class="wallet-details">
|
||||
<div class="wallet-name">
|
||||
{{wallet.name}}
|
||||
</div>
|
||||
<p class="wallet-balance">
|
||||
<span ng-if="!wallet.isComplete()" class="assertive" translate>
|
||||
Incomplete
|
||||
</span>
|
||||
<span ng-if="wallet.isComplete()">
|
||||
<span ng-if="!wallet.balanceHidden">{{wallet.status.availableBalanceStr}}</span>
|
||||
<span ng-if="wallet.balanceHidden" translate>[Balance Hidden]</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<img class="check" src="img/icon-check-selected.svg" ng-show="selectedWallet === wallet">
|
||||
</div>
|
||||
</a>
|
||||
</action-sheet>
|
||||
|
|
|
|||
|
|
@ -39,6 +39,9 @@
|
|||
<qr-scanner class="qr-icon size-24" on-scan="onQrCodeScannedJoin(data)"></qr-scanner>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-include="'views/includes/cash.html'" ng-if="enableCash"></div>
|
||||
|
||||
<div class="item item-divider"></div>
|
||||
|
||||
<a class="item" ng-click="showAdvChange()">
|
||||
|
|
|
|||
63
www/views/mercadoLibre.html
Normal file
63
www/views/mercadoLibre.html
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<ion-view>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-back-button>
|
||||
</ion-nav-back-button>
|
||||
<ion-nav-title>
|
||||
{{'Mercado Livre Brazil Gift Cards'|translate}}
|
||||
</ion-nav-title>
|
||||
</ion-nav-bar>
|
||||
|
||||
<ion-content scroll="false" class="ng-hide" ng-show="!giftCards">
|
||||
<div class="box-notification warning" ng-show="network == 'testnet'">
|
||||
Sandbox version. Only for testing purpose.
|
||||
</div>
|
||||
<div class="integration-onboarding">
|
||||
<div class="integration-onboarding-logo">
|
||||
<img src="img/mercado-libre/mlbr.svg" alt="Mercado Libre" width="250">
|
||||
</div>
|
||||
<div class="integration-onboarding-description" translate>
|
||||
<b>Only</b> redeemable on Mercado Livre (Brazil)
|
||||
</div>
|
||||
<div class="integration-onboarding-cta" ng-show="!showOauthForm">
|
||||
<button class="button button-standard button-primary" ui-sref="tabs.giftcards.mercadoLibre.amount" no-low-fee
|
||||
translate>
|
||||
Buy a Gift Card
|
||||
</button>
|
||||
<button class="button button-standard button-secondary"
|
||||
ng-click="openExternalLink('https://www.mercadolivre.com.br')" translate>
|
||||
Visit mercadolivre.com.br →
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
<ion-content class="ng-hide" ng-show="giftCards">
|
||||
<div class="box-notification warning" ng-show="network == 'testnet'">
|
||||
Sandbox version. Only for testing purpose.
|
||||
</div>
|
||||
|
||||
<div class="m20t text-center">
|
||||
<img src="img/mercado-libre/mlbr.svg" alt="Mercado Libre" width="250">
|
||||
<div class="size-12 m10t" translate>
|
||||
<b>Only</b> redeemable on Mercado Livre (Brazil)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="m20t" ng-if="giftCards">
|
||||
<div class="list card">
|
||||
<a class="item item-icon-left item-icon-right" href
|
||||
ui-sref="tabs.giftcards.mercadoLibre.amount" no-low-fee>
|
||||
<i class="icon ion-ios-pricetags-outline"></i>
|
||||
<span translate>Buy a Gift Card</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
|
||||
<a class="item item-icon-right item-icon-left"
|
||||
ui-sref="tabs.giftcards.mercadoLibre.cards">
|
||||
<i class="icon ion-ios-folder-outline"></i>
|
||||
<span translate>Your Gift Cards</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
34
www/views/mercadoLibreCards.html
Normal file
34
www/views/mercadoLibreCards.html
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<ion-view id="meli-list-cards">
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-back-button>
|
||||
</ion-nav-back-button>
|
||||
<ion-nav-title>
|
||||
{{'Your Gift Cards'|translate}}
|
||||
</ion-nav-title>
|
||||
</ion-nav-bar>
|
||||
|
||||
<ion-content>
|
||||
<div class="list card">
|
||||
<div ng-repeat="(id, item) in giftCards | orderObjectBy:'date':true track by $index"
|
||||
ng-click="openCardModal(item)"
|
||||
class="item item-avatar"
|
||||
ng-hide="hideCards">
|
||||
<img class="item-logo" src="img/mercado-libre/meli-card-24px.png" alt="{{id}}">
|
||||
|
||||
<span class="item-note">
|
||||
<span class="assertive" ng-if="item.status == 'FAILURE'" translate>Error</span>
|
||||
<span class="dark" ng-if="item.status == 'expired'" translate>Invoice expired</span>
|
||||
<span class="calm" ng-if="item.status == 'invalid'" translate>Still pending</span>
|
||||
<span class="positive" ng-if="item.status == 'PENDING'" translate>Pending</span>
|
||||
|
||||
<span class="assertive" ng-if="item.cardStatus == 'inactive'" translate>Inactive</span>
|
||||
<span class="assertive" ng-if="item.cardStatus == 'expired'" translate>Expired</span>
|
||||
</span>
|
||||
<h2 ng-if="item.amount">
|
||||
{{item.amount | currency : '' : 2}} {{item.currency}}
|
||||
</h2>
|
||||
<p class="dark">{{item.date | amTimeAgo}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
|
|
@ -75,7 +75,7 @@
|
|||
<div class="input-label" translate>
|
||||
Fee level
|
||||
</div>
|
||||
<select ng-options="fee as level for (fee,level) in feeOpts" ng-model="selectedFee.value">
|
||||
<select ng-options="fee as level | translate for (fee,level) in feeOpts" ng-model="selectedFee.value">
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
|
|
|
|||
75
www/views/modals/mercadolibre-card-details.html
Normal file
75
www/views/modals/mercadolibre-card-details.html
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
<ion-modal-view id="meli-card" ng-controller="mercadoLibreCardDetailsController">
|
||||
<ion-header-bar align-title="center" class="bar-royal">
|
||||
<button class="button button-back button-clear" ng-click="close()" translate>
|
||||
Close
|
||||
</button>
|
||||
<h1 class="title" translate>Details</h1>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content>
|
||||
|
||||
<div class="card-head">
|
||||
<img src="img/mercado-libre/giftcard-pt.svg" alt="Mercado Livre Brazil Gift Card" width="230">
|
||||
|
||||
<div class="amount">
|
||||
{{card.amount | currency : '' : 2}} {{card.currency}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-status">
|
||||
<div ng-show="card.cardStatus == 'active'">
|
||||
<div class="redeem-pin" copy-to-clipboard="card.pin">{{card.pin}}</div>
|
||||
<button class="button-redeem"
|
||||
ng-click="openExternalLink('https://www.mercadolivre.com.br')" translate>
|
||||
Redeem now
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div ng-show="card.cardStatus == 'inactive'">
|
||||
<span class="assertive" translate>Inactive</span>
|
||||
<div class="card-status-desc" translate>Gift Card is not available to use anymore</div>
|
||||
</div>
|
||||
|
||||
<div ng-show="card.cardStatus == 'expired'">
|
||||
<span class="assertive" translate>Expired</span>
|
||||
<div class="card-status-desc" translate>Gift Card is not available to use anymore</div>
|
||||
</div>
|
||||
|
||||
<div ng-show="card.status">
|
||||
<span class="positive" ng-show="card.status == 'PENDING'" translate>
|
||||
Pending
|
||||
</span>
|
||||
<span class="calm" ng-show="card.status=='invalid'" translate>
|
||||
Still pending
|
||||
</span>
|
||||
<span class="assertive" ng-show="card.status == 'FAILURE'" translate>
|
||||
Error
|
||||
</span>
|
||||
<span class="dark" ng-show="card.status == 'expired'" translate>
|
||||
Invoice expired
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="list">
|
||||
<div class="item">
|
||||
<span translate>Date</span>
|
||||
<span class="item-note">
|
||||
{{card.date | amTimeAgo}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="item item-icon-right" ng-click="openExternalLink(card.invoiceUrl)">
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
<span translate>See invoice</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-remove" ng-show="card.status == 'FAILURE' || card.cardStatus == 'inactive' || card.cardStatus == 'expired' || card.status == 'expired'">
|
||||
<button class="button-remove" ng-click="remove()" translate>
|
||||
Remove
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
|
|
@ -73,9 +73,7 @@
|
|||
<div class="item">
|
||||
<span class="label" translate>From</span>
|
||||
<div class="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg"/>
|
||||
</i>
|
||||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<div>{{wallet.name}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<p id="lead" translate>Take control of your money,<br />get started with bitcoin.</p>
|
||||
</div>
|
||||
<div id="cta-buttons">
|
||||
<button class="button button-standard button-primary" id="get-started" href ui-sref="onboarding.tour" translate>Get started</button>
|
||||
<button class="button button-standard button-primary" id="get-started" href ui-sref="onboarding.tour" translate-context="button" translate>Get started</button>
|
||||
<button class="button button-standard button-secondary button-clear" id="restore" translate href ui-sref="onboarding.import({'fromOnboarding':true})">Restore from backup</button>
|
||||
</div>
|
||||
</ion-content>
|
||||
|
|
|
|||
|
|
@ -23,9 +23,7 @@
|
|||
</div>
|
||||
<div class="list card" ng-click="showWalletSelector()" ng-if="wallets[0]">
|
||||
<a ng-if="wallet" class="item item-sub item-icon-left item-big-icon-left item-icon-right">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg wallet"/>
|
||||
</i>
|
||||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<span>
|
||||
{{wallet.name || wallet.id}}
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<a class="item item-icon-right" ui-sref="tabs.preferences.preferencesAlias">
|
||||
<span translate>Name</span>
|
||||
<span class="item-note">
|
||||
<span class="item-note ellipsis">
|
||||
{{wallet.name}}
|
||||
</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
|
|
@ -45,9 +45,10 @@
|
|||
<span translate>
|
||||
If enabled, all sensitive information (private key and recovery phrase) and actions (spending and exporting) associated with this wallet will be protected.
|
||||
</span>
|
||||
<span class="text-light assertive" ng-show="wallet.needsBackup" translate>
|
||||
<a ng-click="openWikiSpendingPassword()" translate>Learn more</a>
|
||||
<div class="text-light assertive" ng-show="wallet.needsBackup" translate>
|
||||
Complete the backup process to use this option
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="wallet.canSign() && touchIdAvailable">
|
||||
|
|
|
|||
|
|
@ -15,14 +15,14 @@
|
|||
</label>
|
||||
</div>
|
||||
<div class="list" ng-if="lastUsedAltCurrencyList[0]">
|
||||
<ion-radio ng-repeat="lastUsedAltCurrency in lastUsedAltCurrencyList" ng-value="lastUsedAltCurrency.isoCode" ng-model="currentCurrency"
|
||||
ng-click="save(lastUsedAltCurrency)">{{lastUsedAltCurrency.name}}
|
||||
<ion-radio class="alt-currency-radio" ng-repeat="lastUsedAltCurrency in lastUsedAltCurrencyList" ng-value="lastUsedAltCurrency.isoCode" ng-model="currentCurrency"
|
||||
ng-click="save(lastUsedAltCurrency)">{{lastUsedAltCurrency.name}} <span class="item-note">{{lastUsedAltCurrency.isoCode}}</span>
|
||||
</ion-radio>
|
||||
</div>
|
||||
<div class="list">
|
||||
<ion-radio ng-repeat="altCurrency in altCurrencyList" ng-value="altCurrency.isoCode" ng-model="currentCurrency"
|
||||
ng-click="save(altCurrency)">{{altCurrency.name}}
|
||||
</ion-radio>
|
||||
<div class="item" ng-repeat="altCurrency in altCurrencyList" ng-value="altCurrency.isoCode" ng-model="currentCurrency"
|
||||
ng-click="save(altCurrency)">{{altCurrency.name}} <span class="item-note">{{altCurrency.isoCode}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<ion-infinite-scroll
|
||||
ng-if="!listComplete"
|
||||
|
|
|
|||
27
www/views/preferencesCash.html
Normal file
27
www/views/preferencesCash.html
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<ion-view id="tab-notifications" class="settings" show-tabs>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-title>{{'Bitcoin Cash Support' | translate}}</ion-nav-title>
|
||||
<ion-nav-back-button>
|
||||
</ion-nav-back-button>
|
||||
</ion-nav-bar>
|
||||
|
||||
<ion-content>
|
||||
<div class="list">
|
||||
<ion-toggle class="has-comment" ng-model="cashSupport.value" toggle-class="toggle-balanced" ng-change="cashSupportChange()">
|
||||
<span class="toggle-label" translate>Support Bitcoin Cash</span>
|
||||
</ion-toggle>
|
||||
</div>
|
||||
|
||||
<div class="settings-explanation">
|
||||
<div class="settings-description" ng-show="!cashSupport.value">
|
||||
<span translate>Enable Bitcoin Cash wallet creation and operation within the App.</span>
|
||||
<a ng-click="openBitcoinCashWeb()" translate>Learn more</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list" ng-if="cashSupport.value">
|
||||
<div class="item scan-label" ui-sref="tabs.preferencesCash.scan">
|
||||
<span translate>Scan your wallets for Bitcoin Cash</span>
|
||||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
</p>
|
||||
</div>
|
||||
<button class="button button-standard button-assertive" ng-click="showDeletePopup()">
|
||||
{{'Delete'|translate}} <span ng-show="alias">{{alias}}</span>{{walletName}}
|
||||
{{'Delete'|translate}} {{walletName}}
|
||||
</button>
|
||||
</div>
|
||||
</ion-content>
|
||||
|
|
|
|||
|
|
@ -13,6 +13,12 @@
|
|||
{{walletName}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="item" copy-to-clipboard="walletId">
|
||||
<span translate>Coin</span>
|
||||
<span class="item-note">
|
||||
{{wallet.coin}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="item" copy-to-clipboard="walletId">
|
||||
<span translate>Wallet Id</span>
|
||||
<span class="item-note">
|
||||
|
|
|
|||
|
|
@ -12,7 +12,10 @@
|
|||
<ion-content class="log-bg">
|
||||
<div class="list">
|
||||
<div class="item item-text-wrap enable_text_select log-entry">
|
||||
<div class="centered" ng-show="filteredLogs.length == 0" translate>No entries for this log level <a ng-click="showOptionsMenu()">filter setting</a>.</div>
|
||||
<div class="centered" ng-show="filteredLogs.length == 0">
|
||||
<span translate>No entries for this log level</span>.
|
||||
<a ng-click="showOptionsMenu()" translate>Filter setting</a>.
|
||||
</div>
|
||||
<ul ng-show="filteredLogs.length > 0">
|
||||
<li ng-repeat="l in filteredLogs">
|
||||
<span ng-class="{'energized': l.level=='warn', 'dark': l.level=='debug', 'positive': l.level=='info', 'assertive': l.level=='error'}">
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
<ion-view class="settings" show-tabs>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-title>
|
||||
{{'Unit'|translate}}
|
||||
</ion-nav-title>
|
||||
<ion-nav-back-button>
|
||||
</ion-nav-back-button>
|
||||
</ion-nav-bar>
|
||||
<ion-content>
|
||||
<ion-radio ng-repeat="unit in unitList" ng-value="unit.code" ng-model="currentUnit"
|
||||
ng-click="save(unit)">{{unit.shortName}}
|
||||
</ion-radio>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
<div class="label">From</div>
|
||||
<div class="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
<img ng-src="img/{{wallet.network == 'testnet' ? 'icon-wallet-testnet' : 'icon-wallet'}}.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
</i>
|
||||
{{wallet ? wallet.name : '...'}}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
<div class="label">From</div>
|
||||
<div class="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
<img ng-src="img/{{wallet.network == 'testnet' ? 'icon-wallet-testnet' : 'icon-wallet'}}.svg" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
</i>
|
||||
{{wallet ? wallet.name : '...'}}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@
|
|||
required>
|
||||
</label>
|
||||
|
||||
<div ng-include="'views/includes/cash.html'" ng-if="enableCash"></div>
|
||||
|
||||
<div class="item item-divider"></div>
|
||||
|
||||
<a class="item" ng-click="showAdvChange()">
|
||||
|
|
@ -112,7 +114,7 @@
|
|||
ng-model="formData.derivationPath">
|
||||
</label>
|
||||
|
||||
<ion-toggle ng-show="formData.seedSource.supportsTestnet" ng-model="formData.testnetEnabled" toggle-class="toggle-positive">
|
||||
<ion-toggle ng-show="formData.seedSource.supportsTestnet && formData.coin == 'btc'" ng-model="formData.testnetEnabled" toggle-class="toggle-positive">
|
||||
<span translate>Testnet</span>
|
||||
</ion-toggle>
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@
|
|||
ng-blur="formFocus(false)">
|
||||
</label>
|
||||
|
||||
<div ng-include="'views/includes/cash.html'" ng-if="enableCash"></div>
|
||||
|
||||
<label class="item item-input item-select">
|
||||
<div class="input-label" translate>
|
||||
Total number of copayers
|
||||
|
|
@ -141,7 +143,7 @@
|
|||
ng-model="formData.derivationPath">
|
||||
</label>
|
||||
|
||||
<ion-toggle ng-show="formData.seedSource.supportsTestnet" ng-model="formData.testnetEnabled" toggle-class="toggle-positive">
|
||||
<ion-toggle ng-show="formData.seedSource.supportsTestnet && formData.coin == 'btc'" ng-model="formData.testnetEnabled" toggle-class="toggle-positive">
|
||||
Testnet
|
||||
</ion-toggle>
|
||||
|
||||
|
|
|
|||
|
|
@ -64,50 +64,51 @@
|
|||
</a>
|
||||
</div>
|
||||
|
||||
<div class="list card">
|
||||
<div class="list card" ng-if="!walletsBtc[0] && !walletsBch[0]">
|
||||
<div class="item item-icon-right item-heading">
|
||||
<span translate>Wallets</span>
|
||||
<a ui-sref="tabs.add" ng-if="wallets[0]"><i class="icon ion-ios-plus-empty list-add-button"></i></a>
|
||||
</div>
|
||||
<a ui-sref="tabs.add" class="item item-icon-left item-big-icon-left item-icon-right next-step">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" class="bg wallet icon-create-wallet"/>
|
||||
</i>
|
||||
<span translate>Create bitcoin wallet</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="list card" ng-if="walletsBtc[0]">
|
||||
<div class="item item-icon-right item-heading">
|
||||
<img class="wallet-coin-logo" src="img/icon-bitcoin.svg" width="18">
|
||||
<span translate>Bitcoin Wallets</span>
|
||||
<a ui-sref="tabs.add"><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">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" class="bg wallet icon-create-wallet"/>
|
||||
</i>
|
||||
<span translate>Create bitcoin wallet</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
<a ng-repeat="wallet in wallets track by $index"
|
||||
<a ng-repeat="wallet in walletsBtc track by $index"
|
||||
class="item item-sub item-icon-left item-big-icon-left item-icon-right wallet"
|
||||
ng-click="openWallet(wallet)">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg wallet"/>
|
||||
</i>
|
||||
<span>
|
||||
{{wallet.name || wallet.id}}
|
||||
</span>
|
||||
<p>
|
||||
<span ng-if="!wallet.isComplete()" class="assertive" translate>
|
||||
Incomplete
|
||||
</span>
|
||||
<span ng-if="wallet.isComplete()">
|
||||
<span ng-if="!wallet.balanceHidden"> {{wallet.status.totalBalanceStr ? wallet.status.totalBalanceStr : ( wallet.cachedBalance ? wallet.cachedBalance + (wallet.cachedBalanceUpdatedOn ? ' · ' + ( wallet.cachedBalanceUpdatedOn * 1000 | amTimeAgo) : '') : '' ) }} </span>
|
||||
|
||||
<span ng-if="wallet.balanceHidden" translate>[Balance Hidden]</span>
|
||||
<span class="tab-home__wallet__multisig-number" ng-if="wallet.n > 1">
|
||||
{{wallet.m}}-of-{{wallet.n}}
|
||||
</span>
|
||||
<i ng-if="!wallet.balanceHidden && (wallet.status.totalBalanceSat != wallet.status.spendableAmount)" class="tab-home__wallet__status-icon ion-ios-timer-outline"></i>
|
||||
<span class="assertive" ng-if="wallet.error">{{wallet.error}}</span>
|
||||
</span>
|
||||
|
||||
</p>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
<span ng-include="'views/includes/walletList.html'"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ng-hide list card" ng-show="wallets[0] && bitpayCardItems.length>0" ng-include="'views/includes/bitpayCardsCard.html'"></div>
|
||||
<div class="ng-hide list card" ng-show="wallets[0] && buyAndSellItems.length>0" ng-include="'views/includes/buyAndSellCard.html'"></div>
|
||||
|
||||
<div class="list card" ng-if="walletsBch[0]">
|
||||
<div class="item item-icon-right item-heading">
|
||||
<img class="wallet-coin-logo" src="img/bitcoin-cash-logo.svg" width="22">
|
||||
<span translate>Bitcoin Cash Wallets</span>
|
||||
<a ui-sref="tabs.add({coin:'bch'})"><i class="icon ion-ios-plus-empty list-add-button"></i></a>
|
||||
</div>
|
||||
<div>
|
||||
<a ng-repeat="wallet in walletsBch track by $index"
|
||||
class="item item-sub item-icon-left item-big-icon-left item-icon-right wallet"
|
||||
ng-click="openWallet(wallet)">
|
||||
<span ng-include="'views/includes/walletList.html'"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ng-hide list card" ng-show="walletsBtc[0] && bitpayCardItems.length>0" ng-include="'views/includes/bitpayCardsCard.html'"></div>
|
||||
<div class="ng-hide list card" ng-show="walletsBtc[0] && buyAndSellItems.length>0" ng-include="'views/includes/buyAndSellCard.html'"></div>
|
||||
<div class="ng-hide list card" ng-show="homeIntegrations.length>0" ng-include="'views/includes/homeIntegrations.html'"></div>
|
||||
<div class="ng-hide list card" ng-show="nextStepsItems.length>0 && !isWindowsPhoneApp" ng-include="'views/includes/nextSteps.html'"></div>
|
||||
</ion-content>
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
ng-model="formData.password">
|
||||
</label>
|
||||
|
||||
<div ng-include="'views/includes/cash.html'" ng-if="enableCash"></div>
|
||||
|
||||
<div class="item item-divider"></div>
|
||||
|
||||
<a class="item" ng-click="showAdvChange()">
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@
|
|||
<qr-scanner class="qr-icon size-24" on-scan="processWalletInfo(data)"></qr-scanner>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-include="'views/includes/cash.html'" ng-if="enableCash"></div>
|
||||
|
||||
<div class="item item-divider"></div>
|
||||
|
||||
<a class="item" ng-click="showAdvChange()">
|
||||
|
|
@ -61,7 +64,7 @@
|
|||
<select class="m10t" ng-model="formData.seedSourceAll" ng-options="seed as seed.label for seed in seedOptionsAll"></select>
|
||||
</label>
|
||||
|
||||
<ion-toggle ng-model="formData.testnetEnabled" ng-change="setDerivationPath()" toggle-class="toggle-positive">
|
||||
<ion-toggle ng-model="formData.testnetEnabled" ng-change="setDerivationPath()" toggle-class="toggle-positive" ng-if="formData.coin == 'btc'">
|
||||
<span translate>Testnet</span>
|
||||
</ion-toggle>
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
<span translate>Show address</span>
|
||||
</button>
|
||||
</span>
|
||||
<qrcode ng-if="addr" size="220" data="bitcoin:{{addr}}" color="#334"></qrcode>
|
||||
<qrcode ng-if="addr" size="220" data="{{ protocolHandler }}:{{addr}}" color="#334"></qrcode>
|
||||
<div class="address-label">
|
||||
<span class="ellipsis">{{addr}}</span>
|
||||
<ion-spinner ng-show="!addr" class="spinner-dark" icon="crescent"></ion-spinner>
|
||||
|
|
@ -62,9 +62,7 @@
|
|||
|
||||
<div class="wallet-selector" ng-click="showWalletSelector()" ng-if="wallets[0] && wallet">
|
||||
<a ng-if="wallet" class="item item-sub item-icon-left item-big-icon-left item-icon-right">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg wallet"/>
|
||||
</i>
|
||||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<span>
|
||||
{{wallet.name || wallet.id}}
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -68,9 +68,7 @@
|
|||
</div>
|
||||
<div class="list">
|
||||
<a class="item item-icon-left item-icon-right" ng-repeat="item in list" ng-if="hasWallets && item.recipientType == 'wallet'" ng-click="goToAmount(item)">
|
||||
<i class="icon big-icon-svg" ng-if="item.recipientType == 'wallet'">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !item.color}" ng-style="{'background-color': item.color}" class="bg"/>
|
||||
</i>
|
||||
<i class="icon big-icon-svg" ng-if="item.recipientType == 'wallet'" ng-init="wallet = item" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
{{item.name}}
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -39,6 +39,21 @@
|
|||
|
||||
<div class="item item-divider">{{'Preferences' | translate}}</div>
|
||||
|
||||
|
||||
<a class="item has-setting-value item-icon-left item-icon-right" ui-sref="tabs.preferencesCash">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-bch.svg" class="bg bch" ng-class="{'bch-enabled': cashSupport.value}"/>
|
||||
</i>
|
||||
<span class="setting-title">{{'Bitcoin Cash Support' | translate}}</span>
|
||||
<span class="setting-value">
|
||||
<span translate ng-if="cashSupport.value">Enabled</span>
|
||||
<span translate ng-if="!cashSupport.value">Disabled</span>
|
||||
</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a class="item item-icon-left item-icon-right" ui-sref="tabs.notifications">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-notifications.svg" class="bg"/>
|
||||
|
|
@ -56,16 +71,6 @@
|
|||
</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
<a class="item has-setting-value item-icon-left item-icon-right" ui-sref="tabs.unit">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-unit.svg" class="bg"/>
|
||||
</i>
|
||||
<span class="setting-title">{{'Bitcoin Unit' | translate}}</span>
|
||||
<span class="setting-value">
|
||||
{{unitName}}
|
||||
</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
|
||||
<a class="item has-setting-value item-icon-left item-icon-right" ui-sref="tabs.altCurrency">
|
||||
<i class="icon big-icon-svg">
|
||||
|
|
@ -99,29 +104,24 @@
|
|||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
|
||||
<div class="item item-divider" ng-show="wallets[0]">{{'Wallets & Integrations' | translate}}</div>
|
||||
<div class="item item-divider" ng-show="walletsBtc[0]">{{'Bitcoin Wallets' | translate}}</div>
|
||||
|
||||
<a class="item item-icon-left item-icon-right" href
|
||||
ui-sref="tabs.preferences({'walletId': item.id})"
|
||||
ng-repeat="item in wallets track by $index">
|
||||
<i class="icon big-icon-svg circle">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !item.color}" ng-style="{'background-color': item.color}" class="bg"/>
|
||||
</i>
|
||||
<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()">
|
||||
{{'Incomplete' | translate}}
|
||||
</span>
|
||||
<span class="right text-light assertive" ng-show="item.isComplete() && item.needsBackup">
|
||||
{{'Backup needed' | translate}}
|
||||
</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
ui-sref="tabs.preferences({'walletId': wallet.id})"
|
||||
ng-repeat="wallet in walletsBtc track by $index">
|
||||
<span ng-include="'views/includes/walletListSettings.html'"></span>
|
||||
</a>
|
||||
|
||||
<div class="item item-divider" ng-show="walletsBch[0]">{{'Bitcoin Cash Wallets' | translate}}</div>
|
||||
|
||||
<a class="item item-icon-left item-icon-right" href
|
||||
ui-sref="tabs.preferences({'walletId': wallet.id})"
|
||||
ng-repeat="wallet in walletsBch track by $index">
|
||||
<span ng-include="'views/includes/walletListSettings.html'"></span>
|
||||
</a>
|
||||
|
||||
<div class="item item-divider" ng-show="bitpayAccounts || buyAndSellServices[0]">{{'Integrations' | translate}}</div>
|
||||
|
||||
<a class=" item item-icon-left item-icon-right"
|
||||
ng-if="bitpayAccounts || bitpayCards"
|
||||
ui-sref="tabs.preferences.bitpayServices">
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
<div class="label" translate>From</div>
|
||||
<div class="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
<img ng-src="img/{{wallet.network == 'testnet' ? 'icon-wallet-testnet' : 'icon-wallet'}}.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg">
|
||||
</i>
|
||||
{{wallet ? wallet.name : '...'}}
|
||||
</div>
|
||||
|
|
@ -53,14 +53,14 @@
|
|||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span translate>Invoice Fee</span>
|
||||
<span translate>Network Cost</span>
|
||||
<span class="item-note">
|
||||
<span ng-if="invoiceFee">{{invoiceFee | currency:currencySymbol:2}} {{currencyIsoCode}}</span>
|
||||
<span ng-if="!invoiceFee">...</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span translate>Network Fee</span>
|
||||
<span translate>Miner Fee</span>
|
||||
<span class="item-note">
|
||||
<span ng-if="networkFee">{{networkFee | currency:currencySymbol:2}} {{currencyIsoCode}}</span>
|
||||
<span ng-if="!networkFee">...</span>
|
||||
|
|
|
|||
|
|
@ -52,9 +52,7 @@
|
|||
<span class="label" ng-if="btx.action === 'sent'" translate>From</span>
|
||||
<span class="label" ng-if="btx.action !== 'sent'" translate>To</span>
|
||||
<div class="wallet">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-wallet.svg" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color': wallet.color}" class="bg"/>
|
||||
</i>
|
||||
<i class="icon big-icon-svg" ng-include="'views/includes/walletIcon.html'"></i>
|
||||
<div>{{wallet.name}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -91,9 +89,11 @@
|
|||
<div class="item low-fees" ng-if="btx.lowAmount">
|
||||
<i class="icon"><img src="img/icon-warning.png" width="20px"></i>
|
||||
<span translate>
|
||||
This transaction amount is too small compared to current Bitcoin network fees. Spending these funds will need a Bitcoin network fee cost comparable to the funds itself. </span>
|
||||
This transaction amount is too small compared to current Bitcoin network fees. Spending these funds will need a Bitcoin network fee cost comparable to the funds itself.
|
||||
</span>
|
||||
<a ng-click="readMore()" translate>Learn more</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="item single-line">
|
||||
<span class="label" translate>Confirmations</span>
|
||||
<span class="item-note">
|
||||
|
|
|
|||
|
|
@ -14,73 +14,70 @@
|
|||
<div class="bp-content" ng-class="{'status-bar': isCordova}">
|
||||
|
||||
<div class="amount-wrapper" ng-show="wallet && wallet.isComplete() && amountIsCollapsible" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color':wallet.color}">
|
||||
<div
|
||||
class="amount-bg"
|
||||
ng-style="{'background-color':wallet.color}"
|
||||
ng-class="{collapsible: amountIsCollapsible, 'wallet-background-color-default': !wallet.color}"
|
||||
></div>
|
||||
|
||||
<div
|
||||
ng-style="{'background-color':wallet.color, 'height': amountHeight}"
|
||||
class="amount"
|
||||
ng-class="{collapsible: amountIsCollapsible, 'wallet-background-color-default': !wallet.color}"
|
||||
ng-class="{collapsible: amountIsCollapsible, 'wallet-background-color-default': !wallet.color, 'no-alternative': wallet.network != 'livenet'}"
|
||||
>
|
||||
<div ng-if="!notAuthorized && !updatingStatus">
|
||||
|
||||
<div ng-show="updateStatusError">
|
||||
<span class="size-12 db m10">{{updateStatusError}}</span>
|
||||
<a class="button button-outline button-light button-small" ng-click='updateAll(true)' translate>Tap to retry</a>
|
||||
</div>
|
||||
<div class="amount__error" ng-style="{opacity: altAmountOpacity}" ng-show="updateStatusError">
|
||||
<span>{{updateStatusError}}</span>
|
||||
</div>
|
||||
|
||||
<div ng-show="walletNotRegistered">
|
||||
<span class="size-12 db m10" translate>This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information.</span>
|
||||
<a class="button button-outline button-light button-small" ng-click='recreate()' translate>Recreate</a>
|
||||
</div>
|
||||
<div class="amount__error" ng-style="{opacity: altAmountOpacity}" ng-show="walletNotRegistered">
|
||||
<span translate>This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information.</span>
|
||||
</div>
|
||||
|
||||
<div
|
||||
ng-click='updateAll(true)'
|
||||
ng-show="!updateStatusError && !wallet.balanceHidden && !wallet.scanning"
|
||||
on-hold="hideToggle()"
|
||||
ng-style="{'transform': amountScale}"
|
||||
ng-class="{amount__balance: amountIsCollapsible}">
|
||||
<strong class="size-36">{{status.totalBalanceStr}}</strong>
|
||||
<div
|
||||
ng-click='updateAll(true)'
|
||||
ng-show="!updateStatusError && !wallet.balanceHidden"
|
||||
on-hold="hideToggle()"
|
||||
ng-style="{'transform': amountScale}"
|
||||
ng-class="{amount__balance: amountIsCollapsible}">
|
||||
<strong class="size-36">{{status.totalBalanceStr}}</strong>
|
||||
<div
|
||||
class="size-14 amount-alternative"
|
||||
ng-if="status.totalBalanceAlternative"
|
||||
ng-style="{opacity: altAmountOpacity}"
|
||||
>
|
||||
{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-style="{'transform': amountScale}"
|
||||
class="amount__balance"
|
||||
ng-show="!updateStatusError && wallet.balanceHidden"
|
||||
on-hold="hideToggle()">
|
||||
<strong class="size-24" translate>[Balance Hidden]</strong>
|
||||
<div ng-style="{opacity: altAmountOpacity}" class="size-14 amount-alternative" translate>
|
||||
Tap and hold to show
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="!wallet.balanceHidden && showBalanceButton" ng-style="{'opacity': altAmountOpacity, 'transform': amountScale}">
|
||||
<button class="button button-standard button-primary amount__button-balance size-14" ng-click="openBalanceModal()">
|
||||
<i class="icon ion-ios-checkmark-outline"></i>
|
||||
<strong>
|
||||
{{status.spendableBalanceStr}}
|
||||
</strong>
|
||||
|
||||
<span>
|
||||
{{status.spendableBalanceAlternative}} {{status.alternativeIsoCode}}
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div ng-if="updatingStatus" class="amount__updating">
|
||||
<div class="size-36">
|
||||
<strong>...</strong>
|
||||
class="size-14 amount-alternative"
|
||||
ng-if="status.totalBalanceAlternative && wallet.network == 'livenet'"
|
||||
ng-style="{opacity: altAmountOpacity}">
|
||||
{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-style="{'transform': amountScale}"
|
||||
class="amount__balance"
|
||||
ng-show="!updateStatusError && wallet.balanceHidden && !wallet.scanning"
|
||||
on-hold="hideToggle()">
|
||||
<strong class="size-24" translate>[Balance Hidden]</strong>
|
||||
<div ng-style="{opacity: altAmountOpacity}" class="size-14 amount-alternative" translate>
|
||||
Tap and hold to show
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-style="{'transform': amountScale}"
|
||||
class="amount__balance"
|
||||
ng-show="!updateStatusError && wallet.scanning">
|
||||
<strong class="size-24" translate>[Scanning Funds]</strong>
|
||||
<div ng-style="{opacity: altAmountOpacity}" class="size-14 amount-alternative" translate>
|
||||
Please wait
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-if="!wallet.balanceHidden && !wallet.scanning && showBalanceButton" ng-style="{'opacity': altAmountOpacity, 'transform': amountScale}">
|
||||
<button class="button button-standard button-primary amount__button-balance size-14" ng-click="openBalanceModal()">
|
||||
<i class="icon ion-ios-checkmark-outline"></i>
|
||||
<strong>
|
||||
{{status.spendableBalanceStr}}
|
||||
</strong>
|
||||
|
||||
<span>
|
||||
{{status.spendableBalanceAlternative}} {{status.alternativeIsoCode}}
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="wallet-details-wallet-info" ng-style="{opacity: altAmountOpacity}">
|
||||
<span ng-include="'views/includes/walletInfo.html'"></span>
|
||||
|
|
@ -95,77 +92,91 @@
|
|||
on-refresh="onRefresh()">
|
||||
</ion-refresher>
|
||||
|
||||
<div class="amount-wrapper" ng-if="wallet && wallet.isComplete() && !amountIsCollapsible">
|
||||
<div
|
||||
class="amount-bg"
|
||||
ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color':wallet.color}"
|
||||
></div>
|
||||
<div
|
||||
ng-style="{'background-color':wallet.color}"
|
||||
class="amount"
|
||||
ng-class="{'collapsible': amountIsCollapsible, 'wallet-background-color-default': !wallet.color}"
|
||||
>
|
||||
<div ng-if="!updatingStatus">
|
||||
<!-- Start Balance view duplicate (for Android compatibility) -->
|
||||
<div class="amount-wrapper" ng-show="wallet && wallet.isComplete() && !amountIsCollapsible" ng-class="{'wallet-background-color-default': !wallet.color}" ng-style="{'background-color':wallet.color}">
|
||||
|
||||
<div ng-show="updateStatusError">
|
||||
<span class="size-12 db m10">{{updateStatusError}}</span>
|
||||
<a class="button button-outline button-light button-small" ng-click='updateAll()' translate>Tap to retry</a>
|
||||
</div>
|
||||
<div
|
||||
ng-style="{'background-color':wallet.color, 'height': amountHeight}"
|
||||
class="amount"
|
||||
ng-class="{collapsible: amountIsCollapsible, 'wallet-background-color-default': !wallet.color, 'no-alternative': wallet.network != 'livenet'}"
|
||||
>
|
||||
|
||||
<div ng-show="walletNotRegistered">
|
||||
<span class="size-12 db m10" translate>This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information.</span>
|
||||
<a class="button button-outline button-light button-small" ng-click='recreate()' translate>Recreate</a>
|
||||
</div>
|
||||
|
||||
<div ng-click='updateAll(true)' ng-show="!updateStatusError && !wallet.balanceHidden" on-hold="hideToggle()" ng-style="{'transform': amountScale}">
|
||||
<strong class="size-36">{{status.totalBalanceStr}}</strong>
|
||||
<div class="size-14 amount-alternative" ng-if="status.totalBalanceAlternative">{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="!wallet.balanceHidden && showBalanceButton" ng-style="{'opacity': altAmountOpacity, 'transform': amountScale}">
|
||||
<button class="button button-standard button-primary amount__button-balance size-14" ng-click="openBalanceModal()">
|
||||
<i class="icon ion-ios-checkmark-outline"></i>
|
||||
<strong>
|
||||
{{status.spendableBalanceStr}}
|
||||
</strong>
|
||||
|
||||
<span>
|
||||
{{status.spendableBalanceAlternative}} {{status.alternativeIsoCode}}
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div ng-show="!updateStatusError && wallet.balanceHidden" ng-style="{'transform': amountScale}" on-hold="hideToggle()">
|
||||
<strong class="size-24" translate>[Balance Hidden]</strong>
|
||||
<div class="size-14" translate>
|
||||
Tap and hold to show
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="updatingStatus">
|
||||
<div class="size-36">
|
||||
<strong>...</strong>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- amount -->
|
||||
|
||||
<div class="wallet-details-wallet-info">
|
||||
<span ng-include="'views/includes/walletInfo.html'"></span>
|
||||
<div class="amount__error" ng-style="{opacity: altAmountOpacity}" ng-show="updateStatusError">
|
||||
<span>{{updateStatusError}}</span>
|
||||
</div>
|
||||
</div> <!-- oh -->
|
||||
|
||||
<div class="amount__error" ng-style="{opacity: altAmountOpacity}" ng-show="walletNotRegistered">
|
||||
<span translate>This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information.</span>
|
||||
</div>
|
||||
|
||||
<div
|
||||
ng-click='updateAll(true)'
|
||||
ng-show="!updateStatusError && !wallet.balanceHidden && !wallet.scanning"
|
||||
on-hold="hideToggle()"
|
||||
ng-style="{'transform': amountScale}"
|
||||
ng-class="{amount__balance: amountIsCollapsible}">
|
||||
<strong class="size-36">{{status.totalBalanceStr}}</strong>
|
||||
<div
|
||||
class="size-14 amount-alternative"
|
||||
ng-if="status.totalBalanceAlternative && wallet.network == 'livenet'"
|
||||
ng-style="{opacity: altAmountOpacity}">
|
||||
{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-style="{'transform': amountScale}"
|
||||
class="amount__balance"
|
||||
ng-show="!updateStatusError && wallet.balanceHidden && !wallet.scanning"
|
||||
on-hold="hideToggle()">
|
||||
<strong class="size-24" translate>[Balance Hidden]</strong>
|
||||
<div ng-style="{opacity: altAmountOpacity}" class="size-14 amount-alternative" translate>
|
||||
Tap and hold to show
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-style="{'transform': amountScale}"
|
||||
class="amount__balance"
|
||||
ng-show="!updateStatusError && wallet.scanning">
|
||||
<strong class="size-24" translate>[Scanning Funds]</strong>
|
||||
<div ng-style="{opacity: altAmountOpacity}" class="size-14 amount-alternative" translate>
|
||||
Please wait
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-if="!wallet.balanceHidden && !wallet.scanning && showBalanceButton" ng-style="{'opacity': altAmountOpacity, 'transform': amountScale}">
|
||||
<button class="button button-standard button-primary amount__button-balance size-14" ng-click="openBalanceModal()">
|
||||
<i class="icon ion-ios-checkmark-outline"></i>
|
||||
<strong>
|
||||
{{status.spendableBalanceStr}}
|
||||
</strong>
|
||||
|
||||
<span>
|
||||
{{status.spendableBalanceAlternative}} {{status.alternativeIsoCode}}
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="wallet-details-wallet-info" ng-style="{opacity: altAmountOpacity}">
|
||||
<span ng-include="'views/includes/walletInfo.html'"></span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Balance view duplicate (for Android compatibility) -->
|
||||
|
||||
|
||||
<a class="wallet-not-backed-up-warning" ng-if="wallet.needsBackup" ui-sref="tabs.wallet.backupWarning({from: 'tabs.wallet'})" translate>
|
||||
Wallet not backed up
|
||||
</a>
|
||||
|
||||
|
||||
<a class="wallet-not-backed-up-warning" ng-if="lowUtxosWarning" ui-sref="tabs.wallet.addresses({walletId:wallet.id,from: 'tabs.wallet'})" translate>
|
||||
Spending this balance will need significant Bitcoin network fees
|
||||
</a>
|
||||
|
||||
|
||||
<div class="p60b" ng-if="wallet && wallet.isComplete() && !walletNotRegistered">
|
||||
<div class="oh pr m20t" ng-show="wallet.incorrectDerivation">
|
||||
<div ng-if="wallet && wallet.isComplete() && !walletNotRegistered">
|
||||
<div class="wallet-details__incorrect-derivation" ng-show="wallet.incorrectDerivation">
|
||||
<div class="text-center text-warning">
|
||||
<i class="fi-alert"></i>
|
||||
<span translate>
|
||||
|
|
@ -190,37 +201,30 @@
|
|||
|
||||
<!-- Transactions -->
|
||||
|
||||
<div class="oh pr m20t text-gray size-12 text-center"
|
||||
<div class="wallet-details__no-transaction"
|
||||
ng-show="!txHistory[0] && !updatingTxHistory && !updateTxHistoryError && !updateStatusError" translate>
|
||||
No transactions yet
|
||||
</div>
|
||||
|
||||
|
||||
<div class="oh pr m20t text-gray size-12 text-center"
|
||||
<div class="wallet-details__no-update-history"
|
||||
ng-show="!txHistory[0] && !updatingTxHistory && updateTxHistoryError" translate>
|
||||
Could not update transaction history
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-show="updatingTxHistory && updatingTxHistoryProgress>5" class="updating">
|
||||
<div class="row" >
|
||||
<ion-spinner class="spinner-dark" icon="crescent"></ion-spinner>
|
||||
</div>
|
||||
<div class="row" >
|
||||
<div class="col">
|
||||
<span translate>Updating transaction history. Please stand by.</span><br>
|
||||
<span translate>{{updatingTxHistoryProgress}} transactions downloaded</span>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="updatingTxHistory && updatingTxHistoryProgress>5" class="wallet-details__updating-history">
|
||||
<span translate>Updating transaction history. Please stand by.</span><br>
|
||||
<span translate>{{updatingTxHistoryProgress}} transactions downloaded</span>
|
||||
</div>
|
||||
|
||||
<div class="wallet-details__list" ng-show="txHistory[0]">
|
||||
<div class="wallet-details__list" ng-show="txHistory[0] && !updatingTxHistory">
|
||||
<div ng-repeat="btx in txHistory track by $index" ng-click="openTxModal(btx)">
|
||||
<span ng-include="'views/includes/walletHistory.html'"></span>
|
||||
</div>
|
||||
</div>
|
||||
<ion-infinite-scroll
|
||||
ng-if="txHistoryShowMore"
|
||||
ng-if="txHistory[0] && !updatingTxHistory && txHistoryShowMore"
|
||||
on-infinite="showMore()"
|
||||
distance="1%">
|
||||
</ion-infinite-scroll>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue