mirror of https://github.com/BTCPrivate/copay.git
commit
fa9c6b0524
126
css/src/main.css
126
css/src/main.css
|
@ -404,26 +404,64 @@ a:hover {
|
||||||
background-color: #C0392A;
|
background-color: #C0392A;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.panel.last-transactions {
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 2.25rem;
|
||||||
|
border-radius: 3px 3px 0 3px;
|
||||||
|
}
|
||||||
|
|
||||||
.last-transactions {
|
a.missing-copayers {
|
||||||
margin-bottom: 2rem;
|
background: #7A8C9E;
|
||||||
background-color: #E8EAEF;
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
right: -1px;
|
||||||
|
bottom: -18px;
|
||||||
|
padding: 0.2rem 0.5rem;
|
||||||
|
font-size: 10px;
|
||||||
|
border-radius: 0 0 3px 3px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: #fff;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.tx-copayers {
|
||||||
|
background: #E4E8EC;
|
||||||
|
padding: 0.3rem 0.8rem;
|
||||||
|
margin-left: 0;
|
||||||
|
box-shadow: inset 0 1px 1px 0 rgba(10,19,28,.12);
|
||||||
|
border-radius: 0 0 3px 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tx-copayers li {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0.3rem;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tx-copayers li.bottom-line-copayers {
|
||||||
|
border-bottom: 1px solid #CAD2DA;
|
||||||
}
|
}
|
||||||
|
|
||||||
.last-transactions-header {
|
.last-transactions-header {
|
||||||
padding: 0.5rem;
|
border-radius: 3px 3px 0 0;
|
||||||
|
background: #2C3E50;
|
||||||
|
padding: 0.6rem;
|
||||||
|
color: #fff;
|
||||||
|
box-shadow: 1.5px 0px 0 0 rgba(32,48,64,1);
|
||||||
|
-moz-box-shadow: 1.5px 0px 0 0 rgba(32,48,64,1);
|
||||||
|
-o-box-shadow: 1.5px 0px 0 0 rgba(32,48,64,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.last-transactions-content {
|
||||||
|
padding: 0.8rem 0.8rem 0;
|
||||||
|
color: #7A8C9E;
|
||||||
}
|
}
|
||||||
|
|
||||||
.last-transactions-footer {
|
.last-transactions-footer {
|
||||||
padding: 0.5rem;
|
padding: 0.8rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
table.last-transactions-content {
|
|
||||||
background-color: #F8F8FB;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.last-transactions-content .box-status {
|
.last-transactions-content .box-status {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
width: 30px;
|
width: 30px;
|
||||||
|
@ -446,36 +484,27 @@ table.last-transactions-content {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.last-transactions-content .icon-active-check {
|
.icon-sign {
|
||||||
|
padding: 0.2rem 0.3rem;
|
||||||
|
border-radius: 100%;
|
||||||
|
color: #fff;
|
||||||
|
margin-right: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-sign.check {
|
||||||
background-color: #3FBC9C;
|
background-color: #3FBC9C;
|
||||||
color: #fff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.last-transactions-content .icon-active-x {
|
.icon-sign.x {
|
||||||
background-color: #C0392B;
|
background-color: #C0392B;
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.private-message {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
border-bottom: 1px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-message {
|
|
||||||
background-color: #F8F8FB;
|
|
||||||
height: 18px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.date-message {
|
.date-message {
|
||||||
background-color: #3C4E60;
|
background-color: #213140;
|
||||||
color: #fff;
|
border-radius: 3px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
padding: 2px 5px;
|
padding: 0.2rem 0.4rem;
|
||||||
-webkit-border-radius: 0 5px 0 0;
|
color: #7A8C9E;
|
||||||
-moz-border-radius: 0 5px 0 0;
|
|
||||||
-ms-border-radius: 0 5px 0 0;
|
|
||||||
border-radius: 0 5px 0 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-note {
|
.input-note {
|
||||||
|
@ -485,18 +514,14 @@ table.last-transactions-content {
|
||||||
}
|
}
|
||||||
|
|
||||||
.send-note {
|
.send-note {
|
||||||
background-color: #EDEDF5;
|
background-color: #F8F8FB;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.send-note p {
|
.send-note span {
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
color: #2C3E50;
|
||||||
|
|
||||||
.send-note b {
|
|
||||||
color: #000;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a.button-setup.add-wallet {
|
a.button-setup.add-wallet {
|
||||||
|
@ -610,12 +635,12 @@ a.button-setup {
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-t {
|
.line-t {
|
||||||
border-top: 1px solid #F8F8FB;
|
border-top: 1px solid #E9E9EC;
|
||||||
padding-top: 0.5rem;
|
padding-top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-b {
|
.line-b {
|
||||||
border-bottom: 1px solid #F8F8FB;
|
border-bottom: 1px solid #E9E9EC;
|
||||||
padding-bottom: 0.5rem;
|
padding-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -998,8 +1023,8 @@ button[disabled].secondary:focus,
|
||||||
.button.disabled.secondary:focus,
|
.button.disabled.secondary:focus,
|
||||||
.button[disabled].secondary:hover,
|
.button[disabled].secondary:hover,
|
||||||
.button[disabled].secondary:focus {
|
.button[disabled].secondary:focus {
|
||||||
background-color: #95a5a6;
|
background-color: #E4E8EC;
|
||||||
color: #E6E6E6;
|
color: #A5B2BF;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* PRIMARY */
|
/* PRIMARY */
|
||||||
|
@ -1374,15 +1399,6 @@ a:hover .photo-container {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-status {
|
|
||||||
background-color: #34495E;
|
|
||||||
color: #7A8C9E;
|
|
||||||
border-radius: 100%;
|
|
||||||
padding: 0.17rem 0.3rem;
|
|
||||||
float: left;
|
|
||||||
margin-bottom: 0.2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.has-error {
|
.has-error {
|
||||||
color: #C0392A;
|
color: #C0392A;
|
||||||
}
|
}
|
||||||
|
@ -1456,9 +1472,9 @@ a.text-warning:hover {color: #FD7262;}
|
||||||
.panel {
|
.panel {
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
-moz-box-shadow: 1.5px 1.5px 0px 0px rgba(32,48,64,0.10);
|
-moz-box-shadow: 1.5px 1.5px 0px 0px rgba(32,48,64,0.20);
|
||||||
box-shadow: 1.5px 1.5px 0px 0px rgba(32,48,64,0.10);
|
box-shadow: 1.5px 1.5px 0px 0px rgba(32,48,64,0.20);
|
||||||
-o-box-shadow: 1.5px 1.5px 0px 0px rgba(32,48,64,0.10);
|
-o-box-shadow: 1.5px 1.5px 0px 0px rgba(32,48,64,0.20);
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -173,6 +173,10 @@
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.panel.last-transactions {
|
||||||
|
margin-bottom: 3.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
.addresses .list-addr contact {
|
.addresses .list-addr contact {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
@ -183,10 +187,11 @@
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
table.last-transactions-content .icon-status {
|
a.missing-copayers {
|
||||||
border-radius: 0;
|
bottom: -34px;
|
||||||
padding: 0.1rem 0.3rem;
|
text-align: center;
|
||||||
margin-bottom: 0;
|
padding: .7rem;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.button, button {
|
.button, button {
|
||||||
|
@ -221,10 +226,6 @@
|
||||||
padding: 0.15rem 0.2rem;
|
padding: 0.15rem 0.2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-t {
|
|
||||||
border-top: 1px solid #3C5269;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
|
|
|
@ -91,15 +91,14 @@ angular.module('copayApp.directives')
|
||||||
])
|
])
|
||||||
.directive('validAmount', ['$rootScope', '$locale',
|
.directive('validAmount', ['$rootScope', '$locale',
|
||||||
function($rootScope, locale) {
|
function($rootScope, locale) {
|
||||||
var w = $rootScope.wallet;
|
|
||||||
preconditions.checkState(w);
|
|
||||||
preconditions.checkState(w.settings.unitToSatoshi);
|
|
||||||
var formats = locale.NUMBER_FORMATS;
|
var formats = locale.NUMBER_FORMATS;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
require: 'ngModel',
|
require: 'ngModel',
|
||||||
link: function(scope, element, attrs, ctrl) {
|
link: function(scope, element, attrs, ctrl) {
|
||||||
var val = function(value) {
|
var val = function(value) {
|
||||||
|
var w = $rootScope.wallet;
|
||||||
|
preconditions.checkState(w);
|
||||||
var vNum = Number((value * w.settings.unitToSatoshi).toFixed(0));
|
var vNum = Number((value * w.settings.unitToSatoshi).toFixed(0));
|
||||||
|
|
||||||
if (typeof value == 'undefined') {
|
if (typeof value == 'undefined') {
|
||||||
|
|
|
@ -97,20 +97,14 @@
|
||||||
<table class="last-transactions-content" ng-if="btx.actionList[0]">
|
<table class="last-transactions-content" ng-if="btx.actionList[0]">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr ng-repeat="c in btx.actionList">
|
<tr ng-repeat="c in btx.actionList">
|
||||||
<td class="copayer-name text-gray" width="100%">{{c.cId === $root.wallet.getMyCopayerId() ? 'Me' : $root.wallet.publicKeyRing.nicknameForCopayer(c.cId)}}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<i ng-if="c.actions.create" class="fi-crown icon-status icon-active"></i>
|
|
||||||
<i ng-if="!c.actions.create" class="fi-crown icon-status"></i>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<i ng-if="c.actions.seen" class="fi-eye icon-status icon-active"></i>
|
|
||||||
<i ng-if="!c.actions.seen" class="fi-eye icon-status"></i>
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<i ng-if="c.actions.rejected" class="fi-x icon-status icon-active-x"></i>
|
<i ng-if="c.actions.rejected" class="fi-x icon-status icon-active-x"></i>
|
||||||
<i ng-if="c.actions.sign" class="fi-check icon-status icon-active-check"></i>
|
<i ng-if="c.actions.sign" class="fi-check icon-status icon-active-check"></i>
|
||||||
<i ng-if="!c.actions.sign && !c.actions.rejected && tx.missingSignatures" class="fi-loop icon-rotate"></i>
|
</td>
|
||||||
|
<td>
|
||||||
|
<i ng-if="c.actions.create" class="fi-crown icon-status icon-active"></i>
|
||||||
|
</td>
|
||||||
|
<td class="copayer-name text-gray" width="100%">{{c.cId === $root.wallet.getMyCopayerId() ? 'Me' : $root.wallet.publicKeyRing.nicknameForCopayer(c.cId)}}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -1,114 +1,116 @@
|
||||||
<div class="header-message">
|
|
||||||
<span class="date-message">{{tx.createdTs | amCalendar}}</span>
|
<div class="last-transactions-header row collapse" ng-init="txIndex = $index">
|
||||||
</div>
|
<div class="large-9 small-7 columns size-14">
|
||||||
<div class="last-transactions-header" ng-init="txIndex = $index">
|
<div ng-show="tx.comment">
|
||||||
<div class="private-message" ng-show="tx.comment">
|
<i class="fi-comment-quotes size-18 vm"></i>
|
||||||
<i class="fi-comment-quotes"></i>
|
|
||||||
<span class="text-light">{{tx.comment}}</span>
|
<span class="text-light">{{tx.comment}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="large-3 small-5 columns text-right">
|
||||||
|
<span class="date-message">{{tx.createdTs | amCalendar}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="last-transactions-content">
|
||||||
<div class="row" ng-repeat="out in tx.outs">
|
<div class="row" ng-repeat="out in tx.outs">
|
||||||
<div class="large-3 medium-3 small-4 columns">
|
<div class="large-3 medium-3 small-4 columns size-14">
|
||||||
<div class="size-12">
|
|
||||||
<b>{{out.value}} {{$root.wallet.settings.unitName}}</b>
|
<b>{{out.value}} {{$root.wallet.settings.unitName}}</b>
|
||||||
<span class="alt-currency gray">
|
<span class="alt-currency gray">
|
||||||
{{out.alternativeAmount}} {{out.alternativeIsoCode}}
|
{{out.alternativeAmount}} {{out.alternativeIsoCode}}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="large-1 medium-1 small-1 columns fi-arrow-right"></div>
|
<div class="large-1 medium-1 small-1 columns fi-arrow-right"></div>
|
||||||
<div class="large-8 medium-8 small-7 columns ellipsis">
|
<div class="large-8 medium-8 small-7 columns ellipsis size-12">
|
||||||
<contact address="{{out.address}}" tooltip-popup-delay="500" tooltip tooltip-placement="right" />
|
<contact address="{{out.address}}" tooltip-popup-delay="500" tooltip tooltip-placement="right" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="m10t" ng-show="!!tx.merchant">
|
||||||
<div class="line-t m5t" ng-show="!!tx.merchant">
|
|
||||||
<div class="send-note">
|
<div class="send-note">
|
||||||
<p>
|
<span><b>{{tx.merchant.pr.pd.memo}}</b></span> <br>
|
||||||
<b>{{tx.merchant.pr.pd.memo}}</b>
|
<span>Expires {{tx.merchant.pr.pd.expires * 1000 | amTimeAgo }} </span>
|
||||||
<p>
|
|
||||||
Expires {{tx.merchant.pr.pd.expires * 1000 | amTimeAgo }}
|
|
||||||
<span ng-show="tx.merchant.domain">[{{tx.merchant.domain}}]</span>
|
<span ng-show="tx.merchant.domain">[{{tx.merchant.domain}}]</span>
|
||||||
<span ng-show="!!tx.merchant.pr.ca"><i class="fi-lock"></i> {{tx.merchant.pr.ca}}</span>
|
<span ng-show="!!tx.merchant.pr.ca"><i class="icon-locked size-14"></i> {{tx.merchant.pr.ca}}</span>
|
||||||
<span ng-show="!tx.merchant.pr.ca" style="color:red;weight:bold;"><i class="fi-unlock"></i> Untrusted</span>
|
<span ng-show="!tx.merchant.pr.ca" style="color:red;weight:bold;"><i class="fi-unlock"></i> Untrusted</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="line-b"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table class="last-transactions-content">
|
|
||||||
<tbody>
|
|
||||||
<tr ng-repeat="c in tx.actionList">
|
|
||||||
<td width="100%">{{c.cId === $root.wallet.getMyCopayerId() ? 'Me' : $root.wallet.publicKeyRing.nicknameForCopayer(c.cId)}}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<i ng-if="c.actions.create" class="fi-crown icon-status icon-active"></i>
|
|
||||||
<i ng-if="!c.actions.create" class="fi-crown icon-status"></i>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<i ng-if="c.actions.seen" class="fi-eye icon-status icon-active"></i>
|
|
||||||
<i ng-if="!c.actions.seen" class="fi-eye icon-status"></i>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<i ng-if="c.actions.rejected" class="fi-x icon-status icon-active-x"></i>
|
|
||||||
<i ng-if="c.actions.sign" class="fi-check icon-status icon-active-check"></i>
|
|
||||||
<i ng-if="!c.actions.sign && !c.actions.rejected && tx.missingSignatures" class="fi-loop icon-rotate"></i>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<div class="last-transactions-footer">
|
<div class="last-transactions-footer">
|
||||||
<div class="row collapse">
|
<div class="row collapse">
|
||||||
<div class="large-5 medium-7 small-12 columns" ng-show="!tx.sentTs">
|
<div class="large-6 medium-12 small-12 columns" ng-show="!tx.sentTs">
|
||||||
|
<div ng-show="tx.signedBy[myId]">
|
||||||
|
<button class="secondary left m10r tiny m0 radius" ng-disabled="true"> <i class="fi-check icon-sign check"></i>
|
||||||
|
<span translate>I signed</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div ng-show="tx.rejectedBy[myId]">
|
||||||
|
<button class="warning left m10r tiny m0 radius" ng-disabled="true"> <i class="fi-x icon-sign x"></i>
|
||||||
|
<span translate>I rejected</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
<div ng-show="!tx.signedBy[myId] && !tx.rejectedBy[myId]">
|
<div ng-show="!tx.signedBy[myId] && !tx.rejectedBy[myId]">
|
||||||
<div class="hide-for-small-only">
|
<div class="hide-for-small-only">
|
||||||
<button class="primary tiny m0 m15r" ng-click="sign(tx.ntxid)" ng-disabled="loading">
|
<button class="primary tiny m0 m15r" ng-click="sign(tx.ntxid)" ng-disabled="loading">
|
||||||
<i class="fi-check"></i> <span translate>Sign</span>
|
<i class="fi-check icon-sign check"></i> <span translate>Sign</span>
|
||||||
</button>
|
</button>
|
||||||
<button class="warning tiny m0" ng-click="reject(tx.ntxid)" ng-disabled="loading">
|
<button class="warning tiny m0" ng-click="reject(tx.ntxid)" ng-disabled="loading">
|
||||||
<i class="fi-x" ></i> <span translate>Reject</span>
|
<i class="fi-x icon-sign x" ></i> <span translate>Reject</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="show-for-small-only row">
|
<div class="show-for-small-only row">
|
||||||
<button class="primary tiny small-5 columns m10b" ng-click="sign(tx.ntxid)" ng-disabled="loading">
|
<button class="primary tiny small-5 columns m10b" ng-click="sign(tx.ntxid)" ng-disabled="loading">
|
||||||
<i class="fi-check"></i> <span translate>Sign</span>
|
<i class="fi-check icon-sign check"></i> <span translate>Sign</span>
|
||||||
</button>
|
</button>
|
||||||
<button class="warning tiny small-5 columns m10b" ng-click="reject(tx.ntxid)" ng-disabled="loading">
|
<button class="warning tiny small-5 columns m10b" ng-click="reject(tx.ntxid)" ng-disabled="loading">
|
||||||
<i class="fi-x" ></i> <span translate>Reject</span>
|
<i class="fi-x icon-sign x" ></i> <span translate>Reject</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-show="!tx.missingSignatures && !tx.sentTs">
|
<div ng-show="!tx.missingSignatures && !tx.sentTs">
|
||||||
<button class="primary tiny m0" ng-click="send(tx.ntxid)" ng-disabled="loading"> <i class=".fi-upload-cloud"></i>
|
<button class="primary tiny m0" ng-click="send(tx.ntxid)" ng-disabled="loading"> <i class="fi-upload-cloud"></i>
|
||||||
<span translate>Broadcast Transaction</span>
|
<span translate>Broadcast Transaction</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="large-7 medium-5 small-12 columns text-right">
|
<div class="large-6 columns small text-gray show-for-large-up text-right">
|
||||||
<div translate ng-show="tx.finallyRejected" class="has-error">
|
<div>
|
||||||
Transaction finally rejected
|
|
||||||
</div>
|
|
||||||
<div ng-show="!tx.missingSignatures && tx.sentTs">
|
|
||||||
<div class="is-valid">
|
|
||||||
<strong translate>Sent</strong> <span class="text-gray" am-time-ago="tx.sentTs"></span>
|
|
||||||
</div>
|
|
||||||
<div class="ellipsis small m10t">
|
|
||||||
<span translate>Transaction ID</span>:
|
|
||||||
<a href="http://{{getShortNetworkName()}}.insight.is/tx/{{tx.sentTxid}}" target="_blank">
|
|
||||||
{{tx.sentTxid}}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div translate class="text-gray" ng-show="!tx.finallyRejected && tx.missingSignatures==1">
|
|
||||||
One signature missing
|
|
||||||
</div>
|
|
||||||
<div translate class="text-gray" ng-show="!tx.finallyRejected && tx.missingSignatures>1">
|
|
||||||
{{tx.missingSignatures}} signatures missing
|
|
||||||
</div>
|
|
||||||
<div class="ellipsis small text-gray show-for-large-up m5t">
|
|
||||||
<strong translate>Fee</strong>: {{tx.fee}} {{$root.wallet.settings.unitName}}
|
<strong translate>Fee</strong>: {{tx.fee}} {{$root.wallet.settings.unitName}}
|
||||||
|
</div>
|
||||||
|
<div class="m5t">
|
||||||
<strong translate>Proposal ID</strong>: {{tx.ntxid}}
|
<strong translate>Proposal ID</strong>: {{tx.ntxid}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<a class="missing-copayers" ng-click="tx.showDetails = !tx.showDetails">
|
||||||
|
<span ng-show="!tx.finallyRejected && tx.missingSignatures==1">
|
||||||
|
<i class="fi-torso"></i>
|
||||||
|
One signature missing
|
||||||
|
</span>
|
||||||
|
<span ng-show="!tx.finallyRejected && tx.missingSignatures>1">
|
||||||
|
<i class="icon-people"></i>
|
||||||
|
{{tx.missingSignatures}} signatures missing
|
||||||
|
</span>
|
||||||
|
<span ng-show="!tx.finallyRejected && tx.missingSignatures==0">
|
||||||
|
Copayers
|
||||||
|
</span>
|
||||||
|
<i ng-class="{'icon-arrow-up2':tx.showDetails, 'icon-arrow-down2':!tx.showDetails}"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<ul class="tx-copayers" ng-show="tx.showDetails">
|
||||||
|
<li ng-repeat="c in tx.actionList" ng-class="{'bottom-line-copayers':!$last}">
|
||||||
|
<span>
|
||||||
|
<i ng-if="c.actions.rejected" class="fi-x icon-sign x"></i>
|
||||||
|
<i ng-if="c.actions.sign" class="fi-check icon-sign check"></i>
|
||||||
|
<i ng-if="!c.actions.sign && !c.actions.rejected && tx.missingSignatures" class="m10r fi-loop icon-rotate"></i>
|
||||||
|
</span>
|
||||||
|
<span>
|
||||||
|
<i ng-if="c.actions.create" class="fi-crown icon-status icon-active m10r"></i>
|
||||||
|
</span>
|
||||||
|
<span>{{c.cId === $root.wallet.getMyCopayerId() ? 'Me' : $root.wallet.publicKeyRing.nicknameForCopayer(c.cId)}}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="row" ng-show="txps.length != 0">
|
<div class="row" ng-show="txps.length != 0">
|
||||||
<div class="large-12 columns">
|
<div class="large-12 columns">
|
||||||
<h2 translate>Pending Transactions Proposals</h2>
|
<h2 translate>Pending Transactions Proposals</h2>
|
||||||
<div class="last-transactions"
|
<div class="panel last-transactions pr"
|
||||||
ng-repeat="tx in txps | paged"
|
ng-repeat="tx in txps | paged"
|
||||||
ng-include="'views/includes/transaction.html'"></div>
|
ng-include="'views/includes/transaction.html'"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
<input type="number" id="amount"
|
<input type="number" id="amount"
|
||||||
ng-disabled="loading || ($root.merchant && +$root.merchant.total > 0) || isPayUri"
|
ng-disabled="loading || ($root.merchant && +$root.merchant.total > 0) || isPayUri"
|
||||||
name="amount" placeholder="{{'Amount'|translate}}" ng-model="amount"
|
name="amount" placeholder="{{'Amount'|translate}}" ng-model="amount"
|
||||||
min="0.00000001" max="10000000000" valid-amount required
|
ng-minlength="0.00000001" ng-maxlength="10000000000" valid-amount required
|
||||||
autocomplete="off">
|
autocomplete="off">
|
||||||
<i class="icon-bitcoin"></i>
|
<i class="icon-bitcoin"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue