Merge branch 'ref/design' of https://github.com/bitpay/bitpay-wallet into feature/onboarding_backup_phrase
# Conflicts: # public/views/includes/confirmBackupPopup.html # src/js/controllers/backup.js
This commit is contained in:
commit
d39f69531d
49 changed files with 1108 additions and 636 deletions
63
public/views/addressbook.add.html
Normal file
63
public/views/addressbook.add.html
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<ion-view>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-buttons side="primary">
|
||||
<button class="button button-clear" ui-sref="tabs.addressbook">
|
||||
<i class="icon ion-ios-arrow-thin-left"></i>
|
||||
</button>
|
||||
</ion-nav-buttons>
|
||||
<ion-nav-title>
|
||||
<span translate>Add entry</span>
|
||||
</ion-nav-title>
|
||||
</ion-nav-bar>
|
||||
|
||||
<ion-content>
|
||||
|
||||
<form name="addressbookForm" no-validate>
|
||||
|
||||
<div class="card list">
|
||||
<label class="item item-input item-stacked-label">
|
||||
<span class="input-label" translate>Name</span>
|
||||
<input type="text"
|
||||
id="name"
|
||||
name="name"
|
||||
ng-model="addressbookEntry.name"
|
||||
required>
|
||||
</label>
|
||||
<label class="item item-input item-stacked-label">
|
||||
<span class="input-label" translate>Email</span>
|
||||
<input type="text"
|
||||
id="email"
|
||||
name="email"
|
||||
ng-model="addressbookEntry.email">
|
||||
</label>
|
||||
<label class="item item-input item-stacked-label">
|
||||
<span class="input-label" translate>Address</span>
|
||||
<div class="input-notification">
|
||||
<i class="icon ion-checkmark-circled balanced"
|
||||
ng-show="!addressbookForm.address.$invalid"></i>
|
||||
<i class="icon ion-close-circled assertive"
|
||||
ng-show="addressbookForm.address.$invalid && addressbookEntry.address"></i>
|
||||
</div>
|
||||
<div class="qr-scan-icon">
|
||||
<qr-scanner on-scan="onQrCodeScanned(data, addressbookForm)"></qr-scanner>
|
||||
<input type="text"
|
||||
id="address"
|
||||
name="address"
|
||||
ng-model="addressbookEntry.address"
|
||||
valid-address required>
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="padding">
|
||||
<button type="submit"
|
||||
class="button button-block button-positive"
|
||||
ng-click="add(addressbookEntry)"
|
||||
ng-disabled="!addressbookForm.$valid" translate>
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
52
public/views/addressbook.html
Normal file
52
public/views/addressbook.html
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
<ion-view>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-buttons side="primary">
|
||||
<button class="button button-clear" ui-sref="tabs.settings">
|
||||
<i class="icon ion-ios-arrow-thin-left"></i>
|
||||
</button>
|
||||
</ion-nav-buttons>
|
||||
<ion-nav-title>
|
||||
<span translate>Addressbook</span>
|
||||
</ion-nav-title>
|
||||
<ion-nav-buttons side="secondary">
|
||||
<button class="button button-clear" ui-sref="tabs.addressbook.add">
|
||||
<i class="icon ion-ios-plus-empty"></i>
|
||||
</button>
|
||||
</ion-nav-buttons>
|
||||
</ion-nav-bar>
|
||||
|
||||
<ion-content ng-init="initAddressbook()">
|
||||
|
||||
<div class="bar bar-header item-input-inset" ng-show="!isEmptyList">
|
||||
<label class="item-input-wrapper">
|
||||
<i class="icon ion-ios-search placeholder-icon"></i>
|
||||
<input type="search"
|
||||
placeholder="Search"
|
||||
ng-model="addrSearch"
|
||||
ng-change="findAddressbook(addrSearch)" ng-model-onblur>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<ion-list>
|
||||
<ion-item ng-repeat="addrEntry in addressbook"
|
||||
class="item-icon-left item-icon-right"
|
||||
ui-sref="tabs.addressbook.view({address:addrEntry.address})">
|
||||
<i class="icon ion-ios-person-outline"></i>
|
||||
{{addrEntry.name}}
|
||||
<i class="icon nav-item-arrow-right"></i>
|
||||
|
||||
<ion-option-button class="button-assertive" ng-click="remove(addrEntry.address)">
|
||||
<i class="icon ion-minus-circled"></i>
|
||||
</ion-option-button>
|
||||
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
<div class="list" ng-show="isEmptyList">
|
||||
<a class="item item-icon-left" ui-sref="tabs.addressbook.add">
|
||||
<i class="icon ion-person-add"></i>
|
||||
<span translate>Add a new entry</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
36
public/views/addressbook.view.html
Normal file
36
public/views/addressbook.view.html
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<ion-view>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-buttons side="primary">
|
||||
<button class="button button-clear" ui-sref="tabs.addressbook">
|
||||
<i class="icon ion-ios-arrow-thin-left"></i>
|
||||
</button>
|
||||
</ion-nav-buttons>
|
||||
<ion-nav-title>
|
||||
<span translate>Addressbook</span>
|
||||
</ion-nav-title>
|
||||
</ion-nav-bar>
|
||||
|
||||
<ion-content>
|
||||
|
||||
<div class="card">
|
||||
<div class="item item-text-wrap">
|
||||
<h3 translate>Name</h3>
|
||||
<strong>{{addressbookEntry.name}}</strong>
|
||||
</div>
|
||||
<div class="item item-text-wrap">
|
||||
<h3 translate>Email</h3>
|
||||
<strong>{{addressbookEntry.email}}</strong>
|
||||
</div>
|
||||
<div class="item item-text-wrap">
|
||||
<h3 translate>Address</h3>
|
||||
<strong>{{addressbookEntry.address}}</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="button button-block button-positive"
|
||||
ng-click="sendTo()" translate>
|
||||
Send Money
|
||||
</button>
|
||||
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
<nav ng-controller="topbarController as topbar"
|
||||
class="tab-bar" ng-style="{'background-color': noColor ? '#4B6178' : index.backgroundColor}">
|
||||
<section class="left-small">
|
||||
<a id="hamburger" class="p10" ng-show="!goBackToState && !closeToHome && !index.noFocusedWallet && index.physicalScreenWidth < 768"
|
||||
on-tap="index.toggleLeftMenu()"><i class="fi-list size-24"></i>
|
||||
</a>
|
||||
<a ng-show="goBackToState" ng-click="$root.go(goBackToState); goBackToState = null"><i class="icon-arrow-left3 icon-back"></i>
|
||||
<span class="text-back" translate>Back</span>
|
||||
</a>
|
||||
|
||||
<a ng-show="closeToHome" class="p10 "
|
||||
ng-click="topbar.goHome(); index.setCompactTxHistory(); closeToHome = null">
|
||||
<span class="text-close" translate>Close</span>
|
||||
</a>
|
||||
</section>
|
||||
|
||||
<section class="right-small" ng-show="showPreferences && !index.noFocusedWallet">
|
||||
<a class="p10" ng-click="topbar.goPreferences(); index.setCompactTxHistory()">
|
||||
<i class="fi-widget size-24"></i>
|
||||
</a>
|
||||
</section>
|
||||
|
||||
<section class="middle tab-bar-section">
|
||||
<h1 class="title ellipsis">
|
||||
{{(titleSection|translate) || (index.alias || index.walletName)}}
|
||||
</h1>
|
||||
</section>
|
||||
</nav>
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
<ion-modal-view ng-controller="addressbookModalController" ng-init="initAddressbook()">
|
||||
<ion-header-bar align-title="center" class="bar-royal">
|
||||
<button class="button button-clear" ng-click="closeAddressbookModal()">
|
||||
Close
|
||||
</button>
|
||||
<div class="h1 title">
|
||||
<span ng-show="!addAddressbookEntry" translate>Addressbook</span>
|
||||
<span ng-show="addAddressbookEntry" translate>Add entry</span>
|
||||
</div>
|
||||
<button class="button button-clear"
|
||||
ng-click="toggleAddAddressbookEntry()">
|
||||
<i ng-show="!addAddressbookEntry" class="icon ion-ios-plus-empty"></i>
|
||||
<span ng-show="addAddressbookEntry" translate>Cancel</span>
|
||||
</button>
|
||||
</ion-header-bar>
|
||||
|
||||
<ion-content>
|
||||
|
||||
<div class="bar bar-header item-input-inset" ng-show="!addAddressbookEntry && !isEmptyList">
|
||||
<label class="item-input-wrapper">
|
||||
<i class="icon ion-ios-search placeholder-icon"></i>
|
||||
<input type="search"
|
||||
placeholder="Search"
|
||||
ng-model="addrSearch"
|
||||
ng-change="findAddressbook(addrSearch)" ng-model-onblur>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div ng-show="!addAddressbookEntry">
|
||||
<ion-list>
|
||||
<ion-item ng-repeat="addrEntry in addressbook"
|
||||
class="item-icon-left"
|
||||
ng-show="!addrEntry.isWallet"
|
||||
ng-click="sendTo(addrEntry)">
|
||||
<i class="icon ion-ios-person-outline"></i>
|
||||
<h2>{{addrEntry.label}}</h2>
|
||||
<p>{{addrEntry.address}}</p>
|
||||
|
||||
<ion-option-button class="button-assertive" ng-click="remove(addrEntry.address)">
|
||||
<i class="icon ion-minus-circled"></i>
|
||||
</ion-option-button>
|
||||
|
||||
</ion-item>
|
||||
<ion-list>
|
||||
<div class="list" ng-show="isEmptyList">
|
||||
<a class="item item-icon-left" ng-click="toggleAddAddressbookEntry()">
|
||||
<i class="icon ion-person-add"></i>
|
||||
<span translate>Add a new entry</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form name="addressbookForm" ng-show="addAddressbookEntry" no-validate>
|
||||
|
||||
<div class="list">
|
||||
|
||||
<label class="item item-input item-stacked-label">
|
||||
<span class="input-label" translate>Address</span>
|
||||
<div class="input-notification">
|
||||
<i class="icon ion-checkmark-circled balanced"
|
||||
ng-show="!addressbookForm.address.$invalid"></i>
|
||||
<i class="icon ion-close-circled assertive"
|
||||
ng-show="addressbookForm.address.$invalid && addressbookEntry.address"></i>
|
||||
</div>
|
||||
<div class="qr-scan-icon">
|
||||
<qr-scanner on-scan="onQrCodeScanned(data, addressbookForm)"></qr-scanner>
|
||||
<input type="text"
|
||||
id="address"
|
||||
name="address"
|
||||
ng-model="addressbookEntry.address"
|
||||
valid-address required>
|
||||
</div>
|
||||
</label>
|
||||
|
||||
<label class="item item-input item-stacked-label">
|
||||
<span class="input-label" translate>Label</span>
|
||||
<input type="text"
|
||||
id="label"
|
||||
name="label"
|
||||
ng-model="addressbookEntry.label"
|
||||
required>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="padding">
|
||||
<button type="submit"
|
||||
class="button button-block button-positive"
|
||||
ng-click="add(addressbookEntry)"
|
||||
ng-disabled="!addressbookForm.$valid" translate>
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
15
public/views/modals/receive-tips.html
Normal file
15
public/views/modals/receive-tips.html
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<ion-modal-view ng-style="{opacity: '0.9'}" ng-controller="receiveTipsController">
|
||||
<ion-nav-bar class="bar-ligt">
|
||||
<ion-nav-buttons side="secondary">
|
||||
<button class="button" ng-click="close()">
|
||||
X
|
||||
</button>
|
||||
</ion-nav-buttons>
|
||||
</ion-nav-bar>
|
||||
<ion-content class="has-header">
|
||||
<div class="text-center">
|
||||
<h2>Receive bitcoin by sharing your address</h2>
|
||||
<h3>Other bitcoin users can scan this code to send you money</h3>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
15
public/views/modals/scan-tips.html
Normal file
15
public/views/modals/scan-tips.html
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<ion-modal-view ng-style="{opacity: '0.9'}" ng-controller="scanTipsController">
|
||||
<ion-nav-bar class="bar-ligt">
|
||||
<ion-nav-buttons side="secondary">
|
||||
<button class="button" ng-click="close()">
|
||||
X
|
||||
</button>
|
||||
</ion-nav-buttons>
|
||||
</ion-nav-bar>
|
||||
<ion-content class="has-header">
|
||||
<div class="text-center">
|
||||
<h2>Scan the code to pay with bitcoin</h2>
|
||||
<h3>QR codes could also contain a bitcoin wallet invitation, or an URL</h3>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-modal-view>
|
||||
|
|
@ -16,12 +16,14 @@
|
|||
<div class="row text-center">
|
||||
<i class="ion-ios-arrow-thin-down light-blue col col-60" id="arrow-down"></i>
|
||||
</div>
|
||||
<div class="row">
|
||||
<button class="button button-block button-positive col-75 col" href
|
||||
ui-sref="onboarding.backupWarning({walletId: walletId})" translate>Backup wallet</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<button class="button button-block button-transparent col-75 col" ng-click="openPopup()" translate>I'll backup my wallet later</button>
|
||||
<div class="cta-buttons">
|
||||
<div class="row">
|
||||
<button class="button button-block button-positive col-75 col" href
|
||||
ui-sref="onboarding.backupWarning({walletId: walletId})" translate>Backup wallet</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<button class="button button-block button-transparent col-75 col" ng-click="openPopup()" translate>I'll backup my wallet later</button>
|
||||
</div>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</ion-nav-bar>
|
||||
<ion-content>
|
||||
<div class="row text-center">
|
||||
<h3 translate class="col col-75">
|
||||
<h3 translate class="col col-80">
|
||||
Are you being watched?
|
||||
</h3>
|
||||
</div>
|
||||
|
|
@ -18,14 +18,14 @@
|
|||
</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<img src="img/onboarding-backup-warning.svg" class="col col-60">
|
||||
<img src="img/onboarding-backup-warning.svg" class="col col-60 warning-image">
|
||||
</div>
|
||||
<div class="row text-center">
|
||||
<p class="col col-60">
|
||||
Anyone with your backup phrase can access or spend your bitcoin.
|
||||
</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="cta-buttons">
|
||||
<button class="button button-block button-primary col col-75" ng-click="openPopup()" translate>All clear, let's do this</button>
|
||||
</div>
|
||||
</ion-content>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,4 @@
|
|||
<ion-view ng-controller="collectEmailController" id="onboarding-collect-email" class="onboarding">
|
||||
<ion-nav-bar class="bar-overlay">
|
||||
<ion-nav-buttons side="right">
|
||||
<button class="button button-block button-positive button-clear" ng-click="onboardingMailSkip()">
|
||||
{{'Skip' | translate}}
|
||||
</button>
|
||||
</ion-nav-buttons>
|
||||
</ion-nav-bar>
|
||||
<ion-content>
|
||||
<div class="row">
|
||||
<img src="img/onboarding-success.svg" class="col col-75" id="success-image" />
|
||||
|
|
@ -14,16 +7,42 @@
|
|||
<h3 translate class="col">Wallet Created</h3>
|
||||
</div>
|
||||
<div id="collect-email">
|
||||
<div class="row text-center">
|
||||
<p translate class="col col-75 center-block">Where would you like to receive email notifications about payments? </p>
|
||||
<div ng-if="!confirmation">
|
||||
<div class="row text-center">
|
||||
<p translate class="col col-75">Where would you like to receive email notifications about payments?</p>
|
||||
</div>
|
||||
<form name="emailForm" ng-submit="confirm(emailForm)" novalidate>
|
||||
<label class="item item-input col col-75">
|
||||
<i class="icon ion-arrow-right-c"></i>
|
||||
<input type="email" id="email" name="email" ng-model="email" laceholder="satoshi@example.com" required></input>
|
||||
</label>
|
||||
</form>
|
||||
</div>
|
||||
<div ng-if="confirmation">
|
||||
<div class="row text-center">
|
||||
<p translate class="col col-75">Is this email address correct?</p>
|
||||
</div>
|
||||
<div class="row text-center">
|
||||
<p class="col col-75">{{email}}</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col col-50">
|
||||
<button class="button button-block button-stable" ng-click="cancel()">
|
||||
{{'No' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
<div class="col col-50">
|
||||
<button class="button button-block button-stable" ng-click="save()">
|
||||
{{'Yes' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="overlay collect-overlay">
|
||||
<button class="button button-stable button-clear" ng-click="onboardingMailSkip()">
|
||||
{{'Skip' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
<form name="emailForm" ng-submit="save(emailForm)" novalidate>
|
||||
<label class="item item-input col col-75 center-block">
|
||||
<i class="icon ion-arrow-right-c"></i>
|
||||
<input type="email" id="email" name="email" ng-model="email" placeholder="satoshi@example.com" required></input>
|
||||
</label>
|
||||
</form>
|
||||
</div>
|
||||
<div class="overlay collect-overlay"></div>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
Just scan the code to pay
|
||||
</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="row cta-button">
|
||||
<button class="button button-positive col col-75 next-slide" ng-click="slideNext()">
|
||||
Got it <i class="icon ion-ios-arrow-thin-right"></i>
|
||||
</button>
|
||||
|
|
@ -54,9 +54,9 @@
|
|||
The exchange rate changes with the market
|
||||
</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="row cta-button">
|
||||
<button class="button button-positive col col-75 next-slide" ng-click="slideNext()">
|
||||
Makes sense <i class="icon ion-arrow-right-c"></i>
|
||||
Makes sense <i class="icon ion-ios-arrow-thin-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
</ion-content>
|
||||
|
|
@ -78,7 +78,7 @@
|
|||
Not even BitPay can access it
|
||||
</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="row cta-button">
|
||||
<button class="button button-positive col col-75 get-started" ng-click="createDefaultWallet()">
|
||||
Create bitcoin wallet
|
||||
</button>
|
||||
|
|
|
|||
|
|
@ -1,84 +1,100 @@
|
|||
<div
|
||||
class="topbar-container"
|
||||
ng-include="'views/includes/topbar.html'"
|
||||
ng-init="titleSection='Sweep paper wallet'; goBackToState = 'preferencesAdvanced';">
|
||||
</div>
|
||||
<ion-view>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-title>{{'Sweep paper wallet' | translate}}</ion-nav-title>
|
||||
<ion-nav-back-button>
|
||||
<i class="icon ion-ios-arrow-thin-left"></i>
|
||||
</ion-nav-back-button>
|
||||
</ion-nav-bar>
|
||||
|
||||
<div class="content preferences" ng-controller="paperWalletController">
|
||||
<div class="row" ng-show="index.needsBackup">
|
||||
<div class="columns">
|
||||
<h4></h4>
|
||||
<div class="size-14 text-warning m20b">
|
||||
<i class="fi-alert size-12"></i>
|
||||
<span class="text-warning" translate>Backup Needed</span>.
|
||||
<span translate>
|
||||
Before receiving funds, you must backup your wallet. If this device is lost, it is impossible to access your funds without a backup.
|
||||
</span>
|
||||
<ion-content ng-controller="paperWalletController" ng-init="init()">
|
||||
<div class="row" ng-show="needsBackup">
|
||||
<div class="columns">
|
||||
<h4></h4>
|
||||
<div class="size-14 text-warning m20b">
|
||||
<i class="fi-alert size-12"></i>
|
||||
<span class="text-warning" translate>Backup Needed</span>.
|
||||
<span translate>
|
||||
Before receiving funds, you must backup your wallet. If this device is lost, it is impossible to access your funds without a backup.
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-center m20t">
|
||||
<a class="button outline round dark-gray" href ui-sref="tabs.preferences.preferencesAdvanced">
|
||||
<span translate>Preferences</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center m20t">
|
||||
<a class="button outline round dark-gray" href ui-sref="preferences" >
|
||||
<span translate>Preferences</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div ng-show="!index.needsBackup">
|
||||
<h4 ng-show="!error"></h4>
|
||||
<div class="box-notification m20b" ng-show="error">
|
||||
<span class="text-warning">{{error|translate}}</span>
|
||||
</div>
|
||||
<form ng-show="!balance" class="oh">
|
||||
<div class="row">
|
||||
<div class="large-12 medium-12 columns">
|
||||
<div class="input">
|
||||
<label for="inputData" translate>Paper Wallet Private Key</label>
|
||||
<input type="text" placeholder="{{'Paste your paper wallet private key here'|translate}}" ng-model="inputData" id="inputData" ng-change="onData(inputData)">
|
||||
<div class="qr-scanner-input">
|
||||
<qr-scanner on-scan="onQrCodeScanned(data)"></qr-scanner>
|
||||
</div>
|
||||
<div ng-show="isPkEncrypted">
|
||||
<label for="passphrase">
|
||||
<span translate>Password</span>
|
||||
<div ng-show="!needsBackup">
|
||||
<h4 ng-show="!error"></h4>
|
||||
<div class="box-notification m20b" ng-show="error">
|
||||
<span class="text-warning">{{error|translate}}</span>
|
||||
</div>
|
||||
|
||||
<form ng-show="!balance" ng-submit="scanFunds()" novalidate>
|
||||
<div class="list card">
|
||||
<div class="row">
|
||||
<div class="col col-90">
|
||||
<label class="item item-input item-stacked-label">
|
||||
<span class="input-label" translate>Paper Wallet Private Key</span>
|
||||
<input type="text" placeholder="{{'Paste your paper wallet private key here'|translate}}" ng-model="formData.inputData" id="inputData" ng-change="onData(formData.inputData)">
|
||||
</label>
|
||||
<input id="passphrase" type="password" name="passphrase" placeholder="{{'Passphrase'|translate}}" ng-model="passphrase">
|
||||
<p ng-show="index.isCordova" translate class="size-12 text-gray">
|
||||
</div>
|
||||
<div class="col text-center">
|
||||
<qr-scanner class="qr-icon size-24" on-scan="onQrCodeScanned(data)"></qr-scanner>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" ng-show="isPkEncrypted">
|
||||
<div class="col">
|
||||
<label class="item item-input item-stacked-label">
|
||||
<span class="input-label" translate>Password</span>
|
||||
<input type="text" name="passphrase" placeholder="{{'Passphrase'|translate}}" ng-model="passphrase">
|
||||
</label>
|
||||
<p ng-show="isCordova" class="card size-12 text-gray" translate>
|
||||
Decrypting a paper wallet could take around 5 minutes on this device. please be patient and keep the app open.
|
||||
</p>
|
||||
</div>
|
||||
<button
|
||||
ng-disabled="scanning || !scannedKey"
|
||||
ng-style="{'background-color':index.backgroundColor}"
|
||||
class="button black round expand"
|
||||
ng-click="scanFunds()"
|
||||
translate>Scan Wallet Funds
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div ng-show="balance" class="row">
|
||||
<div class="large-12 medium-12 columns">
|
||||
<div class="text-center m20b">
|
||||
<h4 class="text-bold" translate>Funds found</h4>
|
||||
<div class="size-24">
|
||||
{{balance}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button
|
||||
ng-disabled="sending || balanceSat <= 0"
|
||||
ng-style="{'background-color':index.backgroundColor}"
|
||||
class="button black round expand"
|
||||
ng-click="sweepWallet()"
|
||||
translate>Sweep Wallet
|
||||
<button type="submit"
|
||||
ng-disabled="scanning || !scannedKey"
|
||||
class="button button-block button-positive"
|
||||
ng-style="{'background-color': wallet.color}"
|
||||
translate>Scan Wallet Funds
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<div class="row">
|
||||
<div class="col text-center">
|
||||
<div ng-show="scanned">
|
||||
<h4 class="text-bold" translate>Funds found</h4>
|
||||
<div class="size-24">{{balance}}</div>
|
||||
</div>
|
||||
|
||||
<button
|
||||
ng-show="balanceSat > 0"
|
||||
ng-disabled="sending"
|
||||
class="button button-block button-positive"
|
||||
ng-style="{'background-color': wallet.color}"
|
||||
ng-click="sweepWallet()"
|
||||
translate>Sweep Wallet
|
||||
</button>
|
||||
|
||||
<button
|
||||
ng-show="balanceSat <= 0 && scanned"
|
||||
class="button button-block button-positive"
|
||||
ng-style="{'background-color': wallet.color}"
|
||||
ng-click="init()"
|
||||
translate>Scan Again
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center size-12 text-gray">
|
||||
<span translate>Funds will be transferred to</span>:
|
||||
<b>{{walletAlias || walletName}}</b>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center size-12 text-gray">
|
||||
<span translate>Funds will be transferred to</span>:
|
||||
<b>{{index.alias || index.walletName}}</b>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="extra-margin-bottom"></div>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<i class="icon ion-ios-arrow-thin-left"></i>
|
||||
</ion-nav-back-button>
|
||||
</ion-nav-bar>
|
||||
<ion-content>
|
||||
<ion-content ng-controller="preferencesAdvancedController">
|
||||
<div class="list">
|
||||
<div class="item item-divider">
|
||||
</div>
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
<span translate>Wallet Information</span>
|
||||
<i class="icon nav-item-arrow-right"></i>
|
||||
</a>
|
||||
<a class="item item-icon-right" ng-show="index.network == 'livenet'" ui-sref="tabs.preferences.paperWallet">
|
||||
<a class="item item-icon-right" ng-show="network == 'livenet'" ui-sref="tabs.preferences.paperWallet">
|
||||
<span translate>Sweep paper wallet</span>
|
||||
<i class="icon nav-item-arrow-right"></i>
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -1,86 +0,0 @@
|
|||
|
||||
<div class="topbar-container" ng-include="'views/includes/topbar.html'"
|
||||
ng-init="titleSection='Global preferences'; closeToHome = true; noColor = true">
|
||||
</div>
|
||||
|
||||
<div class="content preferences" ng-controller="preferencesGlobalController" ng-init="init()">
|
||||
<h4></h4>
|
||||
<ul>
|
||||
<li href ui-sref="preferencesLanguage">
|
||||
<div class="right text-gray">
|
||||
{{currentLanguageName|translate}}
|
||||
<i class="icon-arrow-right3 size-24 right"></i>
|
||||
</div>
|
||||
<div translate>Language</div>
|
||||
</li>
|
||||
</ul>
|
||||
<h4></h4>
|
||||
|
||||
<ul class="no-bullet m0">
|
||||
<li href ui-sref="preferencesUnit">
|
||||
<div class="right text-gray">
|
||||
{{unitName}}
|
||||
<i class="icon-arrow-right3 size-24 right"></i>
|
||||
</div>
|
||||
<div translate>Unit</div>
|
||||
</li>
|
||||
|
||||
<li href ui-sref="preferencesAltCurrency">
|
||||
<div class="right text-gray">
|
||||
{{selectedAlternative.name}}
|
||||
<i class="icon-arrow-right3 size-24 right"></i>
|
||||
</div>
|
||||
<div translate>Alternative Currency</div>
|
||||
</li>
|
||||
</ul>
|
||||
<h4></h4>
|
||||
|
||||
<ul class="no-bullet m0">
|
||||
<li href ui-sref="preferencesFee">
|
||||
<div class="right text-gray">
|
||||
{{feeOpts[currentFeeLevel]|translate}}
|
||||
<i class="icon-arrow-right3 size-24 right"></i>
|
||||
</div>
|
||||
<div translate>Bitcoin Network Fee Policy</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ion-toggle ng-model="spendUnconfirmed" toggle-class="toggle-balanced" ng-change="spendUnconfirmedChange()">
|
||||
<span class="toggle-label" translate>Use Unconfirmed Funds</span>
|
||||
</ion-toggle>
|
||||
|
||||
<div ng-show="usePushNotifications && PNEnabledByUser">
|
||||
<h4></h4>
|
||||
<ion-toggle ng-model="pushNotifications" toggle-class="toggle-balanced" ng-change="pushNotificationsChange()">
|
||||
<span class="toggle-label" translate>Enable push notifications</span>
|
||||
</ion-toggle>
|
||||
</div>
|
||||
|
||||
<div class="m20t" ng-show="usePushNotifications && !PNEnabledByUser && isIOSApp">
|
||||
<div class="text-left text-gray size-12 m10" translate>Push notifications for Copay are currently disabled. Enable them in the Settings app.</div>
|
||||
<ul class="no-bullet m0" ng-click="openSettings()">
|
||||
<li ng-style="{'color':index.backgroundColor}" translate>Open Settings app</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<h4></h4>
|
||||
|
||||
<ion-toggle ng-show="!index.isWindowsPhoneApp" ng-model="glideraEnabled" toggle-class="toggle-balanced" ng-change="glideraChange()">
|
||||
<span class="toggle-label" translate>Enable Glidera Service</span>
|
||||
</ion-toggle>
|
||||
<h4></h4>
|
||||
|
||||
<ion-toggle ng-show="!index.isWindowsPhoneApp" ng-model="coinbaseEnabled" toggle-class="toggle-balanced" ng-change="coinbaseChange()">
|
||||
<span class="toggle-label" translate>Enable Coinbase Service</span>
|
||||
</ion-toggle>
|
||||
<h4></h4>
|
||||
|
||||
<ul class="no-bullet m0">
|
||||
<li href ui-sref="about">
|
||||
<i class="icon-arrow-right3 size-24 right text-gray"></i>
|
||||
<div translate>About Copay</div>
|
||||
</li>
|
||||
</ul>
|
||||
<h4></h4>
|
||||
</div>
|
||||
<div class="extra-margin-bottom"></div>
|
||||
|
|
@ -4,12 +4,12 @@
|
|||
<i class="icon ion-ios-arrow-thin-left"></i>
|
||||
</ion-nav-back-button>
|
||||
</ion-nav-bar>
|
||||
<ion-content ng-controller="preferencesHistory" ng-init="index.updatingTxHistory ? null : csvHistory()">
|
||||
<ion-content ng-controller="preferencesHistory" ng-init="csvHistory()">
|
||||
<div class="item item-divider"></div>
|
||||
<div class="item" ng-show="csvReady && !index.isCordova" ng-csv="csvContent" csv-header="csvHeader" filename="Copay-{{wallet.name}}.csv">
|
||||
<div class="item" ng-show="csvReady && !isCordova" ng-csv="csvContent" csv-header="csvHeader" filename="Copay-{{wallet.name}}.csv">
|
||||
<span translate>Export to file</span>
|
||||
</div>
|
||||
<div class="item" ng-show="!csvReady && !index.isCordova">
|
||||
<div class="item" ng-show="!csvReady && !isCordova">
|
||||
<span translate>Export to file</span>
|
||||
<span class="item-note" translate>
|
||||
preparing...
|
||||
|
|
|
|||
|
|
@ -17,15 +17,15 @@
|
|||
</div>
|
||||
|
||||
<div class="card" ng-if="list[0]">
|
||||
<div class="item item-heading item-icon-right">
|
||||
<div class="item item-heading item-icon-right" ui-sref="tabs.addressbook">
|
||||
<span translate>Contacts & Wallets</span>
|
||||
<i class="icon ion-person-add" ng-click="openAddressbookModal()"></i>
|
||||
<i class="icon nav-item-arrow-right"></i>
|
||||
</div>
|
||||
<div class="item text-center" ng-show="!list[0]" translate>No Wallet - Contact</div>
|
||||
<a class="item item-icon-left" ng-repeat="item in list" ng-click="goToAmount(item)">
|
||||
<i ng-show="item.isWallet" class="icon ion-briefcase size-21" ng-style="{'color':item.color}"></i>
|
||||
<i ng-show="!item.isWallet" class="icon ion-ios-person-outline"></i>
|
||||
{{item.label}}
|
||||
{{item.name}}
|
||||
</a>
|
||||
</div>
|
||||
</ion-content>
|
||||
|
|
|
|||
|
|
@ -6,9 +6,10 @@
|
|||
<ion-content ng-controller="tabSettingsController" ng-init="init()">
|
||||
<div class="list">
|
||||
<div class="item item-divider"></div>
|
||||
<a class="item item-icon-left" ng-click="openAddressbookModal()">
|
||||
<a class="item item-icon-left item-icon-right" ui-sref="tabs.addressbook">
|
||||
<i class="icon ion-ios-book-outline"></i>
|
||||
<span translate>Address Book</span>
|
||||
<i class="icon nav-item-arrow-right"></i>
|
||||
</a>
|
||||
|
||||
<div class="item item-divider" translate>Preferences</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue