fix : Scanner and keyboard at same time
This commit is contained in:
parent
919d29e1b5
commit
1ebba5c0d0
10 changed files with 83 additions and 49 deletions
|
|
@ -919,13 +919,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener('native.keyboardshow', function() {
|
window.addEventListener('native.keyboardshow', function() {
|
||||||
document.querySelector('div.tabs').style.display = 'none';
|
document.body.classList.add('keyboard-open');
|
||||||
angular.element(document.querySelector('ion-content.has-tabs')).css('bottom', 0);
|
|
||||||
});
|
|
||||||
|
|
||||||
window.addEventListener('native.keyboardhide', function() {
|
|
||||||
var tabs = document.querySelectorAll('div.tabs');
|
|
||||||
angular.element(tabs[0]).css('display', '');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$ionicPlatform.registerBackButtonAction(function(e) {
|
$ionicPlatform.registerBackButtonAction(function(e) {
|
||||||
|
|
|
||||||
|
|
@ -152,25 +152,11 @@ input[type=number] {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.qr-icon {
|
|
||||||
line-height: 45px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-notification {
|
.input-notification {
|
||||||
float: right;
|
float: right;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.qr-scan-icon a {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: 25px;
|
|
||||||
right: 0;
|
|
||||||
padding: 0 10px;
|
|
||||||
font-size: 24px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pr {
|
.pr {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
@ -443,3 +429,11 @@ input[type=file] {
|
||||||
.left {
|
.left {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.keyboard-open .tabs {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.keyboard-open .has-tabs {
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
|
||||||
13
src/sass/views/import.scss
vendored
13
src/sass/views/import.scss
vendored
|
|
@ -9,4 +9,17 @@
|
||||||
border-bottom-width: 2px;
|
border-bottom-width: 2px;
|
||||||
border-bottom-color: #172565;
|
border-bottom-color: #172565;
|
||||||
}
|
}
|
||||||
|
.qr-scan-icon a {
|
||||||
|
z-index: 10;
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 14px;
|
||||||
|
right: 0;
|
||||||
|
padding: 0 10px;
|
||||||
|
font-size: 24px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.qr-icon {
|
||||||
|
line-height: 45px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
15
src/sass/views/join.scss
Normal file
15
src/sass/views/join.scss
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
#join {
|
||||||
|
.qr-scan-icon a {
|
||||||
|
z-index: 10;
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 115px;
|
||||||
|
right: 0;
|
||||||
|
padding: 0 10px;
|
||||||
|
font-size: 24px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.qr-icon {
|
||||||
|
line-height: 45px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,17 @@
|
||||||
#tab-send {
|
#tab-send {
|
||||||
|
.qr-scan-icon a {
|
||||||
|
z-index: 10;
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 55px;
|
||||||
|
right: 0;
|
||||||
|
padding: 0 10px;
|
||||||
|
font-size: 24px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.qr-icon {
|
||||||
|
line-height: 45px;
|
||||||
|
}
|
||||||
.zero-state-cta {
|
.zero-state-cta {
|
||||||
padding-bottom: 3vh;
|
padding-bottom: 3vh;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
@import "includes/actionSheet";
|
@import "includes/actionSheet";
|
||||||
@import "export";
|
@import "export";
|
||||||
@import "import";
|
@import "import";
|
||||||
|
@import "join";
|
||||||
@import "includes/walletActivity";
|
@import "includes/walletActivity";
|
||||||
@import "includes/wallets";
|
@import "includes/wallets";
|
||||||
@import "includes/modals/modals";
|
@import "includes/modals/modals";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<ion-view class="settings">
|
<ion-view id="join" class="settings">
|
||||||
<ion-nav-bar class="bar-royal">
|
<ion-nav-bar class="bar-royal">
|
||||||
<ion-nav-back-button>
|
<ion-nav-back-button>
|
||||||
</ion-nav-back-button>
|
</ion-nav-back-button>
|
||||||
|
|
@ -21,25 +21,26 @@
|
||||||
ng-required="true">
|
ng-required="true">
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label class="item item-input item-stacked-label no-border">
|
<div>
|
||||||
<span class="input-label" translate>Wallet Invitation</span>
|
<label class="item item-input item-stacked-label no-border">
|
||||||
<div class="input-notification">
|
<span class="input-label" translate>Wallet Invitation</span>
|
||||||
<i class="icon ion-checkmark-circled balanced"
|
<div class="input-notification">
|
||||||
ng-show="!joinForm.secret.$invalid"></i>
|
<i class="icon ion-checkmark-circled balanced"
|
||||||
<i class="icon ion-close-circled assertive"
|
ng-show="!joinForm.secret.$invalid"></i>
|
||||||
ng-show="joinForm.secret.$invalid && secret"></i>
|
<i class="icon ion-close-circled assertive"
|
||||||
</div>
|
ng-show="joinForm.secret.$invalid && secret"></i>
|
||||||
<div class="qr-scan-icon">
|
</div>
|
||||||
<qr-scanner class="qr-icon size-24" on-scan="join.onQrCodeScanned(data)"></qr-scanner>
|
|
||||||
<input id="secret"
|
<input id="secret"
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="{{'Paste invitation here'|translate}}"
|
placeholder="{{'Paste invitation here'|translate}}"
|
||||||
name="secret"
|
name="secret"
|
||||||
ng-model="secret"
|
ng-model="secret"
|
||||||
wallet-secret required>
|
wallet-secret required>
|
||||||
|
</label>
|
||||||
|
<div class="qr-scan-icon">
|
||||||
|
<qr-scanner class="qr-icon size-24" on-scan="join.onQrCodeScanned(data)"></qr-scanner>
|
||||||
</div>
|
</div>
|
||||||
</label>
|
</div>
|
||||||
|
|
||||||
<div class="item item-divider"></div>
|
<div class="item item-divider"></div>
|
||||||
|
|
||||||
<a class="item" ng-click="showAdvChange()">
|
<a class="item" ng-click="showAdvChange()">
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="col text-center">
|
<div class="col text-center">
|
||||||
<qr-scanner class="qr-icon size-24" on-scan="onQrCodeScanned(data)"></qr-scanner>
|
<qr-scanner class="size-24" ng-style="{'line-height': '45px'}" on-scan="onQrCodeScanned(data)"></qr-scanner>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" ng-show="isPkEncrypted">
|
<div class="row" ng-show="isPkEncrypted">
|
||||||
|
|
|
||||||
|
|
@ -12,17 +12,18 @@
|
||||||
|
|
||||||
<form name="importForm12" ng-submit="importMnemonic(importForm12)" novalidate>
|
<form name="importForm12" ng-submit="importMnemonic(importForm12)" novalidate>
|
||||||
<div class="list settings-list settings-input-group">
|
<div class="list settings-list settings-input-group">
|
||||||
<label class="item item-input item-stacked-label no-border">
|
<div>
|
||||||
<span class="input-label" translate>Type the Recovery Phrase (usually 12 words)</span>
|
<label class="item item-input item-stacked-label no-border">
|
||||||
|
<span class="input-label" translate>Type the Recovery Phrase (usually 12 words)</span>
|
||||||
|
<textarea ng-model="formData.words"
|
||||||
|
rows="3"
|
||||||
|
autocapitalize="off"
|
||||||
|
spellcheck="false"></textarea>
|
||||||
|
</label>
|
||||||
<div class="qr-scan-icon">
|
<div class="qr-scan-icon">
|
||||||
<qr-scanner class="qr-icon size-24" on-scan="processWalletInfo(data)"></qr-scanner>
|
<qr-scanner class="qr-icon size-24" on-scan="processWalletInfo(data)"></qr-scanner>
|
||||||
<textarea ng-model="formData.words"
|
|
||||||
rows="3"
|
|
||||||
autocapitalize="off"
|
|
||||||
spellcheck="false"></textarea>
|
|
||||||
</div>
|
</div>
|
||||||
</label>
|
</div>
|
||||||
|
|
||||||
<div class="item item-divider"></div>
|
<div class="item item-divider"></div>
|
||||||
|
|
||||||
<a class="item" ng-click="showAdvChange()">
|
<a class="item" ng-click="showAdvChange()">
|
||||||
|
|
|
||||||
|
|
@ -20,15 +20,17 @@
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="hasFunds" class="has-funds">
|
<div ng-if="hasFunds" class="has-funds">
|
||||||
<div class="item item-heading send-heading" translate>Recipient</div>
|
<div class="item item-heading send-heading" translate>Recipient</div>
|
||||||
<label class="item item-input bitcoin-address">
|
<div>
|
||||||
<i class="icon icon-svg placeholder-icon"><img src="img/icon-bitcoin-symbol.svg"></i>
|
<label class="item item-input bitcoin-address">
|
||||||
<div class="qr-scan-icon" ng-style="{'width': '100%'}">
|
<i class="icon icon-svg placeholder-icon"><img src="img/icon-bitcoin-symbol.svg"></i>
|
||||||
<a on-tap="openScanner()" ng-style="{'top': '6px'}">
|
<input type="text" placeholder="{{'Search or enter bitcoin address' | translate}}" ng-model="formData.search" ng-change="findContact(formData.search)" ng-model-onblur>
|
||||||
|
</label>
|
||||||
|
<div class="qr-scan-icon">
|
||||||
|
<a on-tap="openScanner()" ng-style="{'top': '55px'}">
|
||||||
<i class="icon ion-qr-scanner"></i>
|
<i class="icon ion-qr-scanner"></i>
|
||||||
</a>
|
</a>
|
||||||
<input type="text" placeholder="{{'Search or enter bitcoin address' | translate}}" ng-model="formData.search" ng-change="findContact(formData.search)" ng-model-onblur>
|
|
||||||
</div>
|
</div>
|
||||||
</label>
|
</div>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="item item-icon-right item-heading">
|
<div class="item item-icon-right item-heading">
|
||||||
<span translate>Contacts</span>
|
<span translate>Contacts</span>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue