commit
4c0db8942f
15 changed files with 301 additions and 346 deletions
|
|
@ -109,6 +109,11 @@ header .alt-currency {
|
|||
color: yellow !important;
|
||||
}
|
||||
|
||||
|
||||
.color-alert {
|
||||
color: #C0392A;
|
||||
}
|
||||
|
||||
.alt-currency.green {
|
||||
background: #1abc9c;
|
||||
}
|
||||
|
|
@ -414,6 +419,13 @@ a:hover {
|
|||
background-color: #C0392A;
|
||||
}
|
||||
|
||||
.box-notification .box-icon.secondary {
|
||||
background-color: #3498DB;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.box-notification a.close-notification {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
|
|
@ -445,48 +457,25 @@ ul.tx-copayers {
|
|||
border-bottom: 1px solid #CAD2DA;
|
||||
}
|
||||
|
||||
.last-transactions-header {
|
||||
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 {
|
||||
padding: 0.8rem;
|
||||
overflow: hidden;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.last-transactions-content .box-status {
|
||||
font-size: 13px;
|
||||
width: 30px;
|
||||
}
|
||||
.last-transactions-content:hover {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
.last-transactions-content .box-copayer {
|
||||
width: 100px;
|
||||
margin-right: 20px;
|
||||
float: left;
|
||||
|
||||
|
||||
.sign-action {
|
||||
background: #E4E8EC;
|
||||
width: 100%;
|
||||
padding: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.last-transactions-content .copayer-ico {
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
border: 2px solid #7A8C9B;
|
||||
}
|
||||
|
||||
.last-transactions-content .icon-active {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.icon-sign {
|
||||
padding: 0.2rem 0.3rem;
|
||||
border-radius: 100%;
|
||||
|
|
@ -593,6 +582,7 @@ a.button-setup {
|
|||
.m20r {margin-right: 20px;}
|
||||
.m15r {margin-right: 15px;}
|
||||
.m20t {margin-top: 20px;}
|
||||
.m20tp {margin-top: 20%;}
|
||||
.m5 {margin: 5px;}
|
||||
.m10 {margin: 10px;}
|
||||
.m15 {margin: 15px;}
|
||||
|
|
@ -615,6 +605,7 @@ a.button-setup {
|
|||
.m-negative-l {margin-left: -0.9375rem;}
|
||||
.br100 {border-radius: 100%;}
|
||||
.lh {line-height: 0;}
|
||||
.lh140 {line-height: 140%;}
|
||||
.oh {overflow:hidden;}
|
||||
.vm {vertical-align: middle;}
|
||||
.ma { margin: 0 auto;}
|
||||
|
|
@ -1512,6 +1503,10 @@ a.text-warning:hover {color: #FD7262;}
|
|||
}
|
||||
|
||||
@media only screen and (max-width: 40em) {
|
||||
dialog.tiny, .reveal-modal.tiny {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
dialog.large, .reveal-modal.large {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
|
|
@ -1837,3 +1832,19 @@ a.text-warning:hover {color: #FD7262;}
|
|||
font-weight: normal;
|
||||
}
|
||||
|
||||
.reveal-modal .close-reveal-modal, dialog .close-reveal-modal {
|
||||
padding: 5px 10px;
|
||||
position: relative;
|
||||
font-weight: normal;
|
||||
border: 1px solid #bbb;
|
||||
font-size: 22px;
|
||||
background:#eee;
|
||||
right:0;
|
||||
top:0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.reveal-modal .close-reveal-modal:hover, dialog .close-reveal-modal:hover {
|
||||
background:#ddd;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -116,7 +116,6 @@
|
|||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.tab-bar h1 {
|
||||
font-weight: 100;
|
||||
text-align: center;
|
||||
|
|
|
|||
|
|
@ -48,14 +48,18 @@ angular.module('copayApp.controllers').controller('HomeWalletController', functi
|
|||
};
|
||||
|
||||
|
||||
var $outScope = $scope;
|
||||
$scope.openTxModal = function(tx) {
|
||||
var ModalInstanceCtrl = function($scope, $modalInstance) {
|
||||
$scope.tx = tx;
|
||||
$scope.getShortNetworkName = function() {
|
||||
var w = $rootScope.wallet;
|
||||
return w.getNetworkName().substring(0, 4);
|
||||
$scope.sign = function(ntxid) {
|
||||
$outScope.sign(ntxid);
|
||||
$modalInstance.dismiss('cancel');
|
||||
};
|
||||
$scope.reject = function(ntxid) {
|
||||
$outScope.reject(ntxid);
|
||||
$modalInstance.dismiss('cancel');
|
||||
};
|
||||
|
||||
$scope.cancel = function() {
|
||||
$modalInstance.dismiss('cancel');
|
||||
};
|
||||
|
|
|
|||
|
|
@ -399,7 +399,11 @@ angular.module('copayApp.controllers').controller('SendController',
|
|||
if (err) {
|
||||
copay.logger.warn(err);
|
||||
$scope.resetForm();
|
||||
$scope.error = err.toString();
|
||||
var msg = err.toString();
|
||||
if (msg.match('HTTP')) {
|
||||
msg = 'Could not fetch payment information';
|
||||
}
|
||||
$scope.error = msg;
|
||||
} else {
|
||||
$scope._merchantData = merchantData;
|
||||
$scope._domain = merchantData.domain;
|
||||
|
|
|
|||
|
|
@ -13,51 +13,39 @@
|
|||
</div>
|
||||
<div class="row" ng-if="blockchain_txs[0].txid">
|
||||
<div class="large-12 columns">
|
||||
<div class="panel" ng-repeat="btx in blockchain_txs | orderBy:'-ts'" ng-click="openTxModal(btx)">
|
||||
<div class="row size-14">
|
||||
<div class="panel oh">
|
||||
<div ng-repeat="btx in blockchain_txs | orderBy:'-ts'" ng-click="openTxModal(btx)" ng-class="{'line-b':!$last}" class="last-transactions-content">
|
||||
|
||||
<div class="large-2 medium-3 small-4 columns">
|
||||
<div class="tx-date oh">
|
||||
<time ng-if="btx.ts">{{btx.ts | amTimeAgo}}</time>
|
||||
<span class="label alert" ng-show="!btx.ts && (!btx.confirmations || btx.confirmations == 0)">
|
||||
<span translate>Unconfirmed</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="large-4 medium-9 small-8 columns text-right">
|
||||
<span class="tx-amount " ng-class="{
|
||||
'text-primary' : btx.action == 'received',
|
||||
'text-warning': btx.action == 'sent',
|
||||
'text-gray': btx.action == 'moved'}">
|
||||
<b>{{btx.amount}} {{$root.wallet.settings.unitName}}</b>
|
||||
<span class="alt-currency" ng-class="{
|
||||
'green' : btx.action == 'received',
|
||||
'red': btx.action == 'sent',
|
||||
'gray': btx.action == 'moved'}" ng-show="btx.alternativeAmount != null">
|
||||
{{btx.alternativeAmount}} {{$root.wallet.settings.alternativeIsoCode}}
|
||||
</span>
|
||||
<div class="row">
|
||||
<div class="large-6 medium-6 small-12 columns size-16">
|
||||
<div class="ellipsis m10b">
|
||||
<time ng-if="btx.ts">{{btx.ts | amTimeAgo}}</time>
|
||||
<span class="label alert" ng-show="!btx.ts && (!btx.confirmations || btx.confirmations == 0)">
|
||||
<span translate>Unconfirmed</span>
|
||||
</span>
|
||||
<span 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',
|
||||
'fi-arrow-right': btx.action == 'sent',
|
||||
'fi-loop': btx.action == 'moved'}"></i>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="large-6 medium-12 small-12 columns text-gray">
|
||||
<div class="tx-comment" ng-show="btx.comment">
|
||||
<i class="fi-comment-quotes"></i> {{btx.comment}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="large-6 medium-6 small-12 columns">
|
||||
<div class="text-right" ng-class="{
|
||||
'text-primary' : btx.action == 'received',
|
||||
'text-warning': btx.action == 'sent',
|
||||
'text-gray': btx.action == 'moved'}">
|
||||
<span class="size-21">
|
||||
<span ng-if="!$root.updatingBalance">
|
||||
<span ng-if="btx.action == 'received'">+</span><span ng-if="btx.action == 'sent'">-</span>{{btx.amount}}
|
||||
</span>
|
||||
{{$root.wallet.settings.unitName}}
|
||||
</span>
|
||||
<span class="size-14 db m5t text-gray">
|
||||
{{btx.alternativeAmount}} {{$root.wallet.settings.alternativeIsoCode}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="blockchain_txs[0].txid">
|
||||
<div class="row">
|
||||
|
|
|
|||
|
|
@ -32,9 +32,11 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row ">
|
||||
<div class="large-12 columns line-t m10t">
|
||||
<div class="right size-10">
|
||||
<div class="right size-12">
|
||||
<span ng-if="!$root.wallet.isShared()">Personal Wallet</span>
|
||||
<span ng-if="$root.wallet.isShared()">
|
||||
Multisignature wallet [{{$root.wallet.requiredCopayers}} of {{$root.wallet.totalCopayers}} ]
|
||||
|
|
@ -53,8 +55,16 @@
|
|||
<div class="large-12 columns">
|
||||
<div class="panel oh">
|
||||
<h2 class="line-b" translate>Spend proposals</h2>
|
||||
<div class="last-transactions pr" ng-repeat="tx in $root.wallet.pendingTxProposals | paged" ng-include="'views/includes/transaction.html'" ng-if="$root.wallet.pendingTxProposals[0]">
|
||||
<div class="last-transactions pr" ng-repeat="tx in $root.wallet.pendingTxProposals | orderBy:'-createdTs'" ng-include="'views/includes/transaction.html'" ng-if="$root.wallet.pendingTxProposals[0]">
|
||||
</div>
|
||||
|
||||
<div class="text-right size-12 line-t m10t p10t" ng-show="$root.wallet.balanceInfo.lockedBalance && !$root.wallet.balanceInfo.updatingBalance">
|
||||
Total Locked Balance:
|
||||
<b>{{$root.wallet.balanceInfo.lockedBalance}} {{$root.wallet.settings.unitName}} </b>
|
||||
<span class="text-gray"> {{$root.wallet.balanceInfo.lockedBalanceAlternative}} {{$root.wallet.balanceInfo.alternativeIsoCode}} </span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="pr" ng-if="!$root.wallet.pendingTxProposals[0]">
|
||||
<p> No pending spend proposals at the moment.
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -36,18 +36,13 @@
|
|||
</header>
|
||||
<div class="locked" ng-show="$root.wallet.balanceInfo.lockedBalance && !walletSelection">
|
||||
<span class="text-gray">
|
||||
<i class="fi-lock"></i> {{'Locked'|translate}}
|
||||
{{'Locked'|translate}}
|
||||
</span>
|
||||
<span ng-if="$root.wallet.balanceInfo.updatingBalance"><i class="fi-bitcoin-circle icon-rotate spinner"></i></span>
|
||||
<span ng-if="$root.wallet && !$root.wallet.balanceInfo.updatingBalance" class="text-gray">
|
||||
<b>{{$root.wallet.balanceInfo.lockedBalance}} {{$root.wallet.settings.unitName}} </b>
|
||||
- {{$root.wallet.balanceInfo.lockedBalanceAlternative}} {{$root.wallet.balanceInfo.alternativeIsoCode}}
|
||||
</span>
|
||||
<i class="fi-info medium right text-gray size-14"
|
||||
tooltip="{{'Balance locked in pending transaction proposals'|translate}}"
|
||||
tooltip-placement="left"
|
||||
data-options="disable_for_touch:true"
|
||||
tooltip-popup-delay='500'></i>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,92 +1,35 @@
|
|||
<div class="last-transactions-header row collapse" ng-init="txIndex = $index" ng-click="openTxModal(tx)">
|
||||
<div class="large-9 small-7 columns size-14">
|
||||
<div ng-show="tx.comment">
|
||||
<i class="fi-comment-quotes size-18 vm"></i>
|
||||
<span class="text-light">{{tx.comment}}</span>
|
||||
</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="last-transactions-content" ng-class="{'line-b':!$last}" ng-click="openTxModal(tx)">
|
||||
<div class="row" ng-repeat="out in tx.outs">
|
||||
<div class="large-5 medium-5 small-6 columns size-14">
|
||||
<b>{{out.value}} {{$root.wallet.settings.unitName}}</b>
|
||||
<span ng-show="out.alternativeAmount" class="alt-currency gray">
|
||||
{{out.alternativeAmount}} {{out.alternativeIsoCode}}
|
||||
<div class="large-6 medium-6 small-12 columns size-16">
|
||||
<div class="ellipsis m10b" ng-init="pendingForUs = !tx.signedBy[$root.wallet.getMyCopayerId()] && !tx.rejectedBy[$root.wallet.getMyCopayerId()]">
|
||||
|
||||
<span ng-class="{'color-alert':pendingForUs, 'hidden':!pendingForUs} "> ● </span>
|
||||
|
||||
To:
|
||||
<span ng-if="tx.merchant">
|
||||
<span ng-show="tx.merchant.pr.ca"><i class="fi-lock"></i> {{tx.merchant.domain}}</span>
|
||||
<span ng-show="!tx.merchant.pr.ca"><i class="fi-unlock"></i> {{tx.merchant.domain}}</span>
|
||||
</span>
|
||||
</span>
|
||||
<contact address="{{out.address}}" ng-hide="tx.merchant"> </contact>
|
||||
</div>
|
||||
</div>
|
||||
<div class="large-2 medium-2 small-1 columns text-center">
|
||||
<i class="fi-arrow-right"></i>
|
||||
</div>
|
||||
<div class="large-5 medium m0-5 small-5 columns ellipsis size-12">
|
||||
<div ng-if="tx.merchant">
|
||||
<span ng-show="tx.merchant.pr.ca"><i class="fi-lock color-greeni"></i> {{tx.merchant.domain}}</span>
|
||||
<span ng-show="!tx.merchant.pr.ca"><i class="fi-unlock color-yellowi"></i> {{tx.merchant.domain}}</span>
|
||||
|
||||
<div class="large-6 medium-6 small-12 columns">
|
||||
<div class="text-right">
|
||||
<span class="size-21">
|
||||
<span ng-if="!$root.updatingBalance">
|
||||
{{out.value}}
|
||||
</span>
|
||||
{{$root.wallet.settings.unitName}}
|
||||
</span>
|
||||
<span class="size-14 db m5t text-gray">
|
||||
{{out.alternativeAmount}} {{out.alternativeIsoCode}}
|
||||
</span>
|
||||
</div>
|
||||
<contact address="{{out.address}}" tooltip-popup-delay="500" tooltip tooltip-placement="right" ng-hide="tx.merchant" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="last-transactions-footer" ng-init="myId = $root.wallet.getMyCopayerId()">
|
||||
<div class="row collapse">
|
||||
<div class="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>Signed by me</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>Rejected by me</span>
|
||||
</button>
|
||||
</div>
|
||||
<div ng-show="!tx.signedBy[myId] && !tx.rejectedBy[myId]">
|
||||
<div class="row">
|
||||
<div class="large-6 medium-6 small-6 columns text-left">
|
||||
<button class="button warning tiny m0" ng-click="reject(tx.ntxid)" ng-disabled="loading">
|
||||
<i class="fi-x icon-sign x"></i> <span translate>Reject</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="large-6 medium-6 small-6 columns text-right">
|
||||
<button class="button primary tiny m0" ng-click="sign(tx.ntxid)" ng-disabled="loading">
|
||||
<i class="fi-check icon-sign check"></i> <span translate>Sign</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-show="!tx.missingSignatures && !tx.sentTs">
|
||||
<button class="primary tiny m0" ng-click="broadcast(tx.ntxid)" ng-disabled="loading"> <i class="fi-upload-cloud"></i>
|
||||
<span translate>Broadcast Transaction</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row collapse">
|
||||
<div class="small-12 small text-gray text-center">
|
||||
<span 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>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,30 +1,39 @@
|
|||
<a class="close-reveal-modal" ng-click="cancel()">×</a>
|
||||
|
||||
<div class="size-14">
|
||||
<h1 class="m30v">Payment Request</h1>
|
||||
|
||||
<p>
|
||||
<b translate>Signature:</b> {{md.domain}}
|
||||
<span ng-show="md.pr.ca"><i class="fi-lock color-greeni"></i> {{md.pr.ca}}</span>
|
||||
<span ng-show="!md.pr.ca"><i class="fi-unlock color-yellowi"></i> Untrusted</span>
|
||||
<p>
|
||||
<b translate>Merchant Message:</b>
|
||||
<br>
|
||||
{{md.pr.pd.memo || address}}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b translate>Amount:</b>
|
||||
{{md.unitTotal}} {{$root.wallet.settings.unitName}}
|
||||
<span class="text-gray" ng-if="isRateAvailable">
|
||||
{{ alternative }} {{ alternativeIsoCode }}
|
||||
</span>
|
||||
|
||||
<div ng-if="md.expirationDate" class="m10v">
|
||||
<b>Expires</b>: {{md.expirationDate | amTimeAgo }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-right">
|
||||
<a class="close-reveal-modal" ng-click="cancel()">Close</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="m20t text-center ">
|
||||
<div class="size-48">
|
||||
{{md.unitTotal}} {{$root.wallet.settings.unitName}}
|
||||
</div>
|
||||
<div class="size-18 m5t text-gray">
|
||||
{{ alternative }} {{ alternativeIsoCode }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="line-b m10v"></div>
|
||||
|
||||
<div class="ellipsis m10v">
|
||||
<i>To:</i> {{md.domain}}
|
||||
</div>
|
||||
|
||||
<div class="m10v">
|
||||
<i>Certified by:</i>
|
||||
<span ng-show="md.pr.ca"><i class="fi-lock color-greeni"></i> {{md.pr.ca}}</span>
|
||||
<span ng-show="!md.pr.ca"><i class="fi-unlock color-yellowi"></i> Untrusted</span>
|
||||
</div>
|
||||
|
||||
<div ng-if="md.pr.pd.memo" class="m10v lh140">
|
||||
<i>Merchant Message:</i> <span class="text-gray">
|
||||
{{md.pr.pd.memo}}
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-if="md.expirationDate" class="m10v">
|
||||
<i>Expires:</i> {{md.expirationDate | amTimeAgo }}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,103 +1,84 @@
|
|||
|
||||
<a class="close-reveal-modal" ng-click="cancel()">×</a>
|
||||
|
||||
<div class="size-14">
|
||||
<div class="text-center size-72 m20t">
|
||||
<div ng-class="{
|
||||
'text-primary' : btx.action == 'received',
|
||||
'text-warning': btx.action == 'sent',
|
||||
'text-gray': btx.action == 'moved'}">
|
||||
<i ng-class="{
|
||||
'fi-arrow-left' : btx.action == 'received',
|
||||
'fi-arrow-right': btx.action == 'sent',
|
||||
'fi-loop': btx.action == 'moved'}"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center" class="m10v">
|
||||
<div class="tx-amount" ng-class="{
|
||||
'text-primary' : btx.action == 'received',
|
||||
'text-warning': btx.action == 'sent',
|
||||
'text-gray': btx.action == 'moved'}">
|
||||
<b>{{btx.amount}} {{$root.wallet.settings.unitName}}</b>
|
||||
<span class="alt-currency" ng-class="{
|
||||
'green' : btx.action == 'received',
|
||||
'red': btx.action == 'sent',
|
||||
'gray': btx.action == 'moved'}" ng-show="btx.alternativeAmount != null">
|
||||
{{btx.alternativeAmount}} {{$root.wallet.settings.alternativeIsoCode}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="line-b m10t"></div>
|
||||
<h2>Transaction Details</h2>
|
||||
|
||||
<div class="m20v" ng-show="btx.comment">
|
||||
<i class="fi-comment-quotes"></i> {{btx.comment}}
|
||||
</div>
|
||||
|
||||
<div ng-if="btx.ts || btx.createdTs " class="m10v">
|
||||
<i translate>Date:</i>
|
||||
<time> <span>{{ (btx.ts || btx.createdTs ) | amCalendar}}</span>
|
||||
</time>
|
||||
|
||||
[
|
||||
<time>{{ (btx.ts || btx.createdTs ) | amTimeAgo}}</time>]
|
||||
</div>
|
||||
|
||||
<div class="m10v">
|
||||
<span class="label alert" ng-show="!btx.ts && (!btx.confirmations || btx.confirmations == 0)">
|
||||
<span translate>Unconfirmed</span>
|
||||
</span>
|
||||
<span ng-show="btx.confirmations>0" class="m10v">
|
||||
<i translate>Confirmations:</i>
|
||||
<span class="text-gray">{{btx.confirmations}}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div ng-if="btx.addressTo" class="m10v">
|
||||
<span class="ellipsis">
|
||||
<i>To:</i>
|
||||
<span ng-if="btx.merchant">
|
||||
<span ng-show="btx.merchant.pr.ca"><i class="fi-lock color-greeni"></i> {{btx.merchant.domain}}</span>
|
||||
<span ng-show="!btx.merchant.pr.ca"><i class="fi-unlock color-yellowi"></i> {{btx.merchant.domain}}</span>
|
||||
</span>
|
||||
|
||||
<span ng-if="!btx.merchant">
|
||||
<span class="text-gray"> {{btx.labelTo || btx.addressTo}}</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div ng-if="btx.merchant" class="m10v">
|
||||
{{btx.merchant.pr.pd.memo}}
|
||||
</div>
|
||||
|
||||
<div ng-if="btx.actionList[0]" class="m10v">
|
||||
<i>Signatures</i>
|
||||
<ul class="tx-copayers m10t" ng-if="btx.actionList[0]">
|
||||
<li ng-repeat="c in btx.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>
|
||||
</div>
|
||||
|
||||
<div class="m10t oh" ng-if="btx.txid">
|
||||
<div class="ellipsis text-gray" > ID: {{btx.txid}} </span>
|
||||
</div>
|
||||
|
||||
<a class="right button-setup" ng-click="$root.openExternalLink('http://' + getShortNetworkName() + '.insight.is/tx/' + btx.txid)">
|
||||
See it on the blockchain <i class="icon-arrow-right2 vm"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<a class="close-reveal-modal" ng-click="cancel()">Close</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="m20t text-center">
|
||||
<div class="size-48" ng-class="{
|
||||
'text-primary' : btx.action == 'received',
|
||||
'text-warning': btx.action == 'sent',
|
||||
'text-gray': btx.action == 'moved'}">
|
||||
<span ng-if="btx.action == 'received'">+</span><span ng-if="btx.action == 'sent'">-</span>{{btx.amount}}
|
||||
{{$root.wallet.settings.unitName}}
|
||||
</div>
|
||||
<div class="size-18 m5t text-gray">
|
||||
{{btx.alternativeAmount}} {{$root.wallet.settings.alternativeIsoCode}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="line-b m10t"></div>
|
||||
<div ng-if="btx.ts || btx.createdTs " class="m10v">
|
||||
<time >{{ (btx.ts || btx.createdTs ) | amCalendar}}</time>
|
||||
<time class="text-gray">[ {{ (btx.ts || btx.createdTs ) | amTimeAgo}} ]</time>
|
||||
</div>
|
||||
|
||||
<div class="m10v" ng-show="btx.comment">
|
||||
<i>Note:</i> {{btx.comment}}
|
||||
</div>
|
||||
|
||||
<div ng-if="btx.addressTo" class="m10v">
|
||||
<span class="ellipsis">
|
||||
<i>To:</i>
|
||||
<span ng-if="btx.merchant">
|
||||
<span ng-show="btx.merchant.pr.ca"><i class="fi-lock color-greeni"></i> {{btx.merchant.domain}}</span>
|
||||
<span ng-show="!btx.merchant.pr.ca"><i class="fi-unlock color-yellowi"></i> {{btx.merchant.domain}}</span>
|
||||
</span>
|
||||
|
||||
<span ng-if="!btx.merchant">
|
||||
<span class="text-gray"> {{btx.labelTo || btx.addressTo}}</span>
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div ng-if="btx.merchant" class="lh140 m10v">
|
||||
<i>Merchant Message:</i> <span class="text-gray">{{btx.merchant.pr.pd.memo}}</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="m10v">
|
||||
<span class="label alert" ng-show="!btx.ts && (!btx.confirmations || btx.confirmations == 0)">
|
||||
<span translate>Unconfirmed</span>
|
||||
</span>
|
||||
<span ng-show="btx.confirmations>0" class="m10v">
|
||||
<i translate>Confirmations:</i>
|
||||
<span class="text-gray">{{btx.confirmations}}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div ng-if="btx.actionList[0]" class="m10v">
|
||||
<i>Signatures:</i>
|
||||
<ul class="tx-copayers m10t" ng-if="btx.actionList[0]">
|
||||
<li ng-repeat="c in btx.actionList" ng-class="{'bottom-line-copayers':!$last}" ng-if="c.actions.rejected || c.actions.sign || c.actions.create">
|
||||
<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>
|
||||
</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>
|
||||
</div>
|
||||
|
||||
<div class="ellipsis text-gray m10v" ng-if="btx.txid" > ID: {{btx.txid}} </span>
|
||||
</div>
|
||||
|
||||
<div class="oh">
|
||||
<a class="button-setup right" ng-click="$root.openExternalLink('http://' + getShortNetworkName() + '.insight.is/tx/' + btx.txid)" ng-if="btx.txid">
|
||||
See it on the blockchain <i class="icon-arrow-right2 vm"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
<div class="size-14">
|
||||
|
||||
<div class="m20tp">
|
||||
<div class="text-center size-72 m10v">
|
||||
<div class="text-primary">
|
||||
<i class="fi-check"></i>
|
||||
|
|
|
|||
|
|
@ -1,78 +1,74 @@
|
|||
|
||||
<a class="close-reveal-modal" ng-click="cancel()">×</a>
|
||||
<div class="text-right">
|
||||
<a class="close-reveal-modal" ng-click="cancel()">Close</a>
|
||||
</div>
|
||||
|
||||
<h1 class="m30v">Transaction Proposal Details</h1>
|
||||
|
||||
<div class="row" ng-repeat="out in tx.outs">
|
||||
<div class="large-5 medium-5 small-6 columns size-14">
|
||||
<b>{{out.value}} {{$root.wallet.settings.unitName}}</b>
|
||||
<span ng-show="out.alternativeAmount" class="alt-currency gray">
|
||||
{{out.alternativeAmount}} {{out.alternativeIsoCode}}
|
||||
</span>
|
||||
<div ng-repeat="out in tx.outs">
|
||||
<div class="m20t text-center ">
|
||||
<div class="size-48">
|
||||
{{out.value}} {{$root.wallet.settings.unitName}}
|
||||
</div>
|
||||
<div class="large-2 medium-2 small-1 columns text-center">
|
||||
<i class="fi-arrow-right"></i>
|
||||
<div class="size-18 m5t text-gray">
|
||||
{{out.alternativeAmount}} {{out.alternativeIsoCode}}
|
||||
</div>
|
||||
<div class="large-5 medium m0-5 small-5 columns ellipsis size-12">
|
||||
<div ng-if="tx.merchant">
|
||||
<span ng-show="tx.merchant.pr.ca"><i class="fi-lock color-greeni"></i> {{tx.merchant.domain}}</span>
|
||||
<span ng-show="!tx.merchant.pr.ca"><i class="fi-unlock color-yellowi"></i> {{tx.merchant.domain}}</span>
|
||||
</span>
|
||||
</div>
|
||||
<contact address="{{out.address}}" tooltip-popup-delay="500" tooltip tooltip-placement="right" ng-hide="tx.merchant" />
|
||||
</div>
|
||||
|
||||
<div class="text-light size-14">{{tx.comment}}</div>
|
||||
|
||||
<div class="line-b m10t"></div>
|
||||
|
||||
<div ng-if="tx.merchant" class="m20v">
|
||||
{{tx.merchant.pr.pd.memo}}
|
||||
</div>
|
||||
<div class="line-b m10v"></div>
|
||||
|
||||
|
||||
|
||||
<div ng-if="tx.createdTs " class="m10v">
|
||||
<i translate>Date:</i>
|
||||
<time> <span>{{ tx.createdTs | amCalendar}}</span></time>
|
||||
|
||||
[<time>{{ tx.createdTs | amTimeAgo}}</time>]
|
||||
</div>
|
||||
|
||||
<div ng-if="tx.addressTo" class="m10v">
|
||||
<span class="ellipsis">
|
||||
<i>To:</i>
|
||||
<span ng-if="tx.merchant">
|
||||
<span ng-show="tx.merchant.pr.ca"><i class="fi-lock color-greeni"></i> {{tx.merchant.domain}}</span>
|
||||
<span ng-show="!tx.merchant.pr.ca"><i class="fi-unlock color-yellowi"></i> {{tx.merchant.domain}}</span>
|
||||
</span>
|
||||
|
||||
<span ng-if="!tx.merchant">
|
||||
<span class="text-gray"> {{tx.labelTo || tx.addressTo}}</span>
|
||||
</span>
|
||||
<div class="ellipsis m10v">
|
||||
To:
|
||||
<span ng-if="tx.merchant">
|
||||
<span ng-show="tx.merchant.pr.ca"><i class="fi-lock color-greeni"></i> {{tx.merchant.domain}}</span>
|
||||
<span ng-show="!tx.merchant.pr.ca"><i class="fi-unlock color-yellowi"></i> {{tx.merchant.domain}}</span>
|
||||
</span>
|
||||
</span>
|
||||
<contact address="{{out.address}}" ng-hide="tx.merchant"></contact>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="tx.merchant && tx.merchant.expirationDate" class="m10v">
|
||||
<i>Expires</i>: {{tx.merchant.expirationDate | amTimeAgo }}
|
||||
</div>
|
||||
<div ng-if="tx.ts || tx.createdTs " class="m10v">
|
||||
<time>{{ (tx.ts || tx.createdTs ) | amCalendar}}</time>
|
||||
<time class="text-gray">[ {{ (tx.ts || tx.createdTs ) | amTimeAgo}} ]</time>
|
||||
</div>
|
||||
|
||||
<div class="m10v" ng-show="tx.comment">
|
||||
<i>Note:</i> {{tx.comment}}
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-if="tx.actionList[0]" class="m10v">
|
||||
<i>Signatures</i>
|
||||
<ul class="tx-copayers m10t" ng-if="tx.actionList[0]">
|
||||
<li ng-repeat="c in tx.actionList" ng-class="{'bottom-line-copayers':!$last}">
|
||||
<span>
|
||||
<div ng-if="tx.merchant" class="lh140">
|
||||
<i>Merchant Message:</i> <span class="text-gray">{{tx.merchant.pr.pd.memo}}</span>
|
||||
</div>
|
||||
<div ng-if="tx.merchant && tx.merchant.expirationDate" class="m10v">
|
||||
<i>Expires</i>: {{tx.merchant.expirationDate | amTimeAgo }}
|
||||
</div>
|
||||
|
||||
<div ng-if="tx.actionList[0]" class="m10v">
|
||||
<i>Signatures:</i>
|
||||
<ul class="tx-copayers m10t" ng-if="tx.actionList[0]">
|
||||
<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>
|
||||
<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>
|
||||
<span>{{c.cId === $root.wallet.getMyCopayerId() ? 'Me' : $root.wallet.publicKeyRing.nicknameForCopayer(c.cId)}}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="row collapse" ng-show="!tx.signedBy[$root.wallet.getMyCopayerId()] && !tx.rejectedBy[$root.wallet.getMyCopayerId()]">
|
||||
<div class="large-6 medium-6 small-6 columns">
|
||||
<button class="button warning m0" ng-click="reject(tx.ntxid)" ng-disabled="loading">
|
||||
<i class="fi-x icon-sign x"></i> <span translate>Reject</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="large-6 medium-6 small-6 columns text-right">
|
||||
<button class="button primary m0" ng-click="sign(tx.ntxid)" ng-disabled="loading">
|
||||
<i class="fi-check icon-sign check"></i> <span translate>Sign</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
|
||||
<div class="text-right">
|
||||
<a class="close-reveal-modal" ng-click="cancel()">Close</a>
|
||||
</div>
|
||||
|
||||
<div class="text-center" ng-init="isComplete = item.isComplete(); networkName = item.getNetworkName()">
|
||||
<h1>{{item.name || item.id }}</h1>
|
||||
<h3>
|
||||
|
|
@ -54,5 +59,4 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<a class="close-reveal-modal" ng-click="close()">×</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
<div ng-init="setWallets()">
|
||||
|
||||
<a class="close-reveal-modal" ng-click="cancel()">×</a>
|
||||
<div class="text-right">
|
||||
<a class="close-reveal-modal" ng-click="cancel()">Close</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-init="setWallets()">
|
||||
|
||||
<h1 class="line-b"> Select a wallet to make the payment</h1>
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,22 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="row" ng-show="fetchingURL">
|
||||
<div class="large-12 columns">
|
||||
<div class="panel">
|
||||
<div class="box-notification">
|
||||
<div class="box-icon secondary">
|
||||
<i class="fi-bitcoin-circle icon-rotate spinner size-24"></i>
|
||||
</div>
|
||||
<span class="text-secondary size-14">
|
||||
Fetching Payment Information...
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="!fetchingURL">
|
||||
<div class="large-12 columns">
|
||||
<form name="sendForm" ng-submit="submitForm(sendForm)" novalidate>
|
||||
<div class="panel">
|
||||
|
|
@ -17,6 +32,7 @@
|
|||
<span class="text-warning size-14">
|
||||
{{error|translate}}
|
||||
</span>
|
||||
<a class="close-notification text-warning" ng-click="error=null">×</a>
|
||||
</div>
|
||||
<div class="box-notification" ng-show="success">
|
||||
<div class="box-icon success">
|
||||
|
|
@ -25,6 +41,7 @@
|
|||
<span class="text-success size-14">
|
||||
{{success|translate}}
|
||||
</span>
|
||||
<a class="close-notification text-success" ng-click="success=null">×</a>
|
||||
</div>
|
||||
|
||||
<div ng-if="!_merchantData">
|
||||
|
|
@ -67,10 +84,10 @@
|
|||
<span translate>Payment to</span>
|
||||
</label>
|
||||
|
||||
<div class="input">
|
||||
<input type="text" id="domain" name="domain" ng-model="_domain" ng-disabled="1">
|
||||
<i class="fi-lock color-greeni"></i>
|
||||
</div>
|
||||
<div class="input">
|
||||
<input type="text" id="domain" name="domain" ng-model="_domain" ng-disabled="1">
|
||||
<i class="fi-lock color-greeni"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -120,15 +137,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-show="fetchingURL">
|
||||
<div class="large-12 columns">
|
||||
<p>>>
|
||||
<i class="fi-bitcoin-circle icon-rotate spinner"></i>
|
||||
Fetching payment request
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<label for="comment"><span translate>Note</span>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue