This commit is contained in:
Matias Alejo Garcia 2015-03-06 12:00:10 -03:00
commit 320de62f13
348 changed files with 7745 additions and 30874 deletions

View file

@ -0,0 +1,88 @@
<nav class="tab-bar text-right hide-for-large-up">
<span ng-click="close()" class="p10 text-white" translate>Close</span>
</nav>
<div class="modal-mobile">
<h1 ng-show="!showForm" translate>Address Book</h1>
<h1 ng-show="showForm" translate>Add a new entry</h1>
<p translate class="text-gray m15b" ng-show="!showForm && !hasEntry()" translate>
Empty. Create an alias for your addresses
</p>
<div class="box-notification" ng-show="success">
<div class="box-icon success">
<i class="size-24 fi-check"></i>
</div>
<span class="size-14 text-success">
{{success|translate}}
</span>
</div>
<table class="addressbook line-t" ng-show="!showForm && hasEntry()">
<thead class="show-for-large-up">
<tr>
<th translate>Entry</th>
<th class="show-for-large-up" ng-class="{'hide-for-small-only' : $root.wallet.isShared()}" ng-show="$root.wallet.isShared()" translate>Creator</th>
<th class="show-for-large-up" translate>Date</th>
<th class="show-for-large-up" translate>Visible</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat="(addr, info) in addressBook"
ng-class="{'addressbook-disabled': info.hidden}">
<td ng-click="copyToSend(addr)">
<b>{{info.label}}</b><br>
<small class="address-size">{{::addr}}</small>
</td>
<td class="show-for-large-up" ng-click="copyToSend(addr)" ng-show="$root.wallet.isShared()">{{$root.wallet.publicKeyRing.nicknameForCopayer(info.copayerId)}}</td>
<td ng-click="copyToSend(addr)" class="show-for-large-up"><time>{{::info.createdTs | amCalendar}}</time></td>
<td class="show-for-large-up text-center">
<a ng-click="toggleAddressBookEntry(addr)" title="{{ info.hidden ? 'Enable' : 'Disable'}} address">
<i class="fi-checkbox size-21"
ng-class="{'text-success':!info.hidden, 'text-gray':info.hidden}"></i>
</a>
</td>
</tr>
</tbody>
</table>
<form ng-show="showForm" class="m0" name="addressBookForm"
ng-disabled="loading"
ng-submit="submitAddressBook(addressBookForm)" novalidate>
<div class="box-notification" ng-show="error">
<div class="box-icon error">
<i class="size-24 fi-x"></i>
</div>
<span class="size-14 text-warning">
{{error|translate}}
</span>
</div>
<div class="row collapse">
<label for="newaddress" class="left"><span translate>Address</span>
<small translate ng-hide="!addressBookForm.newaddress.$pristine || newaddress">Required</small>
</label>
<span class="has-error right size-12" ng-show="addressBookForm.newaddress.$invalid && newaddress">
<span class="icon-input"><i class="fi-x"></i></span>
<span translate>Not valid</span>
</span>
<small class="icon-input right" ng-show="!addressBookForm.newaddress.$invalid && newaddress"><i class="fi-check"></i></small>
</div>
<div class="input">
<input type="text" name="newaddress"
placeholder="{{'Address'|translate}}" ng-model="newaddress" valid-address required>
</div>
<label for="newlabel"><span translate>Label</span>
<small translate ng-hide="!addressBookForm.newlabel.$pristine || newlabel">Required</small>
<div class="input">
<input type="text" name="newlabel"
placeholder="{{'Label'|translate}}" ng-model="newlabel" required>
</div>
</label>
<a translate class="button secondary default" ng-show="!loading" ng-click="cancel(addressBookForm)">Cancel</a>
<button class="primary right"
ng-disabled="addressBookForm.$invalid || loading"
ng-click="submitAddressBook(addressBookForm)">{{'Add'|translate}}</button>
</form>
<a ng-show="!showForm" class="button primary expand" ng-disabled="loading" ng-click="toggleForm()">
<i class="fi-plus"></i> <span translate>Add entry</span>
</a>
<a class="close-reveal-modal show-for-large-up" ng-click="close()"><i class="fi-x size-18"></i></a>
</div>

View file

@ -0,0 +1,16 @@
<div class="m20tp text-center">
<div class="row">
<h1 class="text-center m20b">{{title|translate}}</h1>
<div class="large-6 medium-6 small-6 columns">
<button class="button light-gray expand outline radius" ng-disabled="loading"
ng-click="cancel()">
<i class="fi-x"></i> <span class="tu" translate>Cancel</span>
</button>
</div>
<div class="large-6 medium-6 small-6 columns">
<button class="warning expand radius" ng-disabled="loading" ng-click="ok()">
<i class="fi-trash"></i> <span translate>OK</span>
</button>
</div>
</div>
</div>

View file

@ -0,0 +1,25 @@
<nav class="tab-bar">
<section class="right-small">
<a ng-click="cancel()">
<span class="text-close" translate>Close</span>
</a>
</section>
<section class="middle tab-bar-section">
<h1 class="title ellipsis" translate>
Copayers
</h1>
</section>
</nav>
<ul class="no-bullet p60t">
<li class="line-b p10" ng-repeat="copayer in copayers">
<span class="size-12" ng-show="copayer.id == copayerId">
<i class="icon-contact size-24 m10r"></i> {{copayer.name}} ({{'Me'|translate}}) <i class="fi-check m5r right"></i>
</span>
<span class="size-12 text-gray" ng-show="copayer.id != copayerId">
<i class="icon-contact size-24 m10r"></i> {{copayer.name}}<i class="fi-check m5r right"></i>
</span>
</li>
</ul>

View file

@ -0,0 +1,50 @@
<nav class="tab-bar">
<section class="right-small">
<a ng-click="cancel()">
<span class="text-close" translate>Close</span>
</a>
</section>
<section class="middle tab-bar-section">
<h1 class="title ellipsis" style="color:{{color}}" translate>
Payment protocol request
</h1>
</section>
</nav>
<div class="row p60t">
<div class="large-12 columns">
<div class="text-center">
<div class="size-48">
{{unitTotal}} {{unitName}}
</div>
<div class="size-18 m5t text-gray">
{{ alternative }} {{ alternativeIsoCode }}
</div>
</div>
<div class="line-b m10v"></div>
<div class="ellipsis m10v">
<i translate>To:</i> {{paypro.domain}}
</div>
<div class="m10v">
<i translate>Certified by:</i>
<span ng-show="paypro.verified"><i class="fi-lock color-greeni"></i> {{paypro.verifyData.caName}}</span>
<span ng-show="!paypro.verified"><i class="fi-unlock color-yellowi"></i> <span translate>Untrusted</span></span>
</div>
<div ng-if="md.pr.pd.memo" class="m10v lh140">
<i translate>Merchant Message:</i>
<span class="text-gray">
{{paypro.memo}}
</span>
</div>
<div ng-if="md.expirationDate" class="m10v">
<i translate>Expires:</i> {{paypro.expires | amTimeAgo }}
</div>
</div>
</div>
<div class="extra-margin-bottom"></div>

View file

@ -0,0 +1,26 @@
<nav class="tab-bar">
<section class="right-small">
<a ng-click="cancel()">
<span class="text-close" translate>Close</span>
</a>
</section>
<section class="middle tab-bar-section">
<h1 class="title ellipsis" translate>
Address
</h1>
</section>
</nav>
<div class="p60t text-center" ng-init="addr = address.address">
<qrcode size="220" data="{{addr}}"></qrcode>
<div class="size-12" ng-class="{'enable_text_select': !isCordova}">
{{addr}}
</div>
<div class="m5t size-10 text-secondary" ng-show="address.isChange" translate>change</div>
<div class="text-center m10t" ng-if="isCordova">
<button class="secondary" ng-click="copyAddress(addr)">
<i class="fi-clipboard-pencil"></i> <span translate>Copy to clipboard</span>
</button>
</div>
</div>

View file

@ -0,0 +1,16 @@
<nav class="tab-bar">
<section class="right-small">
<a ng-click="cancel()">
<span class="text-close" translate>Close</span>
</a>
</section>
<section class="middle tab-bar-section">
<h1 class="title ellipsis" translate>
QR-Scanner
</h1>
</section>
</nav>
<div class="p60t text-center" ng-init="init()">
<canvas id="qr-canvas" width="200" height="150"></canvas>
<video id="qrcode-scanner-video" width="300" height="225"></video>
</div>

View file

@ -0,0 +1,100 @@
<nav class="tab-bar">
<section class="right-small">
<a ng-click="cancel()">
<span class="text-close" translate>Close</span>
</a>
</section>
<section class="middle tab-bar-section">
<h1 class="title ellipsis" style="color:{{color}}" translate>
Transaction
</h1>
</section>
</nav>
<div class="p45t">
<div class="header-modal text-center">
<div class="size-42">
<span ng-if="btx.action == 'received'">+</span><span ng-if="btx.action == 'sent'">-</span>{{btx.amountStr}} {{settings.unitName}}
</div>
<div class="size-18 m5t text-gray" ng-show="btx.alternativeAmount">
{{btx.alternativeAmount}} {{settings.alternativeIsoCode}}
</div>
</div>
<h4 class="title m0" translate>Information</h4>
<ul class="no-bullet size-14 m0">
<li ng-if="btx.addressTo" class="line-b p10 oh">
<span class="text-gray" translate>To:</span>
<span class="right">
<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 enable_text_select"> {{btx.labelTo || btx.addressTo}}</span>
</span>
</span>
</li>
<li ng-if="btx.time" class="line-b p10">
<span class="text-gray" translate>Date:</span>
<span class="right">
<time>{{ btx.time * 1000 | amCalendar}}</time>
</span>
</li>
<li ng-if="btx.message" class="line-b p10 oh">
<span class="text-gray" translate>Note:</span>
<span class="right">
{{btx.message}}
</span>
</li>
<li ng-if="btx.merchant" class="line-b p10 oh">
<span class="text-gray" translate>Merchant Message:</span>
<span class="right">
{{btx.merchant.pr.pd.memo}}
</span>
</li>
<li ng-if="btx.time" class="line-b p10">
<span class="text-gray" translate>Confirmations:</span>
<span class="right">
<span class="text-warning" ng-show="!btx.confirmations || btx.confirmations == 0" translate>
Unconfirmed
</span>
<span class="text-secondary" ng-show="btx.confirmations>0">
{{btx.confirmations}}
</span>
</span>
</li>
</ul>
<div ng-if="btx.actions[0]">
<h4 class="title m0" translate>Signatures</h4>
<ul class="no-bullet size-14 m0">
<li class="line-b p10 text-gray" ng-repeat="c in btx.actions">
<span class="right">
<i ng-if="c.type == 'reject'" class="fi-x icon-sign x db"></i>
<i ng-if="c.type == 'accept'" class="fi-check icon-sign check db"></i>
</span>
<span>{{c.copayerName}}</span>
</li>
</ul>
</div>
<div ng-show="btx.txid" class="tx-details-blockchain">
<h4 class="title m0" translate>Blockchain</h4>
<ul class="no-bullet size-14 m0">
<li class="line-b p10 oh">
<span class="text-gray">ID:</span>
<span class="right">
<small class="ellipsis text-gray enable_text_select m5t">{{btx.txid}}</small>
</span>
</li>
<li class="line-b p10"
ng-click="$root.openExternalLink('http://' + getShortNetworkName() + '.insight.is/tx/' + btx.txid)">
<span class="text-gray" translate>See it on the blockchain</span>
<i class="icon-arrow-right3 size-24 right text-gray"></i>
</li>
</ul>
</div>
</div>
<div class="extra-margin-bottom"></div>

View file

@ -0,0 +1,32 @@
<div ng-if="statusStr && statusStr == 'Transaction broadcasted'" class="popup-txsent">
<i class="small-centered columns fi-check m20tp"></i>
<div class="text-center size-18 text-white text-bold tu p20">
<span translate>Payment Sent</span>
</div>
<div class="text-center">
<a class="button outline white small-5 tiny" ng-click="cancel()" translate>OKAY</a>
</div>
</div>
<div ng-if="statusStr && statusStr == 'Transaction proposal signed'" class="popup-txsigned">
<i class="small-centered columns fi-check m20tp"></i>
<div class="text-center size-18 text-primary tu text-bold p20">
{{statusStr|translate}}
</div>
<div class="text-center">
<a class="button outline light-gray small-5 tiny" ng-click="cancel()" translate>OKAY</a>
</div>
</div>
<div ng-if="statusStr && statusStr == 'Transaction was rejected'" class="popup-txrejected">
<i class="fi-x small-centered columns m20tp"></i>
<div class="text-center size-18 tu text-warning text-bold p20">
{{statusStr|translate}}
</div>
<div class="text-center">
<a class="button outline light-gray small-5 tiny" ng-click="cancel()" translate>OKAY</a>
</div>
</div>

View file

@ -0,0 +1,143 @@
<nav class="tab-bar">
<section class="right-small">
<a ng-click="cancel()">
<span class="text-close" translate>Close</span>
</a>
</section>
<section class="middle tab-bar-section">
<h1 class="title ellipsis" style="color:{{color}}" translate>
Transaction proposal
</h1>
</section>
</nav>
<div class="p45t" ng-init="updateCopayerList()">
<h4 class="title m0" translate> Information </h4>
<ul class="no-bullet size-14 m0">
<li class="line-b p10">
<span class="text-gray">To:</span>
<span class="right">{{tx.toAddress}}</span>
</li>
<li class="line-b p10">
<span class="text-gray">Amount:</span>
<span class="right">{{tx.amountStr}}
<span class="label gray radius">{{tx.alternativeAmountStr}}</span>
</span>
</li>
<li class="line-b p10">
<span class="text-gray">Time:</span>
<span class="right">
<time>{{ (tx.ts || tx.createdOn ) * 1000 | amTimeAgo}}</time>
</span>
</li>
<li class="line-b p10 oh">
<span class="text-gray">Create by:</span>
<span class="right">{{tx.creatorName}}</span>
</li>
<li class="line-b p10 oh">
<span class="text-gray">Note:</span>
<span class="right">{{tx.message}}</span>
</li>
</ul>
<div ng-if="tx.paypro">
<h4 class="title m0">PAYMENT DETAILS</h4>
<ul class="no-bullet size-14 m0">
<li class="line-b p10">
<span class="text-gray">To:</span>
<span class="right">
<span>
<span ng-show="tx.merchant.pr.ca"><i class="fi-lock"></i> {{tx.paypro.domain}}</span>
<span ng-show="!tx.merchant.pr.ca"><i class="fi-unlock"></i> {{tx.paypro.domain}}</span>
</span>
<contact address="{{tx.toAddress}}" ng-hide="tx.merchant"></contact>
</span>
</li>
<li class="line-b p10">
<span class="text-gray">Expires:</span>
<span class="right">
<time>{{tx.paypro.expirationDate | amTimeAgo }}</time>
</span>
</li>
<li class="line-b p10">
<span class="text-gray">Merchant Message:</span>
<span class="db">{{tx.paypro.pr.pd.memo}}</span>
</li>
</ul>
</div>
<div ng-if="tx.actions[0] && !txRejected && !txBroadcasted">
<h4 class="title m0">Signatures:</h4>
<ul class="no-bullet size-14 m0">
<li class="line-b p10 text-gray" ng-repeat="ac in tx.actions">
<i class="icon-contact size-24"></i>
<span>{{ac.copayerName}}</span>
<span class="right">
<i ng-if="ac.type == 'reject'" class="fi-x icon-sign x db"></i>
<i ng-if="ac.type == 'accept'" class="fi-check icon-sign check db"></i>
<i ng-if="!ac.type" class="fi-loop"></i>
</span>
</li>
</ul>
</div>
<div class="box-notification" ng-show="error">
<div class="box-icon error">
<i class="fi-x size-24"></i>
</div>
<span class="text-warning size-14">
{{error|translate}}
</span>
</div>
<div class="row column m20t text-center text-warning" ng-if="tx.removed">
The transaction was removed by creator
</div>
<div class="row column m20t" ng-if="tx.couldRemove">
<button class="button expand outline dark-gray m0 expand" ng-click="hideTxInfo = true; remove(tx);"
ng-disabled="loading" ng-show="tx.couldRemove">
<i class="fi-x icon-sign x"></i>
<span translate>Remove</span>
</button>
<div class="text-gray size-12 text-center" show="tx.couldRemove" translate>
* Only transactions created by yourself with no peer signatures can be removed
</div>
</div>
<div class="row m20t" ng-if="tx.pendingForUs">
<div class="large-5 medium-5 small-6 columns">
<button class="button outline dark-gray m0 expand" ng-click="hideTxInfo = true; reject(tx);"
ng-disabled="loading">
<i class="fi-x icon-sign x"></i>
<span translate>Reject</span>
</button>
</div>
<div class="large-5 medium-5 small-6 columns text-right">
<button class="button primary m0 expand" ng-click="hideTxInfo = true; sign(tx)" style="background-color:{{color}}"
ng-disabled="loading">
<i class="fi-check icon-sign check"></i>
<span translate>Sign</span>
</button>
</div>
</div>
<div ng-show="!hideTxInfo">
<div class="row collapse m10t"
ng-show="tx.status=='accepted' && !txBroadcasted && !txRejected">
<button class="primary expand"
ng-click="broadcast(tx)"
ng-disabled="loading"> <i class="fi-upload-cloud"></i>
<span translate>Broadcast Transaction</span>
</button>
</div>
<div class="text-success m10t oh"
ng-show="txBroadcasted">
<span translate>Transaction sent!</span>
</div>
<div class="text-center text-warning"
ng-show="txRejected" translate>
Transaction finally rejected
</div>
</div>
</div>
<div class="extra-margin-bottom"></div>

View file

@ -0,0 +1,30 @@
<nav class="tab-bar text-right hide-for-large-up">
<span ng-click="cancel()" class="p10 text-white" translate>Close</span>
</nav>
<div class="modal-mobile" ng-init="setWallets()">
<h1 class="line-b" translate>Select a wallet to make the payment</h1>
<div class="m20v" ng-show="!wallets[0]" translate>Loading...</div>
<ul class="wallet-selection wallets" ng-show="wallets[0]">
<li ng-repeat="item in wallets track by $index" class="nav-item" ng-show="+item.balanceInfo.totalBalanceBTC > 0" ng-click="ok(item)">
<div class="col1">
<div class="avatar-wallet">{{item.getName() | limitTo: 1}}</div>
</div>
<div class="col2">
<a class="size-12 wallet-item">
<div class="oh">
<div class="right size-10 type-wallet">
[ {{item.requiredCopayers}} of {{item.totalCopayers}} ]</div>
<div class="ellipsis name-wallet">{{item.getName()}}</div>
</div>
<div class="oh">
<b class="m5r size-12">{{item.balanceInfo.totalBalance || 0}} {{item.settings.unitName}}</b>
<span class="alt-currency size-10">{{item.balanceInfo.totalBalanceAlternative}} {{item.balanceInfo.alternativeIsoCode}}</span>
</div>
</a>
</div>
</li>
</ul>
<a class="close-reveal-modal show-for-large-up" ng-click="cancel()"><i class="fi-x size-18"></i></a>
</div>