Merge pull request #53 from cmgustavo/ref/design-15

Ref/design 15
This commit is contained in:
Matias Alejo Garcia 2016-09-02 17:01:44 -03:00 committed by GitHub
commit 22c06c73a3
21 changed files with 73 additions and 115 deletions

View File

@ -69,7 +69,7 @@ module.exports = function(grunt) {
tasks: ['concat:css']
},
sass: {
files: ['src/sass/**/*.scss'],
files: ['src/sass/**/**/*.scss'],
tasks: ['sass', 'concat:css']
},
main: {

View File

@ -21,9 +21,8 @@
<preference name="AutoHideSplashScreen" value="false" />
<preference name="FadeSplashScreen" value="true" />
<preference name="FadeSplashScreenDuration" value="1" />
<preference name="BackgroundColor" value="#2C3E50" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#2C3E50" />
<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="StatusBarBackgroundColor" value="#1e3186" />
<preference name="StatusBarStyle" value="lightcontent" />
<preference name="BackupWebStorage" value="none"/>
<preference name="windows-target-version" value="8.1"/>

View File

@ -6,7 +6,6 @@
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" type="text/css" href="css/ionic.min.css">
<link rel="stylesheet" type="text/css" href="css/copay.css">
<title>{{appConfig.nameCase}} - {{appConfig.description}}</title>
<link rel="shortcut icon" href="img/favicon.ico">

View File

@ -1,7 +1,7 @@
<div>
<h1 translate>Screenshots are not secure</h1>
<span translate>if you take a screenshot, your backup may be viewed by others apps. You can make a safe backup with paper and a pen.</span>
<button ng-click="close()" class="button button-block button-light" translate>
<button ng-click="close()" class="button button-block no-border" translate>
Got it
</button>
</div>

View File

@ -1,7 +1,7 @@
<ion-view id="onboarding-backup-request" class="onboarding">
<ion-content ng-controller="backupRequestController">
<div class="row">
<img src="../../img/onboarding-warning.svg" class="col col-75 warning">
<img src="img/onboarding-warning.svg" class="col col-75 warning">
</div>
<div class="row text-center">
<h3 translate class="col-75 col">
@ -17,7 +17,8 @@
<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" translate>Backup wallet</button>
<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>

View File

@ -1,12 +1,12 @@
<ion-view id="onboarding-backup-warning" class="onboarding">
<ion-nav-bar class="bar-stable">
<ion-view id="onboarding-backup-warning" class="onboarding" ng-controller="backupWarningController">
<ion-nav-bar>
<ion-nav-buttons side="primary">
<button class="button no-border" href ui-sref="onboarding.backupRequest">
<button class="button button-back no-border" href ui-sref="onboarding.backupRequest({walletId: walletId})">
<i class="icon ion-ios-arrow-thin-left"></i>
</button>
</ion-nav-buttons>
</ion-nav-bar>
<ion-content ng-controller="backupWarningController">
<ion-content>
<div class="row text-center">
<h3 translate class="col col-75">
Are you being watched?
@ -18,7 +18,7 @@
</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">
</div>
<div class="row text-center">
<p class="col col-60">

View File

@ -1,29 +1,27 @@
<ion-view ng-controller="collectEmailController" id="onboarding-collect-email" class="onboarding">
<ion-nav-bar class="bar-stable">
<ion-nav-buttons side="secondary">
<button class="button no-border" 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" />
<img src="img/onboarding-success.svg" class="col col-75" id="success-image" />
</div>
<div class="row text-center">
<h3 translate class="col">Wallet Created</h3>
</div>
</ion-content>
<div id="collect-email">
<div class="row text-center">
<p translate class="col col-75">Where would you like to receive email notifications about payments </p>
<div id="collect-email">
<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="save(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" required></input>
</label>
</form>
<div class="text-center">
<button class="button button-back no-border" ng-click="onboardingMailSkip()">
{{'Skip' | translate}}
</button>
</div>
</div>
<form name="emailForm" ng-submit="save(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" required></input>
</label>
</form>
</div>
<div class="overlay"></div>
<div class="overlay"></div>
</ion-content>
</ion-view>

View File

@ -10,7 +10,7 @@
</span>
<button class="button button-block button-positive" ng-click="allowNotif()" translate>Allow notifications</button>
<button class="button button-block button-light" href ui-sref="onboarding.requestBackup" translate>Not now</button>
<button class="button button-block button-light" href ui-sref="onboarding.backupRequest({walletId: walletId})" translate>Not now</button>
</div>
</ion-content>
</ion-view>

View File

@ -2,12 +2,12 @@
<ion-nav-bar class="bar-stable">
<ion-nav-title></ion-nav-title>
<ion-nav-buttons side="primary">
<button class="button no-border" ng-click="goBack()">
<button class="button back-button no-border" ng-click="goBack()">
<i class="icon ion-ios-arrow-thin-left"></i>
</button>
</ion-nav-buttons>
<ion-nav-buttons side="secondary">
<button class="button no-border" ng-show="data.index == 0" ng-click="createDefaultWallet()">
<button class="button back-button no-border" ng-show="data.index == 0" ng-click="createDefaultWallet()">
{{'Skip' | translate}}
</button>
</ion-nav-buttons>

View File

@ -3,7 +3,7 @@
<qr-scanner id="shopping-24" on-scan="goImport(data)"></qr-scanner>
<div class="text-center">
<div class="row">
<img src='../../img/bitpay-logo.svg' class="logo col col-50" />
<img src='img/bitpay-logo.svg' class="logo col col-50" />
</div>
<div class="row">
<p translate class="text-center col col-60">

View File

@ -1,7 +1,8 @@
'use strict';
angular.module('copayApp.controllers').controller('backupRequestController', function($scope, $state, $ionicPopup) {
angular.module('copayApp.controllers').controller('backupRequestController', function($scope, $state, $stateParams, $ionicPopup) {
$scope.walletId = $stateParams.walletId;
$scope.openPopup = function() {
var backupLaterPopup = $ionicPopup.show({
templateUrl: "views/includes/backupLaterPopup.html",

View File

@ -1,7 +1,8 @@
'use strict';
angular.module('copayApp.controllers').controller('backupWarningController', function($scope, $state, $ionicPopup, $stateParams, profileService) {
angular.module('copayApp.controllers').controller('backupWarningController', function($scope, $state, $stateParams, $ionicPopup, profileService) {
$scope.walletId = $stateParams.walletId;
$scope.openPopup = function() {
var backupWarningPopup = $ionicPopup.show({
templateUrl: "views/includes/backupWarningPopup.html",
@ -10,7 +11,7 @@ angular.module('copayApp.controllers').controller('backupWarningController', fun
$scope.close = function() {
backupWarningPopup.close();
$state.go('onboarding.backup');
$state.go('onboarding.backup', {walletId: $stateParams.walletId, fromOnboarding: true});
};
}
});

View File

@ -25,9 +25,13 @@ angular.module('copayApp.controllers').controller('collectEmailController', func
if (err) $log.warn(err);
configService.set(opts, function(err) {
if (err) $log.warn(err);
if (!usePushNotifications) $state.go('onboarding.backupRequest');
else $state.go('onboarding.notifications');
if (!usePushNotifications) $state.go('onboarding.backupRequest', {walletId: walletId});
else $state.go('onboarding.notifications', {walletId: walletId});
});
});
};
$scope.onboardingMailSkip = function() {
$state.go('onboarding.backupRequest', {walletId: walletId});
};
});

View File

@ -1,7 +1,8 @@
'use strict';
angular.module('copayApp.controllers').controller('notificationsController', function($scope, $state, profileService) {
angular.module('copayApp.controllers').controller('notificationsController', function($scope, $state, $stateParams, profileService) {
$scope.walletId = $stateParams.walletId;
$scope.allowNotif = function() {
profileService.pushNotificationsInit();
$state.go('onboarding.backupRequest');

View File

@ -30,9 +30,6 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct
$scope.glideraEnabled = config.glidera.enabled;
$scope.coinbaseEnabled = config.coinbase.enabled;
$scope.pushNotifications = config.pushNotifications.enabled;
if (isCordova && StatusBar.isVisible) {
StatusBar.backgroundColorByHexString("#4B6178");
}
$scope.otherWallets = lodash.filter(profileService.getWallets(self.network), function(w) {
return w.id != self.walletId;
});

View File

@ -254,12 +254,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
url: '/add',
views: {
'tab-home': {
templateUrl: 'views/add.html',
controller: function(platformInfo) {
if (platformInfo.isCordova && StatusBar.isVisible) {
StatusBar.backgroundColorByHexString("#4B6178");
}
}
templateUrl: 'views/add.html'
}
}
})
@ -565,11 +560,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
.state('onboarding', {
url: '/onboarding',
abstract: true,
template: '<ion-nav-view name="onboarding"></ion-nav-view>',
params: {
walletId: null,
fromOnboarding: null,
},
template: '<ion-nav-view name="onboarding"></ion-nav-view>'
})
.state('onboarding.welcome', {
url: '/welcome',
@ -588,7 +579,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
}
})
.state('onboarding.collectEmail', {
url: '/collectEmail',
url: '/collectEmail/:walletId',
views: {
'onboarding': {
templateUrl: 'views/onboarding/collectEmail.html'
@ -596,7 +587,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
}
})
.state('onboarding.notifications', {
url: '/notifications',
url: '/notifications/:walletId',
views: {
'onboarding': {
templateUrl: 'views/onboarding/notifications.html'
@ -604,7 +595,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
}
})
.state('onboarding.backupRequest', {
url: '/backupRequest',
url: '/backupRequest/:walletId',
views: {
'onboarding': {
templateUrl: 'views/onboarding/backupRequest.html'
@ -612,7 +603,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
}
})
.state('onboarding.backupWarning', {
url: '/backupWarning',
url: '/backupWarning/:walletId',
views: {
'onboarding': {
templateUrl: 'views/onboarding/backupWarning.html'
@ -620,7 +611,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
}
})
.state('onboarding.backup', {
url: '/backup',
url: '/backup/:walletId/:fromOnboarding',
views: {
'onboarding': {
templateUrl: 'views/backup.html'
@ -652,7 +643,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
},
},
params: {
code: null
code: null,
fromOnboarding: null
},
})
.state('onboarding.import.phrase', {
@ -807,54 +799,16 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
})
.run(function($rootScope, $state, $location, $log, $timeout, $ionicHistory, $ionicPlatform, lodash, platformInfo, profileService, uxLanguage, gettextCatalog, openURLService) {
if (platformInfo.isCordova) {
if (screen.width < 768) {
screen.lockOrientation('portrait');
} else {
window.addEventListener("orientationchange", function() {
var leftMenuWidth = document.querySelector("ion-side-menu[side='left']").clientWidth;
if (screen.orientation.includes('portrait')) {
// Portrait
document.querySelector("ion-side-menu-content").style.width = (screen.width - leftMenuWidth) + "px";
} else {
// Landscape
document.querySelector("ion-side-menu-content").style.width = (screen.height - leftMenuWidth) + "px";
}
});
}
} else {
if (screen.width >= 768) {
window.addEventListener('resize', lodash.throttle(function() {
$rootScope.$emit('Local/WindowResize');
}, 100));
}
}
uxLanguage.init();
openURLService.init();
$ionicPlatform.ready(function() {
if (platformInfo.isCordova) {
window.addEventListener('native.keyboardhide', function() {
$timeout(function() {
$rootScope.shouldHideMenuBar = false; //show menu bar when keyboard is hidden with back button action on send screen
}, 100);
});
window.addEventListener('native.keyboardshow', function() {
$timeout(function() {
$rootScope.shouldHideMenuBar = true; //hide menu bar when keyboard opens with back button action on send screen
}, 300);
});
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
StatusBar.styleLightContent();
}
$ionicPlatform.registerBackButtonAction(function(e) {
@ -873,8 +827,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
}, 5000);
}
e.preventDefault();
},
101);
}, 101);
$ionicPlatform.on('pause', function() {
// Nothing to do
@ -890,7 +843,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
setTimeout(function() {
navigator.splashscreen.hide();
}, 1000);
}, 500);
}

View File

@ -1,6 +1,6 @@
'use strict';
angular.module('copayApp.services').factory('incomingData', function($log, $ionicModal, $state, bitcore) {
angular.module('copayApp.services').factory('incomingData', function($log, $ionicModal, $state, $window, bitcore) {
var root = {};
@ -63,10 +63,10 @@ angular.module('copayApp.services').factory('incomingData', function($log, $ioni
return $state.go('send.amount', {toAddress: data})
// copay: protocol
} else if (data.indexOf('copay://glidera')==0) {
// Protocol
} else if (data.indexOf($window.appConfig.name + '://glidera')==0) {
return $state.go('uriglidera', {url: data})
} else if (data.indexOf('copay://coinbase')==0) {
} else if (data.indexOf($window.appConfig.name + '://coinbase')==0) {
return $state.go('uricoinbase', {url: data})
// Join

View File

@ -1,5 +1,8 @@
#onboarding-collect-email {
background: rgb(17, 209, 166);
.scroll {
height: 100%;
}
#success-image {
margin-top: 4rem;
}
@ -11,17 +14,18 @@
opacity: 1;
background: #fff;
color: rgb(108, 108, 108);
height: 11rem;
height: 13rem;
animation-name: topBottom;
animation-iteration-count: 1;
animation-timing-function: ease-in;
animation-duration: 1s;
animation-delay: 2s;
position: absolute;
bottom: -100%;
bottom: -13rem;
animation-fill-mode: forwards;
z-index: 5;
margin-top: 0;
width: 100%;
label {
background: rgba(200, 200, 200, 0.20);
height: 3rem;

View File

@ -7,7 +7,7 @@
#shopping-24 {
content: url("../img/onboarding-welcome-shopping24.png");
position: absolute;
top: 2%;
top: 5%;
right: 5%;
width: 35px;
height: auto;
@ -17,7 +17,7 @@
@include center-block();
}
.logo {
margin-top: 15rem;
margin-top: 13rem;
}
button {
@include center-block(1rem);

View File

@ -34,7 +34,7 @@
background-size: contain;
width: 100%;
clear: both;
height: 20rem;
height: 23rem;
margin-bottom: -3rem;
background-position: center;
background-repeat: no-repeat;

View File

@ -4,7 +4,7 @@
box-shadow: 0px 3px 3px 0px rgba(50, 50, 50, 0.2);
}
ion-content{
margin-top:1.5rem;
padding-top: 1.5rem;
color: rgba(86, 86, 86, 0.77);
p{
padding:0 2.5%;
@ -14,4 +14,4 @@
}
}
}
}
}