Merge branch 'master' of https://github.com/bitpay/copay
This commit is contained in:
commit
d1b7cc44b3
110 changed files with 4431 additions and 3044 deletions
|
|
@ -2,7 +2,7 @@
|
|||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-back-button>
|
||||
</ion-nav-back-button>
|
||||
<ion-nav-title>Buy</ion-nav-title>
|
||||
<ion-nav-title>{{'Buy'|translate}}</ion-nav-title>
|
||||
</ion-nav-bar>
|
||||
|
||||
<ion-content class="add-bottom-for-cta">
|
||||
|
|
@ -19,14 +19,14 @@
|
|||
<div class="amount-label">
|
||||
<div class="amount">{{amountUnitStr}}</div>
|
||||
<div class="alternative">
|
||||
Purchase Amount is limited to USD 1000 per day
|
||||
{{limitPerDayMessage}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info">
|
||||
<div class="item item-icon-right" ng-click="showWalletSelector()">
|
||||
<div class="label">From</div>
|
||||
<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">
|
||||
|
|
@ -35,6 +35,36 @@
|
|||
</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>Invoice Fee</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 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 class="item item-divider"></div>
|
||||
<div class="item size-12">
|
||||
* <a ng-click="openExternalLink('http://amazon.com')">Amazon.com</a> is not a sponsor of this promotion.
|
||||
|
|
@ -56,30 +86,29 @@
|
|||
ng-click="buyConfirm()"
|
||||
ng-if="!isCordova"
|
||||
click-send-status="sendStatus"
|
||||
is-disabled="!wallet">
|
||||
Confirm purchase
|
||||
is-disabled="!wallet || !totalAmountStr">
|
||||
{{'Confirm purchase'|translate}}
|
||||
</click-to-accept>
|
||||
<slide-to-accept
|
||||
ng-if="isCordova"
|
||||
ng-if="isCordova && wallet && totalAmountStr"
|
||||
slide-on-confirm="buyConfirm()"
|
||||
slide-send-status="sendStatus"
|
||||
is-disabled="!wallet">
|
||||
Slide to buy
|
||||
slide-send-status="sendStatus">
|
||||
{{'Slide to buy'|translate}}
|
||||
</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="amazonGiftCard.status == 'FAILURE'">
|
||||
<span ng-show="amazonGiftCard.status == 'FAILURE'" translate>
|
||||
Your purchase could not be completed
|
||||
</span>
|
||||
<span ng-show="amazonGiftCard.status == 'PENDING'">
|
||||
<span ng-show="amazonGiftCard.status == 'PENDING'" translate>
|
||||
Your purchase was added to the list of pending
|
||||
</span>
|
||||
<span ng-show="amazonGiftCard.status == 'SUCCESS'">
|
||||
Bought {{amazonGiftCard.amount}} {{amazonGiftCard.currency}}
|
||||
<span ng-show="amazonGiftCard.status == 'SUCCESS'" translate>
|
||||
Bought {{amountUnitStr}}
|
||||
</span>
|
||||
<div class="m10 size-14" ng-show="amazonGiftCard.status == 'SUCCESS'">
|
||||
<div class="m10 size-14" ng-show="amazonGiftCard.status == 'SUCCESS'" translate>
|
||||
Gift card generated and ready to use.
|
||||
</div>
|
||||
</slide-to-accept-success>
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@
|
|||
<span ng-if="tx.toName && showAddress">{{tx.toAddress}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<a class="item item-icon-right" ng-hide="!wallets" ng-click="showWalletSelector()">
|
||||
<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">
|
||||
|
|
@ -107,7 +107,7 @@
|
|||
</ion-content>
|
||||
<click-to-accept
|
||||
ng-click="approve(tx, wallet, statusChangeHandler)"
|
||||
ng-if="!isCordova || isWindowsPhoneApp"
|
||||
ng-if="(!isCordova || isWindowsPhoneApp) && wallet"
|
||||
click-send-status="sendStatus"
|
||||
is-disabled="!wallet">
|
||||
{{buttonText}}
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@
|
|||
</ion-nav-title>
|
||||
<ion-nav-buttons side="secondary">
|
||||
<button class="button-share ng-hide" ng-show="showShareButton" ng-click="shareAddress()">
|
||||
<i class="icon"
|
||||
<i class="icon"
|
||||
ng-class="{
|
||||
'ion-ios-upload-outline': showShareButton == 'iOS',
|
||||
'ion-ios-upload-outline': showShareButton == 'iOS',
|
||||
'ion-android-share-alt': showShareButton != 'iOS'
|
||||
}"></i>
|
||||
</button>
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
<div class="qr-code" copy-to-clipboard="copyToClipboard()">
|
||||
<qrcode size="220" data="bitcoin:{{address + '?amount=' + amountBtc}}" color="#334"></qrcode>
|
||||
</div>
|
||||
<div class="info">
|
||||
<div class="info">
|
||||
<div class="item single-line" copy-to-clipboard="address">
|
||||
<span class="label" translate>Address</span>
|
||||
<span class="item-note ellipsis">
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
</i>
|
||||
{{wallet.name}}
|
||||
</div>
|
||||
<div class="label">Receive in</div>
|
||||
<div class="label" translate>Receive in</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<div class="tx-title">
|
||||
<div class="ellipsis">
|
||||
<div class="tx-message ellipsis">{{tx.merchant.name || 'Unknown Merchant'}}</div>
|
||||
<div class="tx-location ellipsis" ng-show="tx.merchant.city && tx.merchant.state">{{tx.merchant.location}}</div>
|
||||
<div class="tx-location ellipsis">{{tx.merchant.location}}</div>
|
||||
<div ng-show="tx.pending && tx.transactionId" class="size-12 tx-amount--pending">
|
||||
<div ng-click="bitpayCard.viewOnBlockchain(tx.transactionId)">View Confirmation Status</div>
|
||||
</div>
|
||||
|
|
@ -19,8 +19,8 @@
|
|||
{{tx.price | currency:bitpayCard.currencySymbol:2 }}
|
||||
</span>
|
||||
<div>
|
||||
<time class="tx-time" ng-if="createdWithinPastDay(tx)">{{tx.timestamp | amTimeAgo}}</time>
|
||||
<time class="tx-time" ng-if="!createdWithinPastDay(tx)">{{tx.timestamp | amDateFormat:'MMM D, YYYY'}}</time>
|
||||
<time class="tx-time" ng-if="createdWithinPastDay(tx)">{{tx.date | amTimeAgo}}</time>
|
||||
<time class="tx-time" ng-if="!createdWithinPastDay(tx)">{{tx.date | amDateFormat:'MMM D, YYYY'}}</time>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
|
|
|||
10
www/views/includes/checkBar.html
Normal file
10
www/views/includes/checkBar.html
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<div id="check-bar">
|
||||
<div class="check-bar list">
|
||||
<div ng-class="fillClass" class="initial-bar-default initial-bar"></div>
|
||||
<div class="base-bar"></div>
|
||||
<div class="custom-checkbox" ng-repeat="option in options track by $index" ng-class="{'head': option.head}">
|
||||
<label>{{option.label}}</label>
|
||||
<ion-checkbox ng-model="option.selected" ng-change="getFillClass(option.level)"></ion-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
<div ng-if="type === 'url'">
|
||||
<div class="incoming-data-menu__item head">
|
||||
<div class="incoming-data-menu__header">Website</div>
|
||||
<div class="incoming-data-menu__header" translate>Website</div>
|
||||
<div class="incoming-data-menu__url">
|
||||
<div class="incoming-data-menu__url__icon">
|
||||
<img ng-hide="https" src="img/icon-lock-x.svg" style="height: 22px;">
|
||||
|
|
@ -16,17 +16,17 @@
|
|||
</div>
|
||||
<a class="incoming-data-menu__item item item-icon-right" ng-click="goToUrl(data)">
|
||||
<img src="img/icon-link-external.svg">
|
||||
<div class="incoming-data-menu__item__text">Open website</div>
|
||||
<div class="incoming-data-menu__item__text" translate>Open website</div>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
<a class="incoming-data-menu__cancel item" ng-click="hide()">
|
||||
<a class="incoming-data-menu__cancel item" ng-click="hide()" translate>
|
||||
Cancel
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div ng-if="type === 'bitcoinAddress'">
|
||||
<div class="incoming-data-menu__item head">
|
||||
<div class="incoming-data-menu__header">Bitcoin Address</div>
|
||||
<div class="incoming-data-menu__header" translate>Bitcoin Address</div>
|
||||
<div class="incoming-data-menu__url">
|
||||
<div class="incoming-data-menu__url__icon">
|
||||
<img src="img/icon-bitcoin-small.svg">
|
||||
|
|
@ -38,27 +38,27 @@
|
|||
</div>
|
||||
<a class="incoming-data-menu__item item item-icon-right" ng-click="addToAddressBook(data)">
|
||||
<img src="img/icon-contacts.svg">
|
||||
<div class="incoming-data-menu__item__text">Add as a contact</div>
|
||||
<div class="incoming-data-menu__item__text" translate>Add as a contact</div>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
<a class="incoming-data-menu__item item item-icon-right" ng-click="sendPaymentToAddress(data)">
|
||||
<img src="img/icon-send-alt.svg">
|
||||
<div class="incoming-data-menu__item__text">Send payment to this address</div>
|
||||
<div class="incoming-data-menu__item__text" translate>Send payment to this address</div>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
<a class="incoming-data-menu__item item item-icon-right" copy-to-clipboard="data">
|
||||
<img src="img/icon-paperclip.svg">
|
||||
<div class="incoming-data-menu__item__text">Copy to clipboard</div>
|
||||
<div class="incoming-data-menu__item__text" translate>Copy to clipboard</div>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
<a class="incoming-data-menu__cancel item" ng-click="hide()">
|
||||
<a class="incoming-data-menu__cancel item" ng-click="hide()" translate>
|
||||
Cancel
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div ng-if="type === 'text'">
|
||||
<div class="incoming-data-menu__item head">
|
||||
<div class="incoming-data-menu__header">Text</div>
|
||||
<div class="incoming-data-menu__header" translate>Text</div>
|
||||
<div class="incoming-data-menu__url">
|
||||
<div class="incoming-data-menu__url__text" style="border: 0;">
|
||||
{{data}}
|
||||
|
|
@ -67,17 +67,17 @@
|
|||
</div>
|
||||
<a class="incoming-data-menu__item item item-icon-right" copy-to-clipboard="data">
|
||||
<img src="img/icon-paperclip.svg">
|
||||
<div class="incoming-data-menu__item__text">Copy to clipboard</div>
|
||||
<div class="incoming-data-menu__item__text" translate>Copy to clipboard</div>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
<a class="incoming-data-menu__cancel item" ng-click="hide()">
|
||||
<a class="incoming-data-menu__cancel item" ng-click="hide()" translate>
|
||||
Cancel
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div ng-if="type === 'privateKey'">
|
||||
<div class="incoming-data-menu__item head">
|
||||
<div class="incoming-data-menu__header">Private Key</div>
|
||||
<div class="incoming-data-menu__header" translate>Private Key</div>
|
||||
<div class="incoming-data-menu__url">
|
||||
<div class="incoming-data-menu__url__text" style="border: 0;">
|
||||
{{data}}
|
||||
|
|
@ -86,15 +86,15 @@
|
|||
</div>
|
||||
<a class="incoming-data-menu__item item item-icon-right" ng-click="scanPaperWallet(data)">
|
||||
<img src="img/icon-import.svg">
|
||||
<div class="incoming-data-menu__item__text">Sweep paper wallet</div>
|
||||
<div class="incoming-data-menu__item__text" translate>Sweep paper wallet</div>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
<a class="incoming-data-menu__item item item-icon-right" copy-to-clipboard="data">
|
||||
<img src="img/icon-paperclip.svg">
|
||||
<div class="incoming-data-menu__item__text">Copy to clipboard</div>
|
||||
<div class="incoming-data-menu__item__text" translate>Copy to clipboard</div>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
<a class="incoming-data-menu__cancel item" ng-click="hide()">
|
||||
<a class="incoming-data-menu__cancel item" ng-click="hide()" translate>
|
||||
Cancel
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
21
www/views/includes/logOptions.html
Normal file
21
www/views/includes/logOptions.html
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<action-sheet action-sheet-show="show" class="log-options">
|
||||
<img class="back-arrow" src="img/icon-back-arrow.svg" ng-click="hide()">
|
||||
<div class="header" translate="">Log options</div>
|
||||
<div ng-include="'views/includes/checkBar.html'"></div>
|
||||
<a class="item item-icon-left entry no-border" copy-to-clipboard="onCopy()" ng-click="hide()">
|
||||
<i class="icon ion-clipboard"></i>
|
||||
<div class="entry-inner">
|
||||
<div class="entry-details">
|
||||
<div class="entry-name" translate>Copy to clipboard</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="item item-icon-left entry no-border" ng-click="onSend(); hide()" ng-show="isCordova">
|
||||
<i class="icon ion-ios-email-outline"></i>
|
||||
<div class="entry-inner">
|
||||
<div class="entry-details">
|
||||
<div class="entry-name" translate>Send by email</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</action-sheet>
|
||||
|
|
@ -1,32 +1,84 @@
|
|||
<ion-modal-view id="settings-fee" class="settings" ng-controller="preferencesFeeController" >
|
||||
<ion-modal-view id="choose-fee-level" ng-controller="feeLevelsController">
|
||||
<ion-header-bar align-title="center" class="bar-royal">
|
||||
<div class="title">
|
||||
{{'Bitcoin Network Fee Policy'|translate}}
|
||||
</div>
|
||||
<button class="button button-clear" ng-click="chooseNewFee()">
|
||||
OK
|
||||
<button
|
||||
ng-disabled="customFeePerKB && !customSatPerByte.value"
|
||||
class="button button-clear" ng-click="ok()" translate>
|
||||
OK
|
||||
</button>
|
||||
</ion-header-bar>
|
||||
<ion-content ng-init="init(network)">
|
||||
<div class="settings-explanation">
|
||||
<div class="estimates">
|
||||
<div>
|
||||
<span translate>Average confirmation time</span>:
|
||||
<span class="fee-minutes" ng-if="avgConfirmationTime">{{avgConfirmationTime | amDurationFormat: 'minute'}}</span>
|
||||
<ion-content>
|
||||
<div class="box-notification warning" ng-if="network!='livenet'">
|
||||
Testnet
|
||||
</div>
|
||||
<div class="row selected-fee-level" ng-show="feeLevel">
|
||||
<div class="col time" ng-if="!customFeePerKB">
|
||||
<div class="value">
|
||||
<span ng-if="avgConfirmationTime">
|
||||
{{avgConfirmationTime | amDurationFormat: 'minute'}}
|
||||
</span>
|
||||
<span ng-if="loadingFee">...</span>
|
||||
</div>
|
||||
<div>
|
||||
<span translate>Current fee rate for this policy</span>:
|
||||
<span class="fee-rate" ng-if="feePerSatByte">{{feePerSatByte}} satoshis/byte</span>
|
||||
<span ng-if="loadingFee">...</span>
|
||||
<span translate>Average confirmation time</span>
|
||||
</div>
|
||||
<div class="col rate" ng-class="{'separator': !customFeePerKB}">
|
||||
<div ng-if="!customFeePerKB">
|
||||
<div class="value">
|
||||
<span ng-if="feePerSatByte && !loadingFee">
|
||||
{{feePerSatByte}} sat/byte
|
||||
</span>
|
||||
<span ng-if="loadingFee">...</span>
|
||||
</div>
|
||||
<span translate>Current fee rate for this policy</span>
|
||||
</div>
|
||||
<div ng-if="customFeePerKB">
|
||||
<div class="list">
|
||||
<label class="item item-input">
|
||||
<input
|
||||
type="number"
|
||||
placeholder="{{'Enter custom fee'|translate}}"
|
||||
ng-min="minFeeAllowed"
|
||||
ng-max="maxFeeAllowed"
|
||||
min="minFeeRecommended"
|
||||
max="maxFeeRecommended"
|
||||
ng-change="checkFees(customSatPerByte.value)"
|
||||
ng-model="customSatPerByte.value"
|
||||
ng-required="customFeePerKB">
|
||||
<span class="unit">sat/byte</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="error-fee">
|
||||
<div ng-if="showError">
|
||||
<i class="icon ion-close-circled"></i>
|
||||
<span translate>
|
||||
Transactions without fee are not supported.
|
||||
</span>
|
||||
</div>
|
||||
<div ng-if="showMinWarning || showMaxWarning">
|
||||
<i class="icon ion-alert-circled"></i>
|
||||
<span ng-if="showMinWarning" translate>
|
||||
Your fee is lower than recommended.
|
||||
</span>
|
||||
<span ng-if="showMaxWarning" translate>
|
||||
You should not set a fee higher than {{maxFeeRecommended}} satoshis/byte.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="network!='livenet'">[{{network}}]</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="fee-policies">
|
||||
<ion-radio ng-repeat="(fee, level) in feeOpts" ng-value="fee" ng-model="currentFeeLevel" ng-click="save(fee)">
|
||||
{{level|translate}}
|
||||
</ion-radio>
|
||||
|
||||
<div class="list" ng-show="feeLevel">
|
||||
<label class="item item-input item-select">
|
||||
<div class="input-label" translate>
|
||||
Fee level
|
||||
</div>
|
||||
<select ng-options="fee as level for (fee,level) in feeOpts" ng-model="selectedFee.value">
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
</button>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content ng-init="updateCopayerList()" ng-class="{'add-bottom-for-cta': tx.pendingForUs && canSign}">
|
||||
<ion-content ng-init="updateCopayerList()" ng-class="{'add-bottom-for-cta': tx.pendingForUs && canSign && !paymentExpired}">
|
||||
<div class="list">
|
||||
<div class="item head">
|
||||
<div class="sending-label">
|
||||
|
|
|
|||
|
|
@ -20,11 +20,6 @@
|
|||
</a>
|
||||
<a ng-if="!isWindowsPhoneApp" class="item item-icon-right" ui-sref="tabs.preferences.preferencesColor">
|
||||
<span translate>Color</span>
|
||||
<span class="item-note">
|
||||
<span class="settings-color-block"
|
||||
ng-class="{'wallet-background-color-default': !wallet.color, 'wallet-color-default': !wallet.color}"
|
||||
ng-style="{'background-color': wallet.color, 'color': wallet.color}"></span>
|
||||
</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="fee-policies">
|
||||
<ion-radio ng-repeat="(fee, level) in feeOpts" ng-value="fee" ng-model="currentFeeLevel" ng-click="save(fee)">
|
||||
<ion-radio ng-repeat="(fee, level) in feeOpts" ng-if="fee != 'custom'" ng-value="fee" ng-model="currentFeeLevel" ng-click="save(fee)">
|
||||
{{level|translate}}
|
||||
</ion-radio>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,23 +1,23 @@
|
|||
<ion-view class="settings" show-tabs>
|
||||
<ion-view class="settings" hide-tabs>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-title>{{'Session Log' | translate}}</ion-nav-title>
|
||||
<ion-nav-back-button>
|
||||
</ion-nav-back-button>
|
||||
<ion-nav-buttons side="secondary">
|
||||
<button class="button back-button" ng-click="showOptionsMenu()">
|
||||
<i class="icon ion-ios-more"></i>
|
||||
</button>
|
||||
</ion-nav-buttons>
|
||||
</ion-nav-bar>
|
||||
<ion-content>
|
||||
<div class="settings-button-group">
|
||||
<button class="button button-standard button-primary" copy-to-clipboard="prepare()">
|
||||
<span translate>Copy to clipboard</span>
|
||||
</button>
|
||||
<button class="button button-standard button-secondary" ng-show="isCordova" ng-click="sendLogs()">
|
||||
<span translate>Send by email</span>
|
||||
</button>
|
||||
</div>
|
||||
<ion-content class="log-bg">
|
||||
<div class="list">
|
||||
<div class="item item-text-wrap enable_text_select">
|
||||
<ul>
|
||||
<li ng-repeat="l in logs">
|
||||
<span ng-class="{'energized': l.level=='warn', 'dark': l.level=='debug', 'positive': l.level=='info', 'assertive': l.level=='error' }">
|
||||
<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>
|
||||
<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'}">
|
||||
<span class="log-timestamp">[{{l.timestamp}}]</span>
|
||||
<span class="log-level">[{{l.level}}]</span>
|
||||
{{l.msg}}
|
||||
</span>
|
||||
</li>
|
||||
|
|
@ -25,4 +25,12 @@
|
|||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
<log-options
|
||||
log-options-show="showOptions"
|
||||
log-options="logOptions"
|
||||
log-options-fill-class="fillClass"
|
||||
log-options-on-select="setOptionSelected"
|
||||
log-options-on-copy="prepareLogs"
|
||||
log-options-on-send="sendLogs">
|
||||
</log-options>
|
||||
</ion-view>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,12 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="usePushNotifications && pushNotifications.value">
|
||||
<ion-toggle ng-model="confirmedTxsNotifications.value" toggle-class="toggle-balanced" ng-change="confirmedTxsNotificationsChange()">
|
||||
<span class="toggle-label" translate>Notify me when transactions are confirmed</span>
|
||||
</ion-toggle>
|
||||
</div>
|
||||
|
||||
<ion-toggle ng-model="emailNotifications.value" toggle-class="toggle-balanced" ng-change="emailNotificationsChange()">
|
||||
<span class="toggle-label" translate>Enable email notifications</span>
|
||||
</ion-toggle>
|
||||
|
|
@ -43,6 +49,8 @@
|
|||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
|
|
|
|||
|
|
@ -108,13 +108,15 @@ This transaction amount is too small compared to current Bitcoin network fees. S
|
|||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<ion-toggle ng-show="!btx.confirmations || btx.confirmations == 0"
|
||||
class="toggle-unconfirmed"
|
||||
ng-model="txNotification.value"
|
||||
toggle-class="toggle-balanced"
|
||||
ng-change="txConfirmNotificationChange()">
|
||||
<span class="toggle-label" translate>Notify me if confirmed</span>
|
||||
</ion-toggle>
|
||||
<div ng-if="txsUnsubscribedForNotifications">
|
||||
<ion-toggle ng-show="!btx.confirmations || btx.confirmations == 0"
|
||||
class="toggle-unconfirmed"
|
||||
ng-model="txNotification.value"
|
||||
toggle-class="toggle-balanced"
|
||||
ng-change="txConfirmNotificationChange()">
|
||||
<span class="toggle-label" translate>Notify me if confirmed</span>
|
||||
</ion-toggle>
|
||||
</div>
|
||||
<div ng-if="actionList[0]">
|
||||
<div class="item item-divider" translate>Timeline</div>
|
||||
<div class="item timeline-item" ng-class="{'action-created' : a.type == 'created' || a.type == 'accept', 'action-rejected' : a.type == 'reject'}" ng-repeat="a in actionList track by $index">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue