mirror of https://github.com/BTCPrivate/copay.git
commit
8a13fb84f4
|
@ -630,7 +630,6 @@ a.button-setup {
|
|||
width: 100%;
|
||||
padding: 0.3rem 0.7rem;
|
||||
color: white;
|
||||
border-bottom: 1px solid #374756;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
|
@ -808,6 +807,12 @@ input[type=number]::-webkit-outer-spin-button {
|
|||
background-color: #1ABC9C;
|
||||
}
|
||||
|
||||
.addresses .label {
|
||||
font-weight: normal;
|
||||
padding: .2rem .3rem;
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
.label.success {
|
||||
background-color: #1ABC9C;
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
margin-top: 40px;
|
||||
margin-left: 0;
|
||||
margin-bottom: -40px;
|
||||
padding: 20px 10px 60px 10px;
|
||||
padding: 20px 0 60px 0;
|
||||
}
|
||||
|
||||
.tab-bar {
|
||||
|
@ -116,8 +116,8 @@
|
|||
color: white;
|
||||
}
|
||||
|
||||
.addresses .panel {
|
||||
padding: 1rem 0.8rem;
|
||||
.panel {
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
.btn-copy {
|
||||
|
@ -184,3 +184,18 @@
|
|||
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.tx-date {
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.tx-comment {
|
||||
border-top: 1px solid #eee;
|
||||
padding-top: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -2823,7 +2823,7 @@ Wallet.prototype.getTransactionHistory = function(cb) {
|
|||
|
||||
return {
|
||||
type: 'out',
|
||||
address: addr ? addr : itemAddr,
|
||||
address: addr ? addr.addressStr : itemAddr,
|
||||
isMine: !_.isUndefined(addr),
|
||||
isChange: addr ? !!addr.isChange : false,
|
||||
label: self.addressBook[itemAddr] ? self.addressBook[itemAddr].label : undefined,
|
||||
|
@ -2880,6 +2880,7 @@ Wallet.prototype.getTransactionHistory = function(cb) {
|
|||
});
|
||||
tx.comment = proposal ? proposal.comment : undefined;
|
||||
tx.labelTo = firstOut ? firstOut.label : undefined;
|
||||
tx.addressTo = firstOut ? firstOut.address : undefined;
|
||||
tx.amountSat = Math.abs(amount);
|
||||
tx.amount = tx.amountSat * satToUnit;
|
||||
tx.sentTs = proposal ? proposal.sentTs : undefined;
|
||||
|
|
|
@ -4,54 +4,56 @@
|
|||
<span translate>Creating wallet...</span>
|
||||
</div>
|
||||
<div class="setup" ng-show="!loading">
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<form name="setupForm" ng-submit="create(setupForm)" novalidate>
|
||||
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<div class="large-12 columns panel">
|
||||
<div class="row collapse">
|
||||
<label><span translate>Wallet name</span>
|
||||
<input type="text" placeholder="{{'Family vacation funds'|translate}}" class="form-control" ng-model="walletName">
|
||||
</label>
|
||||
<div class="row">
|
||||
<div class="large-6 medium-6 columns">
|
||||
<label><span translate>Select total number of copayers (*)</span>
|
||||
<select ng-model="totalCopayers" ng-options="totalCopayers as totalCopayers for totalCopayers in TCValues">
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
<div class="large-6 medium-6 columns">
|
||||
<label><span translate>Select required signatures (*)</span>
|
||||
<select ng-model="requiredCopayers" ng-options="requiredCopayers as requiredCopayers for requiredCopayers in RCValues" ng-disabled="totalCopayers == 1">
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-setup-copayers">
|
||||
<div class="box-setup-copayers p10 oh">
|
||||
<div class="copay-box" ng-class="{'box-setup-copay-required': ($index+1) <= requiredCopayers}" ng-repeat="i in getNumber(totalCopayers) track by $index">
|
||||
<span ng-include="'views/includes/photo.html'"></span>
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<div class="panel">
|
||||
<label><span translate>Wallet name</span>
|
||||
<input type="text" placeholder="{{'Family vacation funds'|translate}}" class="form-control" ng-model="walletName">
|
||||
</label>
|
||||
<div class="row">
|
||||
<div class="large-6 medium-6 columns">
|
||||
<label><span translate>Select total number of copayers (*)</span>
|
||||
<select ng-model="totalCopayers" ng-options="totalCopayers as totalCopayers for totalCopayers in TCValues">
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
<div class="large-6 medium-6 columns">
|
||||
<label><span translate>Select required signatures (*)</span>
|
||||
<select ng-model="requiredCopayers" ng-options="requiredCopayers as requiredCopayers for requiredCopayers in RCValues" ng-disabled="totalCopayers == 1">
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p translate class="comment" ng-show="totalCopayers>1">(*) The limits are imposed by the bitcoin network.</p>
|
||||
<div class="box-setup-copayers">
|
||||
<div class="box-setup-copayers p10 oh">
|
||||
<div class="copay-box" ng-class="{'box-setup-copay-required': ($index+1) <= requiredCopayers}" ng-repeat="i in getNumber(totalCopayers) track by $index">
|
||||
<span ng-include="'views/includes/photo.html'"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p translate class="comment" ng-show="totalCopayers>1">(*) The limits are imposed by the bitcoin network.</p>
|
||||
|
||||
<div class="line-dashed-h"></div>
|
||||
<div class="line-dashed-h"></div>
|
||||
|
||||
<div class="m20t m20b">
|
||||
<a class="small" ng-click="hideAdv=!hideAdv">
|
||||
<i class="fi-widget m3r"></i>
|
||||
<span translate ng-hide="!hideAdv">Show</span>
|
||||
<span translate ng-hide="hideAdv">Hide</span>
|
||||
<span translate>advanced options</span>
|
||||
</a>
|
||||
</div>
|
||||
<div ng-hide="hideAdv" class="row">
|
||||
<input id="network-name" type="checkbox" ng-model="networkName" ng-true-value="testnet" ng-false-value="livenet" class="form-control" ng-checked="networkName == 'testnet' ? true : false">
|
||||
<label for="network-name" translate>Use test network</label>
|
||||
<div class="m20t m20b">
|
||||
<a class="small" ng-click="hideAdv=!hideAdv">
|
||||
<i class="fi-widget m3r"></i>
|
||||
<span translate ng-hide="!hideAdv">Show</span>
|
||||
<span translate ng-hide="hideAdv">Hide</span>
|
||||
<span translate>advanced options</span>
|
||||
<i ng-if="hideAdv" class="icon-arrow-down4"></i>
|
||||
<i ng-if="!hideAdv" class="icon-arrow-up4"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div ng-hide="hideAdv" class="row">
|
||||
<input id="network-name" type="checkbox" ng-model="networkName" ng-true-value="testnet" ng-false-value="livenet" class="form-control" ng-checked="networkName == 'testnet' ? true : false">
|
||||
<label for="network-name" translate>Use test network</label>
|
||||
|
||||
<p>
|
||||
<input type="text" placeholder="BIP32 master extended private key (hex)" name="private" ng-model="private">
|
||||
</div>
|
||||
<p>
|
||||
<input type="text" placeholder="BIP32 master extended private key (hex)" name="private" ng-model="private">
|
||||
</div>
|
||||
|
||||
|
||||
<div class="text-right">
|
||||
|
@ -64,9 +66,10 @@
|
|||
</button>
|
||||
</div>
|
||||
<div ng-show="showNetwork()"><p translate class="size-12">Using network: {{networkName}} at <a href="{{networkUrl}}" target="_blank">{{networkUrl}}</a></p></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<div class="wide-page">
|
||||
<div ng-init="$root.title = 'Page not found'"
|
||||
ng-class="{'wide-page':!$root.wallet}">
|
||||
<div class="text-center">
|
||||
<img src="img/logo-negative-beta.svg" alt="Copay">
|
||||
<img ng-show="$root.wallet" src="img/logo.svg" alt="Copay">
|
||||
<img ng-show="!$root.wallet" src="img/logo-negative.svg" alt="Copay">
|
||||
</div>
|
||||
<h1 class="text-center text-white">404</h1>
|
||||
<h3 translate class="text-center text-white">Page not found</h3>
|
||||
<h1 class="text-center" ng-class="{'text-white': !$root.wallet}">404</h1>
|
||||
<h3 translate class="text-center" ng-class="{'text-white': !$root.wallet}">Page not found</h3>
|
||||
<p class="text-center"><a href="#!/">« <span translate>Back</span></a></p>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<div class="transactions" data-ng-controller="HistoryController" data-ng-init="update()">
|
||||
<div ng-show='$root.wallet.isReady()'>
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<div ng-if="loading" class="m20b">
|
||||
<i class="fi-bitcoin-circle icon-rotate spinner"></i>
|
||||
<span translate>Loading...</span>
|
||||
|
@ -15,20 +16,29 @@
|
|||
<div class="panel oh"
|
||||
ng-repeat="btx in blockchain_txs | orderBy: 'time':true" ng-click="btx.showDetails = !btx.showDetails">
|
||||
<div class="row size-14">
|
||||
<div class="large-2 medium-3 small-12 columns">
|
||||
<span ng-hide="btx.ts"> </span>
|
||||
<time ng-if="btx.ts">{{btx.ts | amCalendar}}</time>
|
||||
<span class="label alert" ng-show="!btx.ts && (!btx.confirmations || btx.confirmations == 0)">
|
||||
<span translate>Unconfirmed</span>
|
||||
</span>
|
||||
<div class="large-2 medium-2 small-12 columns">
|
||||
<div class="tx-date">
|
||||
<time ng-if="btx.ts">{{btx.ts | amCalendar}}</time>
|
||||
<span class="label alert" ng-show="!btx.ts && (!btx.confirmations || btx.confirmations == 0)">
|
||||
<span translate>Unconfirmed</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="large-2 medium-3 small-6 columns text-right">
|
||||
<div ng-class="{
|
||||
<div class="large-2 medium-3 small-5 columns text-right">
|
||||
<div class="tx-amount" ng-class="{
|
||||
'text-primary' : btx.action == 'received',
|
||||
'text-warning': btx.action == 'sent',
|
||||
'text-gray': btx.action == 'moved'}">
|
||||
<b>{{btx.amount| noFractionNumber}} {{$root.wallet.settings.unitName}}</b>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="large-1 medium-1 small-2 columns text-center">
|
||||
<div ng-class="{
|
||||
'text-primary' : btx.action == 'received',
|
||||
'text-warning': btx.action == 'sent',
|
||||
'text-gray': btx.action == 'moved'}">
|
||||
<i class="m15h"
|
||||
ng-class="{
|
||||
'fi-arrow-left' : btx.action == 'received',
|
||||
|
@ -37,13 +47,13 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="large-3 medium-3 small-6 columns text-gray">
|
||||
<span ng-hide="btx.labelTo"> </span>
|
||||
<span ng-show="btx.labelTo">{{btx.labelTo}}</span>
|
||||
<div class="large-3 medium-3 small-5 columns text-gray">
|
||||
<span class="ellipsis">{{btx.labelTo || btx.addressTo}}</span>
|
||||
</div>
|
||||
|
||||
<div class="large-4 medium-3 small-12 columns text-gray">
|
||||
<span ng-show="btx.comment"><i class="fi-comment-quotes"></i> {{btx.comment}} </span>
|
||||
<div class="large-3 medium-3 small-12 columns text-gray">
|
||||
<div class="tx-comment" ng-show="btx.comment">
|
||||
<i class="fi-comment-quotes"></i> {{btx.comment}}</div>
|
||||
</div>
|
||||
|
||||
<div class="large-1 columns show-for-large-up text-gray text-right" ng-init="btx.showDetails = false">
|
||||
|
|
|
@ -4,44 +4,45 @@
|
|||
{{ importStatus|translate }}
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="!loading">
|
||||
<div class="large-12 columns panel">
|
||||
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<form name="importForm" ng-submit="import(importForm)" novalidate>
|
||||
<div ng-show="!loading">
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<div class="panel">
|
||||
<form name="importForm" ng-submit="import(importForm)" novalidate>
|
||||
<div ng-show="!is_iOS && !backupOldWallet">
|
||||
<legend for="backupFile" class="m10b">
|
||||
<span translate>Choose backup file from your computer</span> <i class="fi-laptop"></i>
|
||||
</legend>
|
||||
<input type="file" class="form-control"
|
||||
placeholder="{{'Select a backup file'|translate}}" name="backupFile" ng-model="backupFile" ng-file-select>
|
||||
placeholder="{{'Select a backup file'|translate}}" name="backupFile" ng-model="backupFile" ng-file-select>
|
||||
</div>
|
||||
|
||||
<div ng-show="is_iOS && !backupOldWallet">
|
||||
<label for="backupText" class="m10b">
|
||||
<span translate>Paste backup plain text code</span> <i class="fi-clipboard"></i>
|
||||
</label>
|
||||
<textarea class="form-control"
|
||||
name="backupText"
|
||||
ng-model="backupText"
|
||||
rows="5"></textarea>
|
||||
<label for="backupText" class="m10b">
|
||||
<span translate>Paste backup plain text code</span> <i class="fi-clipboard"></i>
|
||||
</label>
|
||||
<textarea class="form-control"
|
||||
name="backupText"
|
||||
ng-model="backupText"
|
||||
rows="5"></textarea>
|
||||
</div>
|
||||
|
||||
<div ng-show="anyWallet && (!backupFile || !backupText)">
|
||||
<label for="backupOldWAllet" class="m10b size-14">
|
||||
<span translate>You have old wallets in your localStorage. Choose one to import</span> <i class="fi-bitcoin"></i>
|
||||
</label>
|
||||
<select ng-model="backupOldWallet" name="backupOldWallet"
|
||||
ng-options="wallet.name for wallet in oldWallets">
|
||||
<option value="">-- choose wallet --</option>
|
||||
</select>
|
||||
<select ng-model="backupOldWallet" name="backupOldWallet"
|
||||
ng-options="wallet.name for wallet in oldWallets">
|
||||
<option value="">-- choose wallet --</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
<label for="password" class="m10b"><span translate>Password</span> <small translate>Required</small></label>
|
||||
<input type="password" class="form-control"
|
||||
placeholder="{{'Your wallet password'|translate}}" name="password" ng-model="password" required>
|
||||
|
||||
|
||||
<div class="line-dashed-h m10b m20t"></div>
|
||||
|
||||
<a class="expand small" ng-click="hideAdv=!hideAdv">
|
||||
|
@ -49,39 +50,43 @@
|
|||
<span translate ng-hide="!hideAdv">Show</span>
|
||||
<span translate ng-hide="hideAdv">Hide</span>
|
||||
<span translate>advanced options</span>
|
||||
<i ng-if="hideAdv" class="icon-arrow-down4"></i>
|
||||
<i ng-if="!hideAdv" class="icon-arrow-up4"></i>
|
||||
</a>
|
||||
|
||||
<div ng-hide="hideAdv" class="m10t">
|
||||
<label>
|
||||
<input type="checkbox" class="form-control"
|
||||
name="skipPublicKeyRing" ng-model="skipPublicKeyRing">
|
||||
<span translate>Skip public keys from peers</span>
|
||||
<input type="checkbox" class="form-control"
|
||||
name="skipPublicKeyRing" ng-model="skipPublicKeyRing">
|
||||
<span translate>Skip public keys from peers</span>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="checkbox" class="form-control"
|
||||
name="skipTxProposals" ng-model="skipTxProposals">
|
||||
<span translate>Skip transaction proposals from Backup</span>
|
||||
<input type="checkbox" class="form-control"
|
||||
name="skipTxProposals" ng-model="skipTxProposals">
|
||||
<span translate>Skip transaction proposals from Backup</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div data-alert ng-show="skipFields">
|
||||
<i class="size-18 fi-alert"></i>
|
||||
<span translate>Skipping fields: {{skipFields}}</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="text-right m20t">
|
||||
<a class="back-button m20r text-black" href="#!/manage">
|
||||
<i class="icon-arrow-left2 vm"></i>
|
||||
<span translate>Back</span>
|
||||
</a>
|
||||
<button translate type="submit" class="button black m0" ng-disabled="importForm.$invalid">
|
||||
Import backup
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<div data-alert ng-show="skipFields">
|
||||
<i class="size-18 fi-alert"></i>
|
||||
<span translate>Skipping fields: {{skipFields}}</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="text-right m20t">
|
||||
<a class="back-button m20r text-black" href="#!/manage">
|
||||
<i class="icon-arrow-left2 vm"></i>
|
||||
<span translate>Back</span>
|
||||
</a>
|
||||
<button translate type="submit" class="button black m0" ng-disabled="importForm.$invalid">
|
||||
Import backup
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
</a>
|
||||
</div>
|
||||
</header>
|
||||
<div class="locked" ng-show="lockedBalance">
|
||||
<div class="locked" ng-show="lockedBalance && !walletSelection">
|
||||
<span class="text-gray">
|
||||
<i class="fi-lock"></i> {{'Locked'|translate}}
|
||||
</span>
|
||||
|
|
119
views/join.html
119
views/join.html
|
@ -6,73 +6,76 @@
|
|||
|
||||
<div ng-show="!loading">
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<div class="large-12 columns panel">
|
||||
<div class="row collapse">
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<form name="joinForm" ng-submit="join(joinForm)" novalidate>
|
||||
<div class="panel">
|
||||
<label for="connectionId"><span translate>Wallet Secret</span>
|
||||
<small translate class="has-error" ng-show="joinForm.connectionId.$invalid
|
||||
&& !joinForm.connectionId.$pristine">Wallet Secret is not valid!</small>
|
||||
<small translate data-options="disable_for_touch:true" ng-show="joinForm.connectionId.$pristine" class="has-tip
|
||||
text-gray" tooltip="Paste wallet secret here">Required</small>
|
||||
</label>
|
||||
|
||||
<label for="connectionId"><span translate>Wallet Secret</span>
|
||||
<small translate class="has-error" ng-show="joinForm.connectionId.$invalid
|
||||
&& !joinForm.connectionId.$pristine">Wallet Secret is not valid!</small>
|
||||
<small translate data-options="disable_for_touch:true" ng-show="joinForm.connectionId.$pristine" class="has-tip
|
||||
text-gray" tooltip="Paste wallet secret here">Required</small>
|
||||
</label>
|
||||
<div class="row collapse">
|
||||
<div class="large-10 medium-10 small-10 columns pr">
|
||||
<input id="connectionId" type="text" class="small-9 columns"
|
||||
placeholder="{{'Paste wallet secret here'|translate}}"
|
||||
name="connectionId" ng-model="connectionId" wallet-secret required>
|
||||
<small class="icon-input" ng-show="joinForm.connectionId.$invalid && !joinForm.connectionId.$pristine"><i class="fi-x"></i></small>
|
||||
<small class="icon-input" ng-show="joinForm.connectionId.$valid
|
||||
&& !joinForm.connectionId.$pristine"><i class="fi-check"></i></small>
|
||||
</div>
|
||||
<div class="small-2 columns" ng-hide="showScanner || disableScanner">
|
||||
<a class="postfix button black" ng-click="openScanner()"><i class="fi-camera"> </i></a>
|
||||
</div>
|
||||
<div class="small-2 columns" ng-show="showScanner">
|
||||
<a class="postfix button warning" ng-click="cancelScanner()"><i class="fi-x"> </i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row collapse">
|
||||
<div class="large-10 medium-10 small-10 columns pr">
|
||||
<input id="connectionId" type="text" class="small-9 columns"
|
||||
placeholder="{{'Paste wallet secret here'|translate}}"
|
||||
name="connectionId" ng-model="connectionId" wallet-secret required>
|
||||
<small class="icon-input" ng-show="joinForm.connectionId.$invalid && !joinForm.connectionId.$pristine"><i class="fi-x"></i></small>
|
||||
<small class="icon-input" ng-show="joinForm.connectionId.$valid
|
||||
&& !joinForm.connectionId.$pristine"><i class="fi-check"></i></small>
|
||||
</div>
|
||||
<div class="small-2 columns" ng-hide="showScanner || disableScanner">
|
||||
<a class="postfix button black" ng-click="openScanner()"><i class="fi-camera"> </i></a>
|
||||
</div>
|
||||
<div class="small-2 columns" ng-show="showScanner">
|
||||
<a class="postfix button warning" ng-click="cancelScanner()"><i class="fi-x"> </i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="scanner" class="row" ng-if="showScanner">
|
||||
<div class="text-centered">
|
||||
<canvas id="qr-canvas" width="200" height="150"></canvas>
|
||||
<div ng-show="isMobile">
|
||||
<div id="file-input-wrapper" class="btn btn-primary">
|
||||
<span class="pull-left text-centered">
|
||||
<i class="glyphicon glyphicon-refresh icon-rotate"></i>
|
||||
<span translate>Get QR code</span>
|
||||
</span>
|
||||
<input id="qrcode-camera" type="file" capture="camera" accept="image/*">
|
||||
<div id="scanner" class="row" ng-if="showScanner">
|
||||
<div class="text-centered">
|
||||
<canvas id="qr-canvas" width="200" height="150"></canvas>
|
||||
<div ng-show="isMobile">
|
||||
<div id="file-input-wrapper" class="btn btn-primary">
|
||||
<span class="pull-left text-centered">
|
||||
<i class="glyphicon glyphicon-refresh icon-rotate"></i>
|
||||
<span translate>Get QR code</span>
|
||||
</span>
|
||||
<input id="qrcode-camera" type="file" capture="camera" accept="image/*">
|
||||
</div>
|
||||
</div>
|
||||
<div ng-hide="isMobile">
|
||||
<video id="qrcode-scanner-video" width="300" height="225" ng-hide="isMobile"></video>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-hide="isMobile">
|
||||
<video id="qrcode-scanner-video" width="300" height="225" ng-hide="isMobile"></video>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="line-dashed-h"></div>
|
||||
<div class="line-dashed-h"></div>
|
||||
|
||||
<div class="m20t m20b">
|
||||
<a class="expand small" ng-click="hideAdv=!hideAdv">
|
||||
<i class="fi-widget m3r"></i>
|
||||
<span translate ng-hide="!hideAdv">Show</span>
|
||||
<span translate ng-hide="hideAdv">Hide</span>
|
||||
<span translate>advanced options</span>
|
||||
</a>
|
||||
</div>
|
||||
<div ng-hide="hideAdv">
|
||||
<p>
|
||||
<input type="text" placeholder="BIP32 master extended private key (hex)" name="private" ng-model="$parent.private">
|
||||
</div>
|
||||
<div class="m20t m20b">
|
||||
<a class="expand small" ng-click="hideAdv=!hideAdv">
|
||||
<i class="fi-widget m3r"></i>
|
||||
<span translate ng-hide="!hideAdv">Show</span>
|
||||
<span translate ng-hide="hideAdv">Hide</span>
|
||||
<span translate>advanced options</span>
|
||||
<i ng-if="hideAdv" class="icon-arrow-down4"></i>
|
||||
<i ng-if="!hideAdv" class="icon-arrow-up4"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div ng-hide="hideAdv">
|
||||
<p>
|
||||
<input type="text" placeholder="BIP32 master extended private key (hex)" name="private" ng-model="$parent.private">
|
||||
</div>
|
||||
|
||||
<div class="text-right">
|
||||
<a class="back-button m20r" href="#!/manage">
|
||||
<i class="icon-arrow-left2 vm"></i>
|
||||
<span translate>Back</span>
|
||||
</a>
|
||||
<button translate type="submit" class="button secondary m0" ng-disabled="joinForm.$invalid">Join</button>
|
||||
<div class="text-right">
|
||||
<a class="back-button m20r" href="#!/manage">
|
||||
<i class="icon-arrow-left2 vm"></i>
|
||||
<span translate>Back</span>
|
||||
</a>
|
||||
<button translate type="submit" class="button secondary m0" ng-disabled="joinForm.$invalid">Join</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,49 +1,49 @@
|
|||
<div class="backup" ng-controller="ManageController">
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<div class="row collapse">
|
||||
<div class="large-12 columns">
|
||||
<div class="large-4 columns" >
|
||||
<div class="panel text-center" ui-route="{{create}}">
|
||||
<div><i class="size-72 fi-plus text-gray"></i></div>
|
||||
<p class="text-gray">Create a new Wallet</p>
|
||||
<a href="#!/create" class="button primary radius" title="Create"> {{'Create' | translate }} </a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="large-4 columns" ui-route="{{create}}">
|
||||
<div class="panel text-center">
|
||||
<div><i class="size-72 fi-torsos-all text-gray"></i></div>
|
||||
<p class="text-gray">Join an existent Wallet</p>
|
||||
<a href="#!/join" class="button secondary radius" title="Join"> {{'Join' | translate }} </a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="large-4 columns" ui-route="{{create}}">
|
||||
<div class="panel text-center">
|
||||
<div><i class="size-72 fi-download text-gray"></i></div>
|
||||
<p class="text-gray">Import a Wallet to Copay</p>
|
||||
<a href="#!/import" class="button black radius" title="Import"> {{'Import wallet' | translate }}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="large-4 columns" >
|
||||
<div class="panel text-center" ui-route="{{create}}">
|
||||
<div><i class="size-72 fi-plus text-gray"></i></div>
|
||||
<p class="text-gray">Create a new Wallet</p>
|
||||
<a href="#!/create" class="button primary radius" title="Create"> {{'Create' | translate }} </a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="large-4 columns" ui-route="{{create}}">
|
||||
<div class="panel text-center">
|
||||
<div><i class="size-72 fi-torsos-all text-gray"></i></div>
|
||||
<p class="text-gray">Join an existent Wallet</p>
|
||||
<a href="#!/join" class="button secondary radius" title="Join"> {{'Join' | translate }} </a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="large-4 columns" ui-route="{{create}}">
|
||||
<div class="panel text-center">
|
||||
<div><i class="size-72 fi-download text-gray"></i></div>
|
||||
<p class="text-gray">Import a Wallet to Copay</p>
|
||||
<a href="#!/import" class="button black radius" title="Import"> {{'Import wallet' | translate }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="line-dashed-h m30v"></div>
|
||||
|
||||
<div class="large-12 columns line-dashed-h m30v"></div>
|
||||
<div class="oh large-12 columns panel">
|
||||
<h3><i class="fi-download m10r"></i> <span translate>Backup Profile</span> </h3>
|
||||
<p translate class="large-8 columns text-gray">It's important to backup your profile so that you can recover it in case of disaster. The backup will include all your profile's wallets</p>
|
||||
<div class="large-4 columns">
|
||||
<a translate class="button primary m0" ng-click="downloadBackup()"
|
||||
ng-show="!isSafari">Backup profile</a>
|
||||
<a translate class="button primary m0" ng-click="viewBackup()"
|
||||
ng-show="isSafari && !hideViewBackup">View profile backup</a>
|
||||
</div>
|
||||
<div ng-show="backupPlainText">
|
||||
<textarea readonly rows="5">{{backupPlainText}}</textarea>
|
||||
<div class="show-for-large-up">
|
||||
<span translate class="size-12">Copy to clipboard</span> <span class="btn-copy" clip-copy="backupPlainText"> </span>
|
||||
</div>
|
||||
<div class="hide-for-large-up">
|
||||
<span translate class="size-12">Copy this text as it is in a safe place (notepad or email)</span>
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<div class="panel">
|
||||
<h2><i class="fi-download m10r"></i> <span translate>Backup Profile</span></h2>
|
||||
<p translate class="text-gray">It's important to backup your profile so that you can recover it in case of disaster. The backup will include all your profile's wallets</p>
|
||||
<a translate class="button primary m0" ng-click="downloadBackup()"
|
||||
ng-show="!isSafari">Backup profile</a>
|
||||
<a translate class="button primary m0" ng-click="viewBackup()"
|
||||
ng-show="isSafari && !hideViewBackup">View profile backup</a>
|
||||
<div ng-show="backupPlainText">
|
||||
<textarea rows="5">{{backupPlainText}}</textarea>
|
||||
<div class="show-for-large-up">
|
||||
<span translate class="size-12">Copy to clipboard</span> <span class="btn-copy" clip-copy="backupPlainText"> </span>
|
||||
</div>
|
||||
<div class="hide-for-large-up">
|
||||
<span translate class="size-12">Copy this text as it is in a safe place (notepad or email)</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div class="backup" ng-controller="MoreController">
|
||||
<h1 class="hide-for-large-up">{{$root.title}} </h1>
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<div class="row">
|
||||
<form name="settingsForm">
|
||||
<div class="large-6 medium-6 columns">
|
||||
|
|
|
@ -1,61 +1,67 @@
|
|||
<div class="addresses" ng-controller="ReceiveController">
|
||||
<div ng-show='$root.wallet.isReady()'>
|
||||
<h1 translate class="hide-for-large-up">Receive</h1>
|
||||
<h1 class="hide-for-large-up">{{$root.title}}</h1>
|
||||
<div ng-show="!addresses[0]">
|
||||
<i class="fi-bitcoin-circle icon-rotate spinner"></i>
|
||||
</div>
|
||||
<div class="large-12 medium-12" ng-if="!!(addresses|removeEmpty).length">
|
||||
<div class="large-12 medium-12">
|
||||
<div class="oh" ng-repeat="addr in addresses|removeEmpty|orderBy:'-index':true">
|
||||
<div class="panel radius show-for-large-up">
|
||||
<div class="row collapse">
|
||||
<div class="large-7 medium-9 column">
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="large-12 columns" ng-if="!!(addresses|removeEmpty).length">
|
||||
<div ng-repeat="addr in addresses|removeEmpty|orderBy:'-index':true">
|
||||
<div class="panel">
|
||||
<div class="row show-for-large-up">
|
||||
<div class="large-7 medium-9 columns">
|
||||
<div class="list-addr">
|
||||
<span>
|
||||
<contact address="{{addr.address}}" tooltip-popup-delay="500" tooltip tooltip-placement="right" />
|
||||
</span>
|
||||
<contact address="{{addr.address}}" tooltip-popup-delay="500" tooltip tooltip-placement="right" />
|
||||
</span>
|
||||
<span class="btn-copy" clip-copy="addr.address"> </span>
|
||||
<small translate class="label" ng-if="addr.isChange">change</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="large-3 medium-3 column text-right">
|
||||
<span ng-if="$root.updatingBalance">
|
||||
<i class="fi-bitcoin-circle icon-rotate spinner"></i>
|
||||
</span>
|
||||
<span class="size-14" ng-if="!$root.updatingBalance">
|
||||
<b>{{addr.balance || 0|noFractionNumber}} {{$root.wallet.settings.unitName}}</b>
|
||||
</span>
|
||||
</div>
|
||||
<div class="large-1 columns show-for-large-up" ng-click="openAddressModal(addr)">
|
||||
<a class="size-12" href=""> Show QR</a>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- end of panel large screen -->
|
||||
<a class="db text-black panel radius row hide-for-large-up list-addr" ng-click="openAddressModal(addr)">
|
||||
<div class="ellipsis m5b">
|
||||
<span><contact address="{{addr.address}}"></span>
|
||||
<small translate class="m0 label" ng-if="addr.isChange">change</small>
|
||||
</div>
|
||||
<div class="text-left">
|
||||
<span class="small-12 columns m15t" ng-if="$root.updatingBalance">
|
||||
<div class="large-3 medium-3 columns text-right">
|
||||
<span ng-show="$root.updatingBalance">
|
||||
<i class="fi-bitcoin-circle icon-rotate spinner"></i>
|
||||
</span>
|
||||
<span class="size-14" ng-if="!$root.updatingBalance">
|
||||
</span>
|
||||
<span class="size-14" ng-show="!$root.updatingBalance">
|
||||
<b>{{addr.balance || 0|noFractionNumber}} {{$root.wallet.settings.unitName}}</b>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class="large-2 columns show-for-large-up text-right">
|
||||
<a class="size-12" ng-click="openAddressModal(addr)"> Show QR</a>
|
||||
</div>
|
||||
</div>
|
||||
</a> <!-- end of panel mobile -->
|
||||
<div class="row hide-for-large-up" ng-click="openAddressModal(addr)">
|
||||
<div class="small-12 columns">
|
||||
<div class="list-addr">
|
||||
<div class="ellipsis">
|
||||
<span><contact address="{{addr.address}}"></span>
|
||||
<small translate class="label" ng-if="addr.isChange">change</small>
|
||||
</div>
|
||||
<div class="text-right m10t">
|
||||
<span class="size-14" ng-show="$root.updatingBalance">
|
||||
<i class="fi-bitcoin-circle icon-rotate spinner"></i>
|
||||
</span>
|
||||
<span class="size-14" ng-show="!$root.updatingBalance">
|
||||
<b>{{addr.balance || 0|noFractionNumber}} {{$root.wallet.settings.unitName}}</b>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- end of panel mobile -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a class="secondary radius size-12 right" ng-click="toggleShowAll()" ng-show="addrLength > 3">
|
||||
<span translate ng-if="!showAll">Show all</span>
|
||||
<span translate ng-if="showAll">Show less</span>
|
||||
</a>
|
||||
|
||||
<div class="m10t">
|
||||
<a class="button tiny primary text-center" ng-click="newAddr()" ng-disabled="loading"><i class="fi-plus m5r"></i> Add </a>
|
||||
<div class="large-12 columns">
|
||||
<div class="m20b text-right">
|
||||
<a class="size-12" ng-click="toggleShowAll()" ng-show="addrLength > 3">
|
||||
<span translate ng-if="!showAll">Show all</span>
|
||||
<span translate ng-if="showAll">Show less</span>
|
||||
</a>
|
||||
</div>
|
||||
<a class="button tiny primary text-center" ng-click="newAddr()" ng-disabled="loading">
|
||||
<i class="fi-plus m5r"></i> Add
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue