fix : Scanner and keyboard at same time

This commit is contained in:
Gabriel Bazán 2016-10-26 15:54:29 -03:00
commit 1ebba5c0d0
10 changed files with 83 additions and 49 deletions

View file

@ -919,13 +919,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
}
window.addEventListener('native.keyboardshow', function() {
document.querySelector('div.tabs').style.display = 'none';
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', '');
document.body.classList.add('keyboard-open');
});
$ionicPlatform.registerBackButtonAction(function(e) {

View file

@ -152,25 +152,11 @@ input[type=number] {
margin: 0 auto;
}
.qr-icon {
line-height: 45px;
}
.input-notification {
float: right;
margin-right: 10px;
}
.qr-scan-icon a {
display: block;
position: absolute;
top: 25px;
right: 0;
padding: 0 10px;
font-size: 24px;
cursor: pointer;
}
.pr {
position: relative;
}
@ -443,3 +429,11 @@ input[type=file] {
.left {
float: left;
}
.keyboard-open .tabs {
display: none;
}
.keyboard-open .has-tabs {
bottom: 0;
}

View file

@ -9,4 +9,17 @@
border-bottom-width: 2px;
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
View 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;
}
}

View file

@ -1,4 +1,17 @@
#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 {
padding-bottom: 3vh;
}

View file

@ -20,6 +20,7 @@
@import "includes/actionSheet";
@import "export";
@import "import";
@import "join";
@import "includes/walletActivity";
@import "includes/wallets";
@import "includes/modals/modals";

View file

@ -1,4 +1,4 @@
<ion-view class="settings">
<ion-view id="join" class="settings">
<ion-nav-bar class="bar-royal">
<ion-nav-back-button>
</ion-nav-back-button>
@ -21,25 +21,26 @@
ng-required="true">
</label>
<label class="item item-input item-stacked-label no-border">
<span class="input-label" translate>Wallet Invitation</span>
<div class="input-notification">
<i class="icon ion-checkmark-circled balanced"
ng-show="!joinForm.secret.$invalid"></i>
<i class="icon ion-close-circled assertive"
ng-show="joinForm.secret.$invalid && secret"></i>
</div>
<div class="qr-scan-icon">
<qr-scanner class="qr-icon size-24" on-scan="join.onQrCodeScanned(data)"></qr-scanner>
<div>
<label class="item item-input item-stacked-label no-border">
<span class="input-label" translate>Wallet Invitation</span>
<div class="input-notification">
<i class="icon ion-checkmark-circled balanced"
ng-show="!joinForm.secret.$invalid"></i>
<i class="icon ion-close-circled assertive"
ng-show="joinForm.secret.$invalid && secret"></i>
</div>
<input id="secret"
type="text"
placeholder="{{'Paste invitation here'|translate}}"
name="secret"
ng-model="secret"
wallet-secret required>
</label>
<div class="qr-scan-icon">
<qr-scanner class="qr-icon size-24" on-scan="join.onQrCodeScanned(data)"></qr-scanner>
</div>
</label>
</div>
<div class="item item-divider"></div>
<a class="item" ng-click="showAdvChange()">

View file

@ -32,7 +32,7 @@
</label>
</div>
<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 class="row" ng-show="isPkEncrypted">

View file

@ -12,17 +12,18 @@
<form name="importForm12" ng-submit="importMnemonic(importForm12)" novalidate>
<div class="list settings-list settings-input-group">
<label class="item item-input item-stacked-label no-border">
<span class="input-label" translate>Type the Recovery Phrase (usually 12 words)</span>
<div>
<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">
<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>
</label>
</div>
<div class="item item-divider"></div>
<a class="item" ng-click="showAdvChange()">

View file

@ -20,15 +20,17 @@
</div>
<div ng-if="hasFunds" class="has-funds">
<div class="item item-heading send-heading" translate>Recipient</div>
<label class="item item-input bitcoin-address">
<i class="icon icon-svg placeholder-icon"><img src="img/icon-bitcoin-symbol.svg"></i>
<div class="qr-scan-icon" ng-style="{'width': '100%'}">
<a on-tap="openScanner()" ng-style="{'top': '6px'}">
<div>
<label class="item item-input bitcoin-address">
<i class="icon icon-svg placeholder-icon"><img src="img/icon-bitcoin-symbol.svg"></i>
<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>
</a>
<input type="text" placeholder="{{'Search or enter bitcoin address' | translate}}" ng-model="formData.search" ng-change="findContact(formData.search)" ng-model-onblur>
</div>
</label>
</div>
<div class="card">
<div class="item item-icon-right item-heading">
<span translate>Contacts</span>