mirror of https://github.com/BTCPrivate/copay.git
Merge pull request #239 from bechi/feature/01-item-tx-ns
Feature/01 item tx ns // #231
This commit is contained in:
commit
1a34f53a57
28
css/main.css
28
css/main.css
|
@ -105,36 +105,21 @@ html, body {height: 100%;}
|
||||||
border: 1px solid #eee;
|
border: 1px solid #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
.transactions .panel.pending {
|
.transactions .panel {
|
||||||
padding: 1rem;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pending .txheader {
|
/*.btransactions .txheader {
|
||||||
margin-bottom: 10px;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
/* border-bottom: 1px solid #eee; */
|
|
||||||
}
|
|
||||||
|
|
||||||
.pending .txbottom {
|
|
||||||
margin-top: 10px;
|
|
||||||
padding-top: 10px;
|
|
||||||
/* border-top: 1px solid #eee; */
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btransactions .txheader {
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
border-bottom: 1px solid #eee;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.btransactions .txbottom {
|
.btransactions .txbottom {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
border-top: 1px solid #eee;
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
.pending table {
|
.pending table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -181,7 +166,7 @@ span.panel-res {
|
||||||
}
|
}
|
||||||
|
|
||||||
.pending button {
|
.pending button {
|
||||||
margin: 0;
|
margin: 0 10px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line {
|
.line {
|
||||||
|
@ -239,6 +224,9 @@ hr { margin: 2.25rem 0;}
|
||||||
.size-60 { font-size: 60px; }
|
.size-60 { font-size: 60px; }
|
||||||
.size-72 { font-size: 72px; }
|
.size-72 { font-size: 72px; }
|
||||||
.m10t {margin-top: 10px;}
|
.m10t {margin-top: 10px;}
|
||||||
|
.m10r {margin-right: 10px;}
|
||||||
|
.m10 {margin: 10px !important;}
|
||||||
|
.m15 {margin: 15px !important;}
|
||||||
.p10t {padding-top: 10px;}
|
.p10t {padding-top: 10px;}
|
||||||
.p0r {padding-right: 0;}
|
.p0r {padding-right: 0;}
|
||||||
.p70r {padding-right: 70px;}
|
.p70r {padding-right: 70px;}
|
||||||
|
|
|
@ -150,13 +150,35 @@ small.has-error {
|
||||||
color: #f04124;
|
color: #f04124;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.primary { background-color: #111; }
|
.panel.radius {
|
||||||
button.secondary { background-color: #FAE448 !important; }
|
-webkit-border-radius: 10px;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
button.primary:hover { background-color: #333;}
|
.transactions button, .transactions .button {
|
||||||
button.secondary:hover { background-color: #FFDF00 !important;}
|
padding: 0.5rem 2rem;
|
||||||
|
}
|
||||||
|
.small {
|
||||||
|
font-size: 60%;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
.text-gray { color: #999;}
|
button.radius, .button.radius {
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.primary, button.secondary, button.primary:hover, button.secondary:hover {color: #fff !important;}
|
||||||
|
|
||||||
|
button.primary { background-color: #E67E22; }
|
||||||
|
button.secondary { background-color: #1ABC9C !important; }
|
||||||
|
button.warning { background-color: #C0392A; }
|
||||||
|
|
||||||
|
button.primary:hover { background-color: #D86601;}
|
||||||
|
button.secondary:hover { background-color: #16A085 !important;}
|
||||||
|
button.warning:hover { background-color: #82251A; }
|
||||||
|
|
||||||
|
.text-gray { color: #999 !important;}
|
||||||
|
|
||||||
#footer {
|
#footer {
|
||||||
background: #2C3E50;
|
background: #2C3E50;
|
||||||
|
|
91
index.html
91
index.html
|
@ -54,7 +54,7 @@
|
||||||
|
|
||||||
<div class="row" ng-if='$root.flashMessage.message' notification>
|
<div class="row" ng-if='$root.flashMessage.message' notification>
|
||||||
<div class="small-8 large-centered columns">
|
<div class="small-8 large-centered columns">
|
||||||
<div data-alert class="alert-box round {{$root.flashMessage.type}}">
|
<div data-alert class="alert-box radius {{$root.flashMessage.type}}">
|
||||||
{{$root.flashMessage.message}}
|
{{$root.flashMessage.message}}
|
||||||
<a ng-click="clearFlashMessage()" class="close">×</a>
|
<a ng-click="clearFlashMessage()" class="close">×</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div ng-if='$root.wallet && !$root.wallet.publicKeyRing.isComplete() && !loading' data-alert class="alert-box warn round size-18" >
|
<div ng-if='$root.wallet && !$root.wallet.publicKeyRing.isComplete() && !loading' data-alert class="alert-box warn radius size-18" >
|
||||||
|
|
||||||
|
|
||||||
<div style="float:left; margin:0 15px">
|
<div style="float:left; margin:0 15px">
|
||||||
|
@ -131,7 +131,7 @@
|
||||||
<!-- Templates -->
|
<!-- Templates -->
|
||||||
<script type="text/ng-template" id="signin.html">
|
<script type="text/ng-template" id="signin.html">
|
||||||
<div class="signin" ng-controller="SigninController">
|
<div class="signin" ng-controller="SigninController">
|
||||||
<div data-alert class="alert-box info round" ng-show="loading">
|
<div data-alert class="alert-box info radius" ng-show="loading">
|
||||||
Looking for peers...
|
Looking for peers...
|
||||||
</div>
|
</div>
|
||||||
<div ng-show="!loading">
|
<div ng-show="!loading">
|
||||||
|
@ -141,7 +141,7 @@
|
||||||
<h3>Create a New Wallet</h3>
|
<h3>Create a New Wallet</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-3 columns">
|
<div class="large-3 columns">
|
||||||
<button class="button secondary expand round" ng-click="create()" ng-disabled="loading" loading="Creating">Create</button>
|
<button class="button secondary expand radius" ng-click="create()" ng-disabled="loading" loading="Creating">Create</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -155,7 +155,7 @@
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-3 columns">
|
<div class="large-3 columns">
|
||||||
<button class="button secondary expand round" type="button"
|
<button class="button secondary expand radius" type="button"
|
||||||
ng-click="open(selectedWalletId)" ng-disabled="loading" loading="Opening">Open</button>
|
ng-click="open(selectedWalletId)" ng-disabled="loading" loading="Opening">Open</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -169,7 +169,7 @@
|
||||||
ng-model="connectionId" required autofocus>
|
ng-model="connectionId" required autofocus>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-3 columns">
|
<div class="large-3 columns">
|
||||||
<button class="button primary expand round"
|
<button class="button primary expand radius"
|
||||||
ng-click="join(connectionId)" ng-disabled="loading" loading="Joining">Join</button>
|
ng-click="join(connectionId)" ng-disabled="loading" loading="Joining">Join</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -202,7 +202,7 @@
|
||||||
|
|
||||||
<script type="text/ng-template" id="setup.html">
|
<script type="text/ng-template" id="setup.html">
|
||||||
<div ng-controller="SetupController">
|
<div ng-controller="SetupController">
|
||||||
<div data-alert class="alert-box info round" ng-show="loading">
|
<div data-alert class="alert-box info radius" ng-show="loading">
|
||||||
Creating new wallet...
|
Creating new wallet...
|
||||||
</div>
|
</div>
|
||||||
<div ng-show="!loading">
|
<div ng-show="!loading">
|
||||||
|
@ -230,7 +230,7 @@
|
||||||
|
|
||||||
<div class="large-6 large-centered columns m30v">
|
<div class="large-6 large-centered columns m30v">
|
||||||
<hr>
|
<hr>
|
||||||
<button class="button primary round right" type="button"
|
<button class="button primary radius right" type="button"
|
||||||
ng-click="create(totalCopayers, requiredCopayers, walletName)">
|
ng-click="create(totalCopayers, requiredCopayers, walletName)">
|
||||||
Create {{requiredCopayers}}-of-{{totalCopayers}} wallet
|
Create {{requiredCopayers}}-of-{{totalCopayers}} wallet
|
||||||
</button>
|
</button>
|
||||||
|
@ -262,7 +262,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="columns text-center" ng-class="{'large-3' : addrs[0]}">
|
<div class="columns text-center" ng-class="{'large-3' : addrs[0]}">
|
||||||
<p> Create a New <strong> Address </strong> </p>
|
<p> Create a New <strong> Address </strong> </p>
|
||||||
<button class="secondary round expandi new-address" ng-click="newAddr()" ng-disabled="loading" loading="Creating"> Create </button>
|
<button class="secondary radius expandi new-address" ng-click="newAddr()" ng-disabled="loading" loading="Creating"> Create </button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -275,9 +275,9 @@
|
||||||
<div class="row" ng-show='$root.wallet.publicKeyRing.isComplete()'>
|
<div class="row" ng-show='$root.wallet.publicKeyRing.isComplete()'>
|
||||||
<div class="large-12 columns">
|
<div class="large-12 columns">
|
||||||
<h4>Transactions proposals <small>({{txs.length}})</small></h4>
|
<h4>Transactions proposals <small>({{txs.length}})</small></h4>
|
||||||
<div class="panel pending" ng-repeat="tx in txs | orderBy: 'createdTs':true">
|
<div class="panel radius pending" ng-repeat="tx in txs | orderBy: 'createdTs':true">
|
||||||
<div class="txheader">
|
<div class="txheader">
|
||||||
<div class="row">
|
<div class="row m10">
|
||||||
<div class="large-8 columns">
|
<div class="large-8 columns">
|
||||||
<div class="row" ng-repeat="out in tx.outs">
|
<div class="row" ng-repeat="out in tx.outs">
|
||||||
<p class="large-3 columns"> {{out.value}} <i class="fi-bitcoin size-18"></i></p>
|
<p class="large-3 columns"> {{out.value}} <i class="fi-bitcoin size-18"></i></p>
|
||||||
|
@ -311,57 +311,50 @@
|
||||||
<i class="fi-check size-12 icon-status icon-active-check"></i>
|
<i class="fi-check size-12 icon-status icon-active-check"></i>
|
||||||
</a>
|
</a>
|
||||||
<a ng-if="action == 'rejected'" href="#/transactions" class="has-tip" tooltip-popup-delay='1000' tooltip="Rejected at {{ts | date:'medium'}}">
|
<a ng-if="action == 'rejected'" href="#/transactions" class="has-tip" tooltip-popup-delay='1000' tooltip="Rejected at {{ts | date:'medium'}}">
|
||||||
<i class="fi-check size-12 icon-status icon-active-x"></i>
|
<i class="fi-x size-12 icon-status icon-active-x"></i>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<small class="right text-gray">
|
|
||||||
Fee: <strong> <i class="fi-bitcoin"></i> {{tx.fee}} </strong>
|
|
||||||
<strong> Proposal ID: </strong> {{tx.ntxid}}
|
|
||||||
</small>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="txbottom">
|
<div class="row m15">
|
||||||
<div class="row">
|
<div class="large-4 columns" ng-show="!tx.sentTs" style="padding-left: 5px;">
|
||||||
<div class="large-6 columns" ng-show="!tx.sentTs">
|
|
||||||
<div ng-show="tx.signedByUs">
|
|
||||||
<i class="fi-check size-40"></i> Signed by you already
|
|
||||||
</div>
|
|
||||||
<div ng-show="!tx.signedByUs && !tx.rejectedByUs && !tx.finallyRejected && tx.missingSignatures">
|
<div ng-show="!tx.signedByUs && !tx.rejectedByUs && !tx.finallyRejected && tx.missingSignatures">
|
||||||
<button class="secondary round" ng-click="sign(tx.ntxid)" ng-disabled="loading" loading="Signing">
|
<button class="secondary radius m10r" ng-click="sign(tx.ntxid)" ng-disabled="loading" loading="Signing">
|
||||||
<i class="fi-check"></i> Sign
|
<i class="fi-check"></i> Sign
|
||||||
</button>
|
</button>
|
||||||
<button class="primary round" ng-click="reject(tx.ntxid)" ng-disabled="loading" loading>
|
<button class="warning radius" ng-click="reject(tx.ntxid)" ng-disabled="loading" loading>
|
||||||
<i class="fi-x" ></i> Reject
|
<i class="fi-x" ></i> Reject
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="large-6 columns text-right">
|
|
||||||
<span ng-show="tx.finallyRejected ">
|
|
||||||
Transaction finally rejected
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<span ng-show="!tx.missingSignatures && !tx.sentTs">
|
<span ng-show="!tx.missingSignatures && !tx.sentTs">
|
||||||
Transaction ready.
|
<button class="primary radius" ng-click="send(tx.ntxid)" ng-disabled="loading" loading="Broadcasting"> <i class=".fi-upload-cloud"></i>
|
||||||
<button class="secondary round" ng-click="send(tx.ntxid)" ng-disabled="loading" loading="Broadcasting">
|
|
||||||
Broadcast Transaction
|
Broadcast Transaction
|
||||||
</button>
|
</button>
|
||||||
</span>
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<span ng-show="!tx.missingSignatures && tx.sentTs">
|
<div class="large-8 columns text-right">
|
||||||
|
<span ng-show="tx.finallyRejected" class="text-warning">
|
||||||
|
Transaction finally rejected
|
||||||
|
</span>
|
||||||
|
<p class="small" ng-show="!tx.missingSignatures && tx.sentTs">
|
||||||
|
<a href="http://live.insight.is/tx/{{tx.sentTxid}}" target="blank">
|
||||||
<i class="fi-arrow-right size-40"></i>
|
<i class="fi-arrow-right size-40"></i>
|
||||||
Sent at {{tx.sentTs | date:'medium'}}
|
Sent at {{tx.sentTs | date:'medium'}}
|
||||||
TXID: {{tx.sentTxid}}
|
</a>
|
||||||
</span>
|
</p>
|
||||||
<span ng-show="!tx.finallyRejected && tx.missingSignatures==1">
|
<p class="text-gray" ng-show="!tx.finallyRejected && tx.missingSignatures==1">
|
||||||
One signature missing
|
One signature missing
|
||||||
</span>
|
</p>
|
||||||
<span ng-show="!tx.finallyRejected && tx.missingSignatures>1">
|
<p class="text-gray" ng-show="!tx.finallyRejected && tx.missingSignatures>1">
|
||||||
{{tx.missingSignatures}} signatures missing</span>
|
{{tx.missingSignatures}} signatures missing</p>
|
||||||
</div>
|
<small class="right text-gray">
|
||||||
|
<strong> Fee: </strong> <i class="fi-bitcoin"></i> {{tx.fee}}
|
||||||
|
<strong> Proposal ID: </strong> {{tx.ntxid}}
|
||||||
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -369,8 +362,8 @@
|
||||||
<div class="large-12 columns" ng-init="getTransactions()" ng-show="blockchain_txs[0].txid">
|
<div class="large-12 columns" ng-init="getTransactions()" ng-show="blockchain_txs[0].txid">
|
||||||
<h3>Last transactions</h3>
|
<h3>Last transactions</h3>
|
||||||
<div class="btransactions">
|
<div class="btransactions">
|
||||||
<div class="panel" ng-repeat="btx in blockchain_txs | orderBy: 'firstSeenTs':true">
|
<div class="panel radius" ng-repeat="btx in blockchain_txs | orderBy: 'firstSeenTs':true">
|
||||||
<div class="txheader">
|
<div class="m15">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="large-8 columns">
|
<div class="large-8 columns">
|
||||||
ID: {{btx.txid}}
|
ID: {{btx.txid}}
|
||||||
|
@ -380,11 +373,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="tx-copayers">
|
||||||
<div class="large-5 columns">
|
<div class="large-5 columns">
|
||||||
<div ng-repeat="vin in btx.vin">
|
<div ng-repeat="vin in btx.vin">
|
||||||
{{vin.addr}}
|
<p class="left text-gray size-12"> {{vin.addr}} </p>
|
||||||
<small>{{vin.value}}</small>
|
<small class="right">{{vin.value}}</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-1 columns text-center">
|
<div class="large-1 columns text-center">
|
||||||
|
@ -395,7 +388,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="large-10 columns">
|
<div class="large-10 columns">
|
||||||
<div ng-repeat="addr in vout.scriptPubKey.addresses">
|
<div ng-repeat="addr in vout.scriptPubKey.addresses">
|
||||||
{{addr}}
|
<p class="text-gray size-12"> {{addr}} </p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="large-2 columns">
|
<div class="large-2 columns">
|
||||||
|
@ -405,7 +398,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="txbottom">
|
<div class="m15 size-12 text-gray">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="large-4 columns">Fees: {{btx.fees}}</div>
|
<div class="large-4 columns">Fees: {{btx.fees}}</div>
|
||||||
<div class="large-4 columns text-center">Confirmations: {{btx.confirmations || 0}}</div>
|
<div class="large-4 columns text-center">Confirmations: {{btx.confirmations || 0}}</div>
|
||||||
|
@ -459,7 +452,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="large-5 columns">
|
<div class="large-5 columns">
|
||||||
<button type="submit" class="button secondary round text-center" ng-disabled="sendForm.$invalid || loading" loading="Sending">
|
<button type="submit" class="button secondary radius text-center" ng-disabled="sendForm.$invalid || loading" loading="Sending">
|
||||||
Send
|
Send
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue