copay/public/views/walletDetails.html

226 lines
9.1 KiB
HTML
Raw Normal View History

2016-09-01 12:04:15 -07:00
<ion-view id="walletDetails">
<ion-header-bar ng-style="{'background-color': walletDetailsColor}">
<button class="button back-button" ng-click="$ionicGoBack()">
<i class="icon ion-ios-arrow-thin-left"></i>
2016-09-01 12:04:15 -07:00
</button>
<h1 class="title">{{walletDetailsName}}</h1>
<button class="button search-button">
<i class="icon ion-ios-search-strong"></i>
</button>
</ion-header-bar>
2016-08-15 12:07:30 -07:00
2016-08-24 16:06:13 -07:00
<ion-content ng-controller="walletDetailsController" ng-init="init()" delegate-handle="my-handle">
2016-09-01 06:12:06 -07:00
<div ng-show="!wallet" translate>
2016-08-15 12:07:30 -07:00
No Wallet
2016-09-01 06:12:06 -07:00
<a href ui-sref="tabs.home" class="button" translate>
2016-08-15 12:07:30 -07:00
Go home
</a>
</div>
<div ng-show="!wallet.isComplete()">
2016-09-01 06:12:06 -07:00
<a class="button button-block button-assertive" href ui-sref="wallet.copayers" class="button" translate>
2016-08-25 14:13:20 -07:00
Wallet Incomplete
2016-08-15 12:07:30 -07:00
</a>
</div>
<div class="oh pr" ng-show="wallet && wallet.isComplete()">
<div ng-style="{'background-color':wallet.color}" class="amount">
2016-08-18 06:37:08 -07:00
<div ng-if="!notAuthorized && !updatingStatus">
2016-08-15 12:07:30 -07:00
2016-08-18 06:37:08 -07:00
<div class="m20t" ng-show="updateStatusError" ng-click='update()'>
<span class="size-12 db m10b">{{updateStatusError|translate}}</span>
2016-08-15 12:07:30 -07:00
<button class="outline white tiny round" translate>Tap to retry</button>
2016-08-15 06:25:43 -07:00
</div>
2016-08-15 12:07:30 -07:00
2016-08-18 06:37:08 -07:00
<div ng-show="wallet.walletScanStatus == 'error'" ng-click='retryScan()'>
2016-08-15 12:07:30 -07:00
<span translate>Scan status finished with error</span>
<br><span translate>Tap to retry</span>
2016-08-15 06:25:43 -07:00
</div>
2016-08-15 12:07:30 -07:00
2016-08-31 07:49:28 -07:00
<div ng-click='updateAll()' ng-show="!updateStatusError && wallet.walletScanStatus != 'error' && !wallet.balanceHidden" on-hold="hideToggle()">
2016-08-17 14:48:30 -07:00
<strong class="size-36">{{status.totalBalanceStr}}</strong>
2016-09-01 12:04:15 -07:00
<div class="size-14 amount-alternative" ng-if="status.totalBalanceAlternative">{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}</div>
2016-08-18 06:37:08 -07:00
<div class="size-14" ng-if="status.pendingAmount">
2016-08-17 14:48:30 -07:00
<span translate>Pending Confirmation</span>: {{status.pendingAmountStr}}
2016-08-15 06:25:43 -07:00
</div>
2016-08-15 12:07:30 -07:00
</div>
2016-08-31 07:49:28 -07:00
<div ng-show="!updateStatusError && wallet.walletScanStatus != 'error' && wallet.balanceHidden" on-hold="hideToggle()">
2016-08-15 12:07:30 -07:00
<strong class="size-24" translate>[Balance Hidden]</strong>
<div class="size-14" translate>
Tap and hold to show
2016-08-15 06:25:43 -07:00
</div>
2016-08-15 12:07:30 -07:00
</div>
</div>
2016-08-18 06:37:08 -07:00
<div ng-if="updatingStatus">
2016-08-15 12:07:30 -07:00
<div class="size-36">
<strong>...</strong>
2016-08-15 06:25:43 -07:00
</div>
</div>
2016-08-15 12:07:30 -07:00
</div> <!-- amount -->
2016-08-15 06:25:43 -07:00
2016-08-15 12:07:30 -07:00
<div class="wallet-info">
<span ng-include="'views/includes/walletInfo.html'"></span>
</div>
</div> <!-- oh -->
<div class="p60b" ng-show="wallet && wallet.isComplete()">
<div class="oh pr m20t" ng-show="wallet.incorrectDerivation">
<div class="text-center text-warning">
<i class="fi-alert"></i>
<span translate>
WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet.
</span>
</div>
</div>
2016-08-18 06:37:08 -07:00
<div class="oh pr m20t" ng-show="notAuthorized && !updatingStatus">
2016-08-15 12:07:30 -07:00
<div class="text-center text-warning">
<i class="fi-alert"></i>
<span translate>
WARNING: Wallet not registered
</span>
</div>
<div class="text-center text-gray m15r m15l" translate>
This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information.
</div>
<div class="text-center m10t ">
<span class="button outline round dark-gray tiny"
2016-08-18 06:37:08 -07:00
ng-click="recreate()">
2016-08-15 12:07:30 -07:00
<span translate>Recreate</span>
</span>
</div>
</div>
2016-08-15 06:25:43 -07:00
2016-08-15 12:07:30 -07:00
<div class="release size-12" ng-show="newRelease" ng-click="$root.openExternalLink('https://github.com/bitpay/copay/releases/latest')">
<span>{{newRelease}}</span><i class="icon-arrow-right3 right size-18"></i>
</div>
2016-08-15 06:25:43 -07:00
2016-08-23 13:31:50 -07:00
<div ng-if="txps[0]">
2016-08-23 13:45:23 -07:00
<h4 ng-show="requiresMultipleSignatures" class="title m0" translate>Payment Proposals</h4>
<h4 ng-show="!requiresMultipleSignatures" class="title m0" translate>Unsent transactions</h4>
2016-08-23 13:31:50 -07:00
<div class="list card">
<ul>
2016-09-01 15:14:18 -07:00
<li ng-repeat="tx in txps" class="item item-icon-left" ng-click="openTxpModal(tx)">
<span ng-include="'views/includes/txp.html'"></span>
2016-08-23 13:31:50 -07:00
</li>
</ul>
<div ng-show="lockedBalanceSat">
<span translate>Total Locked Balance</span>:
<b>{{lockedBalanceStr}} </b>
<span> {{lockedBalanceAlternative}} {{alternativeIsoCode}} </span>
</div>
</div>
</div>
2016-08-18 06:37:08 -07:00
<!-- Transactions -->
<h4 class="title" ng-click="startSearch(); openSearchModal()" ng-show="!notAuthorized">
2016-08-15 12:07:30 -07:00
<span translate>Activity</span>
2016-08-18 16:54:08 -07:00
<i class="icon ion-ios-search-strong"></i>
2016-08-15 12:07:30 -07:00
</h4>
2016-08-15 06:25:43 -07:00
2016-08-15 12:07:30 -07:00
<div class="oh pr m20t text-gray size-12 text-center"
2016-08-18 06:37:08 -07:00
ng-show="!txHistory[0] && !updatingTxHistory && !txHistoryError && !updateStatusError && !notAuthorized"
translate>No transactions yet {{status.totalBalanceStr}}
2016-08-15 12:07:30 -07:00
</div>
2016-08-23 08:10:48 -07:00
<div ng-show="updatingTxHistory" class="updatingHistory">
<div class="row" >
2016-08-18 13:56:04 -07:00
<ion-spinner class="spinner-dark" icon="lines"></ion-spinner>
2016-08-23 08:10:48 -07:00
</div>
<div class="row" >
<div class="col" translate>Updating transaction history. Please stand by.</div>
</div>
<div class="row" ng-show="updatingTxHistoryProgress>0" >
<div class="col" translate>{{updatingTxHistoryProgress}} transactions downloaded</div>
2016-08-15 12:07:30 -07:00
</div>
2016-08-18 13:56:04 -07:00
</div>
2016-08-15 06:25:43 -07:00
2016-08-18 13:56:04 -07:00
<div ng-if="txHistory[0] && updatingTxHistory && newTx" class="row collapse last-transactions-content animated fadeInDown">
<div class="large-6 medium-6 small-6 columns size-14">
<div class="m10r left">
<img src="img/icon-new.svg" width="40">
</div>
<div class="m10t" style="background:#eee; width: 8em; margin-left: 52px; line-height:0.6em">
<span>&nbsp;</span>
</div>
<div style="margin-top:5px; background:#eee; width: 6em; margin-left: 52px; line-height:0.6em">
<span>&nbsp;</span>
2016-08-15 12:07:30 -07:00
</div>
</div>
2016-08-18 13:56:04 -07:00
</div>
2016-08-15 06:25:43 -07:00
2016-08-18 16:54:08 -07:00
<div class="list">
<div class="row item" ng-repeat="btx in txHistory track by btx.txid" ng-click="openTxModal(btx)">
<div class="col col-10">
<img src="img/icon-receive-history.svg" alt="sync" width="40" ng-if="btx.action == 'received'">
<img src="img/icon-sent-history.svg" alt="sync" width="40" ng-if="btx.action == 'sent'">
<img src="img/icon-moved.svg" alt="sync" width="40" ng-if="btx.action == 'moved'">
</div>
2016-08-18 13:56:04 -07:00
<div class="col col-50">
2016-08-18 16:54:08 -07:00
<div class="padding" ng-if="btx.action == 'received'">
<span class="ellipsis">
<h2 ng-if="btx.note.body">{{btx.note.body}}</h2>
<h2 ng-if="!btx.note.body" translate> Received</h2>
2016-08-15 12:07:30 -07:00
</span>
2016-08-18 16:54:08 -07:00
</div>
<div class="padding" ng-if="btx.action == 'sent'">
<span class="ellipsis">
<h2 ng-if="btx.message">{{btx.message}}</h2>
<h2 ng-if="!btx.message && btx.note.body">{{btx.note.body}}</h2>
<h2 ng-if="!btx.message && !btx.note.body && wallet.addressbook[btx.addressTo]">{{wallet.addressbook[btx.addressTo]}}</h2>
<h2 ng-if="!btx.message && !btx.note.body && !wallet.addressbook[btx.addressTo]" translate> Sent</h2>
2016-08-15 12:07:30 -07:00
</span>
2016-08-18 16:54:08 -07:00
</div>
2016-08-15 12:07:30 -07:00
2016-08-18 16:54:08 -07:00
<div class="padding" ng-if="btx.action == 'moved'">
<span class="ellipsis">
<h2 ng-if="btx.note.body">{{btx.note.body}}</h2>
<h2 ng-if="!btx.note.body" translate>Moved</h2>
2016-08-15 12:07:30 -07:00
</span>
2016-08-15 06:25:43 -07:00
</div>
2016-08-18 16:54:08 -07:00
<span class="label tu warning radius" ng-if="btx.action == 'invalid'" translate>Invalid</span>
2016-08-15 12:07:30 -07:00
</div>
2016-08-15 06:25:43 -07:00
2016-08-18 16:54:08 -07:00
<div class="col col-30 padding">
2016-08-15 12:07:30 -07:00
<span class="size-16" ng-class="{'text-bold': btx.recent}">
<span ng-if="btx.action == 'received'">+</span>
<span ng-if="btx.action == 'sent'">-</span>
<span class="size-12" ng-if="btx.action == 'invalid'" translate>
(possible double spend)
</span>
<span ng-if="btx.action != 'invalid'">
{{btx.amountStr}}
</span>
</span>
2016-08-18 13:56:04 -07:00
<p>
2016-08-15 12:07:30 -07:00
<time ng-if="btx.time">{{btx.time * 1000 | amTimeAgo}}</time>
<span translate class="text-warning"
ng-show="!btx.time && (!btx.confirmations || btx.confirmations == 0)">
Unconfirmed
</span>
2016-08-18 13:56:04 -07:00
</p>
2016-08-15 12:07:30 -07:00
</div>
2016-08-18 16:54:08 -07:00
<div class="col col-10 text-center">
2016-08-18 13:56:04 -07:00
<i class="icon ion-chevron-right"></i>
2016-08-15 12:07:30 -07:00
</div>
2016-08-18 16:54:08 -07:00
</div>
2016-08-15 12:07:30 -07:00
<ion-infinite-scroll
2016-08-18 06:37:08 -07:00
ng-if="txHistoryShowMore"
2016-08-15 12:07:30 -07:00
on-infinite="showMore()"
distance="1%">
</ion-infinite-scroll>
2016-08-18 16:54:08 -07:00
</div>
2016-08-15 12:07:30 -07:00
</ion-content>
</ion-view>