Merge pull request #648 from msalcala11/txDetailStyling

Better transaction detail view styling
This commit is contained in:
Matias Alejo Garcia 2016-10-22 21:52:17 -03:00 committed by GitHub
commit 8f46973240
9 changed files with 177 additions and 211 deletions

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="25px" height="25px" viewBox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 40.1 (33804) - http://www.bohemiancoding.com/sketch -->
<title>Group</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Wallet" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="1.4---Transaction-(Detail)" transform="translate(-39.000000, -914.000000)">
<g id="Group-2-Copy-6" transform="translate(41.000000, 909.000000)">
<g id="Group" transform="translate(0.000000, 7.000000)">
<path d="M10.5,21 C16.2989899,21 21,16.2989899 21,10.5 C21,4.70101013 16.2989899,0 10.5,0 C4.70101013,0 0,4.70101013 0,10.5 C0,16.2989899 4.70101013,21 10.5,21 Z" id="Oval-2-Copy-3" stroke="#13E5B6" stroke-width="3" fill="#13E5B6"></path>
<path d="M4.8565172,10.7739543 L17.6308211,10.7739543 M9.55650668,16.6261508 L3.82082067,10.8572239 L9.35708555,5.17917933" id="Line" stroke="#FFFFFF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="translate(10.725821, 10.902665) scale(1, -1) rotate(-135.000000) translate(-10.725821, -10.902665) "></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="33px" height="33px" viewBox="0 0 33 33" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 40.1 (33804) - http://www.bohemiancoding.com/sketch -->
<title>Group</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Icons/Transaction/Complete" transform="translate(-8.000000, -8.000000)">
<g id="Icons/Send">
<g id="Group" transform="translate(8.000000, 8.000000)">
<path d="M16.5,33 C25.6126984,33 33,25.6126984 33,16.5 C33,7.38730163 25.6126984,0 16.5,0 C7.38730163,0 0,7.38730163 0,16.5 C0,25.6126984 7.38730163,33 16.5,33 Z" id="Oval-204" fill="#F2FEF7"></path>
<polyline id="Shape" stroke="#12E5B6" stroke-width="2" points="8 17 15 24 25.5 10"></polyline>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1,178 +1,90 @@
<ion-modal-view ng-controller="txDetailsController" ng-init="init()" id="tx-details">
<ion-header-bar align-title="center" class="bar-royal" ng-style="{'background-color': color, 'border-color': color}">
<button class="button button-clear" ng-click="cancel()">
{{'Close' | translate}}
</button>
<div class="title">
<ion-view id="view-confirm" hide-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-title>
{{title}}
</div>
</ion-header-bar>
</ion-nav-title>
<ion-nav-back-button>
</ion-nav-back-button>
</ion-nav-bar>
<ion-content>
<div class="header-modal text-center" ng-init="showRate = false">
<div ng-show="btx.action != 'invalid'">
<i class="icon big-icon-svg">
<img src="img/icon-wallet.svg" ng-style="{'background-color': color}" class="bg"/>
</i>
<div class="size-36 m20t" copy-to-clipboard="btx.amountStr">
{{btx.amountStr}}
</div>
<div class="m10t" style="height:20px;" ng-click="showRate =! showRate">
<span ng-show="!showRate && alternativeAmountStr">
{{alternativeAmountStr}}
</span>
<span ng-show="showRate && alternativeAmountStr">
{{rateStr}} ({{rateDate | amDateFormat:'MM/DD/YYYY HH:mm a'}})
</span>
</div>
</div>
<div ng-show="btx.action == 'sent'">
<div>
<span translate>Sent from</span>
<strong ng-style="{'color': color}">{{wallet.credentials.walletName}}</strong>
</div>
<i class="icon ion-ios-arrow-thin-down size-24"></i>
</div>
<div ng-show="btx.action == 'received'">
<div class="padding-vertical">
<i class="icon ion-ios-arrow-thin-up size-24"></i>
</div>
<span translate>Received Funds</span>
</div>
<div ng-show="btx.action == 'moved'">
<span translate>Moved Funds</span>
</div>
<div ng-show="btx.action == 'invalid'">
-
</div>
</div>
<div class="list">
<div class="item item-icon-left" ng-show="btx.action == 'sent' && !btx.hasMultiplesOutputs && btx.addressTo && btx.addressTo != 'N/A'">
<i class="icon icon-svg"><img src="img/icon-bitcoin-symbol.svg"></i>
<div copy-to-clipboard="btx.addressTo">
<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 ng-show="btx.labelTo">{{btx.labelTo}}</span>
<contact ng-show="!btx.labelTo" address="{{btx.addressTo}}"></contact>
</span>
<div class="item head">
<div class="sending-label">
<img src="img/icon-check-circled.svg">
<span translate>{{btx.action | translate}}</span>
</div>
<div class="amount-label">
<div class="amount">{{displayAmount}} <span class="unit">{{displayUnit}}</span></div>
<div class="alternative">{{btx.alternativeAmountStr}}</div>
</div>
</div>
<div ng-show="btx.hasMultiplesOutputs" class="item item-icon-right item-heading" ng-click="showMultiplesOutputs = !showMultiplesOutputs">
{{'Recipients'|translate}}
[ {{btx.recipientCount}} ]
<i class="icon bp-arrow-up" ng-show="showMultiplesOutputs"></i>
<i class="icon bp-arrow-down" ng-show="!showMultiplesOutputs"></i>
</div>
<div class="item" ng-show="btx.hasMultiplesOutputs && showMultiplesOutputs"
ng-repeat="output in btx.outputs"
ng-include="'views/includes/output.html'">
</div>
<div class="item item-icon-left"
ng-click="openExternalLink('https://' + (getShortNetworkName() == 'test' ? 'test-' : '') + 'insight.bitpay.com/tx/' + btx.txid, true, 'View Transaction on Insight', 'Would you like to view this transaction on the Insight blockchain explorer?', 'Open Insight', 'Go back')">
<i class="icon ion-ios-upload-outline"></i>
<span class="text-gray" translate>View transaction on the blockchain</span>
</div>
<div class="item">
<div ng-if="btx.action == 'received' || btx.action == 'moved'">
{{'Date'|translate}}
<span class="item-note">
<time>{{ btx.time * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>
</span>
</div>
<div ng-if="btx.action == 'sent'">
{{'Created by'|translate}} <strong>{{btx.creatorName}}</strong>
<span class="item-note">
<time>{{ btx.createdOn * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>
</span>
</div>
</div>
<div class="item" ng-if="btx.action != 'received' && btx.feeStr" copy-to-clipboard="btx.feeStr">
{{'Fee'|translate}}: {{btx.feeStr}}
<span class="item-note">
<span class="text-warning" ng-show="!btx.confirmations || btx.confirmations == 0" translate>
Unconfirmed
</span>
<span class="label gray radius" ng-show="btx.confirmations>0 && !btx.safeConfirmed">
{{btx.confirmations}}
</span>
<span class="label gray radius" ng-show="btx.safeConfirmed">
{{btx.safeConfirmed}}
</span>
<span ng-show="btx.confirmations && btx.confirmations > 0" translate>Confirmations</span>
</span>
</div>
<div class="item" ng-if="btx.message && btx.action != 'received'" copy-to-clipboard="btx.message">
{{'Description'|translate}}
<span class="item-note">
{{btx.message}}
</span>
</div>
<div ng-if="btx.merchant" class="item" copy-to-clipboard="btx.merchant.pr.pd.memo">
{{'Merchant message'|translate}}
<span class="item-note">
{{btx.merchant.pr.pd.memo}}
</span>
</div>
<div ng-if="btx.action == 'invalid'" class="item">
<span class="right" translate>
This transaction has become invalid; possibly due to a double spend attempt.
</span>
</div>
<div class="item" ng-click="showCommentPopup()">
{{'Memo'|translate}}
<span class="item-note" translate ng-if="!btx.note">
<i class="icon ion-ios-plus-empty"></i>
</span>
<span class="item-note" ng-if="btx.note && btx.note.body">
{{btx.note.body}}
<div>
<span translate>Edited by</span> {{btx.note.editedByName}},
<time>{{btx.note.editedOn * 1000 | amTimeAgo}}</time>
</div>
</span>
</div>
<div ng-if="actionList[0]">
<div class="item item-divider" translate>Timeline</div>
<div class="item" ng-class="{'action-created' : a.type == 'created' || a.type == 'accept', 'action-rejected' : a.type == 'reject'}" ng-repeat="a in actionList | orderBy: 'time' :true track by $index">
<div class="row">
<div class="col col-10">
<span id="timeline-icon">{{actionList.length - $index}}</span>
<div class="info">
<div class="item" ng-if="btx.action === 'sent'">
<span class="label" translate>To</span>
<span class="payment-proposal-to">
<img ng-if="!cardId" src="img/icon-bitcoin-small.svg">
<img ng-if="cardId" src="img/icon-card.svg" width="34">
<div copy-to-clipboard="toAddress" class="ellipsis">
<contact ng-if="!toName" address="{{btx.addressTo}}" class="ellipsis" style="display: block;"></contact>
<span class="m15l size-14" ng-if="toName">{{toName}}</span>
</div>
<div class="col">
<div>{{a.description}}</div>
</span>
</div>
<div class="item">
<span class="label" ng-if="btx.action === 'sent'" translate>From</span>
<span class="label" ng-if="btx.action !== 'sent'" translate>To</span>
<div class="wallet">
<i class="icon big-icon-svg">
<img src="img/icon-wallet.svg" ng-style="{'background-color': wallet.color}" class="bg"/>
</i>
<div>{{wallet.name}}</div>
</div>
</div>
<a class="item single-line item-icon-right" ng-hide="insuffientFunds" ng-click="showCommentPopup()">
<span class="label" translate>Memo</span>
<span class="item-note m10l">
{{btx.note.body || btx.message}}
</span>
<i class="icon bp-arrow-right"></i>
</a>
<div class="item single-line" ng-hide="insuffientFunds">
<span class="label" translate>Fee</span>
<span class="item-note">
{{btx.feeStr}}
</span>
</div>
<div ng-if="actionList[0]">
<div class="item item-divider" translate>Timeline</div>
<div class="item timeline-item" ng-class="{'action-created' : a.type == 'created' || a.type == 'accept', 'action-rejected' : a.type == 'reject'}" ng-repeat="a in actionList | orderBy: 'time' :true track by $index">
<div class="timeline-content">
<div class="timeline-content__icon">
<div class="rejected" ng-if="a.type === 'reject'">!</div>
<img src="img/icon-broadcasted.svg" ng-if="a.type === 'broadcasted'">
<div ng-if="a.type !== 'reject' && a.type !== 'broadcasted'">
{{actionList.length - $index}}
</div>
</div>
<div class="timeline-content__label">
<div class="action">{{a.description}}</div>
<div class="name">{{a.by}}</div>
</div>
<div>
<span>{{a.by}}</span>
<span class="item-note">
<time>{{ a.time * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>
<time>{{ a.time * 1000 | amDateFormat:'hh:mm a'}}</time>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<button class="view-on-blockchain-btn button button-standard button-primary" ng-click="viewOnBlockchain()" translate>
View on blockchain
</button>
</ion-content>
</ion-modal-view>
</ion-view>