Split signin.html in home, join and open files. Signin process with responsive support

This commit is contained in:
Gustavo Maximiliano Cortez 2014-07-23 17:10:02 -03:00
parent f4d4f819de
commit 9875e9d643
21 changed files with 333 additions and 292 deletions

View File

@ -52,6 +52,22 @@
}
}
::-webkit-input-placeholder {
color: #7A8C9E;
}
:-moz-placeholder { /* Firefox 18- */
color: #7A8C9E;
}
::-moz-placeholder { /* Firefox 19+ */
color: #7A8C9E;
}
:-ms-input-placeholder {
color: #7A8C9E;
}
#qr-canvas { display: none; }
#qrcode-scanner-video {
display: block;
@ -93,12 +109,13 @@ a {
color: #3498DB;
}
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill, input:-webkit-autofill:focus, textarea:-webkit-autofill:focus, select:-webkit-autofill:focus {
-webkit-box-shadow: 0 0 0px 1000px white inset;
}
.signin label, .setup label {
.join label,
.open label,
.setup label {
font-size: 0.875rem;
color: #fff;
font-weight: 100;
@ -108,7 +125,8 @@ a:hover {
color: #2980b9;
}
.signin input,
.open input,
.join input,
.setup input,
.import input,
.settings input {
@ -119,7 +137,8 @@ a:hover {
color: #7A8C9E !important;
}
.signin select,
.open select,
.join select,
.setup select,
.import select,
.settings select {
@ -194,7 +213,7 @@ a:hover {
background-color: #F8F8FB;
}
.signin, .setup, .import, .settings {
.home, .open, .join, .waiting-copayers, .setup, .import, .settings {
margin-top: 15%;
color: #fff;
}
@ -218,9 +237,8 @@ a:hover {
}
.logo-setup {
position: absolute;
top: 45%;
left: 8%;
text-align: center;
margin-top: 9%;
}
.box-setup {
@ -306,9 +324,9 @@ a:hover {
display: block;
padding: 20px 30px;
background: #34495E;
color: #fff;
margin-bottom: 20px;
font-weight: 100;
font-size: 24px;
}
.button-setup a:hover {
@ -379,7 +397,6 @@ a:hover {
.line-dashed-setup-v {
border-left: 1px dashed #415970;
padding-left: 3rem;
}
.line-dashed-v {
@ -895,7 +912,7 @@ input.ng-invalid-match, input.ng-invalid-match:focus {
border-color: red;
}
.copayers h3, .copayers h4 {
.copayers h3, .copayers h4, .waiting-copayers h4 {
color: #fff;
font-weight: 100;
}
@ -916,7 +933,7 @@ input.ng-invalid-match, input.ng-invalid-match:focus {
}
.text-light {font-weight: 100;}
.text-gray {color: #8597A7 !important;}
.text-gray {color: #8597A7;}
.text-primary {color: #1ABC9C;}
.text-secondary {color: #3498DB;}
.text-white {color: #fff;}

View File

@ -4,4 +4,20 @@
*
*/
@media (max-width: 1024px) {
.line-dashed-setup-v,
.line-dashed-v,
.line-dashed-h {
border: none;
}
.logo-setup {
margin: 10px 0;
}
.home, .open, .join, .waiting-copayers, .setup, .import, .settings {
margin-top: 0;
}
}

View File

@ -66,13 +66,15 @@
<script src="js/services/isMobile.js"></script>
<script src="js/services/uriHandler.js"></script>
<script src="js/controllers/home.js"></script>
<script src="js/controllers/open.js"></script>
<script src="js/controllers/join.js"></script>
<script src="js/controllers/video.js"></script>
<script src="js/controllers/sidebar.js"></script>
<script src="js/controllers/addresses.js"></script>
<script src="js/controllers/transactions.js"></script>
<script src="js/controllers/send.js"></script>
<script src="js/controllers/backup.js"></script>
<script src="js/controllers/signin.js"></script>
<script src="js/controllers/setup.js"></script>
<script src="js/controllers/import.js"></script>
<script src="js/controllers/settings.js"></script>

10
js/controllers/home.js Normal file
View File

@ -0,0 +1,10 @@
'use strict';
angular.module('copayApp.controllers').controller('HomeController',
function($scope, $rootScope, walletFactory, notification) {
$scope.loading = false;
if ($rootScope.pendingPayment) {
notification.info('Login Required', 'Please open wallet to complete payment');
}
$scope.hasWallets = walletFactory.getWallets().length > 0 ? true : false;
});

37
js/controllers/join.js Normal file
View File

@ -0,0 +1,37 @@
'use strict';
angular.module('copayApp.controllers').controller('JoinController',
function($scope, $rootScope, walletFactory, controllerUtils, Passphrase, notification) {
$scope.loading = false;
$scope.join = function(form) {
if (form && form.$invalid) {
notification.error('Error', 'Please enter the required fields');
return;
}
$scope.loading = true;
walletFactory.network.on('badSecret', function() {});
Passphrase.getBase64Async($scope.joinPassword, function(passphrase) {
walletFactory.joinCreateSession($scope.connectionId, $scope.nickname, passphrase, function(err, w) {
$scope.loading = false;
if (err || !w) {
if (err === 'joinError')
notification.error('Can\'t find peer.');
else if (err === 'walletFull')
notification.error('The wallet is full');
else if (err === 'badNetwork')
notification.error('Network Error', 'The wallet your are trying to join uses a different Bitcoin Network. Check your settings.');
else if (err === 'badSecret')
notification.error('Bad secret', 'The secret string you entered is invalid');
else
notification.error('Unknown error');
controllerUtils.onErrorDigest();
} else {
controllerUtils.startNetwork(w, $scope);
}
});
});
}
});

43
js/controllers/open.js Normal file
View File

@ -0,0 +1,43 @@
'use strict';
angular.module('copayApp.controllers').controller('OpenController',
function($scope, $rootScope, walletFactory, controllerUtils, Passphrase, notification) {
var cmp = function(o1, o2) {
var v1 = o1.show.toLowerCase(),
v2 = o2.show.toLowerCase();
return v1 > v2 ? 1 : (v1 < v2) ? -1 : 0;
};
$scope.loading = false;
$scope.wallets = walletFactory.getWallets().sort(cmp);
$scope.selectedWalletId = $scope.wallets.length ? $scope.wallets[0].id : null;
$scope.openPassword = '';
$scope.open = function(form) {
if (form && form.$invalid) {
notification.error('Error', 'Please enter the required fields');
return;
}
$scope.loading = true;
var password = form.openPassword.$modelValue;
Passphrase.getBase64Async(password, function(passphrase) {
var w, errMsg;
try {
var w = walletFactory.open($scope.selectedWalletId, {
passphrase: passphrase
});
} catch (e) {
errMsg = e.message;
};
if (!w) {
$scope.loading = false;
notification.error('Error', errMsg || 'Wrong password');
$rootScope.$digest();
return;
}
controllerUtils.startNetwork(w, $scope);
});
};
});

View File

@ -74,7 +74,7 @@ angular.module('copayApp.controllers').controller('SettingsController',
unitToSatoshi: $scope.selectedUnit.value,
}));
var target = ($window.location.origin !== 'null' ? $window.location.origin : '') + '/signin';
var target = ($window.location.origin !== 'null' ? $window.location.origin : '');
$window.location.href = target;
};

View File

@ -1,100 +0,0 @@
'use strict';
angular.module('copayApp.controllers').controller('SigninController',
function($scope, $rootScope, $location, walletFactory, controllerUtils, Passphrase, backupService, notification) {
var cmp = function(o1, o2) {
var v1 = o1.show.toLowerCase(),
v2 = o2.show.toLowerCase();
return v1 > v2 ? 1 : (v1 < v2) ? -1 : 0;
};
$rootScope.videoInfo = {};
$scope.loading = false;
$scope.wallets = walletFactory.getWallets().sort(cmp);
$scope.selectedWalletId = $scope.wallets.length ? $scope.wallets[0].id : null;
$scope.openPassword = '';
if ($rootScope.pendingPayment) {
notification.info('Login Required', 'Please open wallet to complete payment');
}
$scope.open = function(form) {
if (form && form.$invalid) {
notification.error('Error', 'Please enter the required fields');
return;
}
$scope.loading = true;
var password = form.openPassword.$modelValue;
Passphrase.getBase64Async(password, function(passphrase) {
var w, errMsg;
try {
var w = walletFactory.open($scope.selectedWalletId, {
passphrase: passphrase
});
} catch (e) {
errMsg = e.message;
};
if (!w) {
$scope.loading = false;
notification.error('Error', errMsg || 'Wrong password');
$rootScope.$digest();
return;
}
controllerUtils.startNetwork(w, $scope);
});
};
$scope.join = function(form) {
if (form && form.$invalid) {
notification.error('Error', 'Please enter the required fields');
return;
}
$scope.loading = true;
walletFactory.network.on('badSecret', function() {});
Passphrase.getBase64Async($scope.joinPassword, function(passphrase) {
walletFactory.joinCreateSession($scope.connectionId, $scope.nickname, passphrase, function(err, w) {
$scope.loading = false;
if (err || !w) {
if (err === 'joinError')
notification.error('Can\'t find peer.');
else if (err === 'walletFull')
notification.error('The wallet is full');
else if (err === 'badNetwork')
notification.error('Network Error', 'The wallet your are trying to join uses a different Bitcoin Network. Check your settings.');
else if (err === 'badSecret')
notification.error('Bad secret', 'The secret string you entered is invalid');
else
notification.error('Unknown error');
controllerUtils.onErrorDigest();
} else {
controllerUtils.startNetwork(w, $scope);
}
});
});
}
$scope.isHome = 1;
$scope.isJoin = 0;
$scope.isOpen = 0;
$scope.backWallet = function() {
$scope.isHome = 1;
$scope.isJoin = 0;
$scope.isOpen = 0;
};
$scope.openWallet = function() {
$scope.isHome = 0;
$scope.isJoin = 0;
$scope.isOpen = 1;
};
$scope.joinWallet = function() {
$scope.isHome = 0;
$scope.isOpen = 0;
$scope.isJoin = 1;
};
});

View File

@ -10,7 +10,7 @@ angular.module('copayApp.controllers').controller('UriPaymentController', functi
$scope.message = $rootScope.pendingPayment.message;
$timeout(function() {
$location.path('signin');
$location.path('/');
}, 1000);

View File

@ -3,6 +3,8 @@
angular.module('copayApp.controllers').controller('VideoController',
function($scope, $rootScope, $sce) {
$rootScope.videoInfo = {};
// Cached list of copayers
$scope.copayers = $rootScope.wallet.getRegisteredPeerIds();

View File

@ -7,11 +7,15 @@ angular
$routeProvider
.when('/', {
templateUrl: 'views/signin.html',
templateUrl: 'views/home.html',
validate: false
})
.when('/signin', {
templateUrl: 'views/signin.html',
.when('/open', {
templateUrl: 'views/open.html',
validate: false
})
.when('/join', {
templateUrl: 'views/join.html',
validate: false
})
.when('/import', {
@ -68,7 +72,7 @@ angular
$location.path('unsupported');
} else {
if ((!$rootScope.wallet || !$rootScope.wallet.id) && next.validate) {
$location.path('signin');
$location.path('/');
}
}
});

View File

@ -27,7 +27,7 @@ angular.module('copayApp.services')
}
}
$location.path('signin');
$location.path('/');
};
root.onError = function(scope) {

28
views/home.html Normal file
View File

@ -0,0 +1,28 @@
<div class="home" ng-controller="HomeController">
<div class="row">
<div class="large-4 columns logo-setup">
<img src="../img/logo-negative-beta.svg" alt="Copay">
</div>
<div class="large-8 columns line-dashed-setup-v">
<div class="button-setup" ng-show="hasWallets">
<a class="text-white" href="/open">Open a wallet</a>
</div>
<div class="button-setup" ng-show="!hasWallets">
<a class="text-secondary" href="/setup">Create a new wallet</a>
</div>
<div class="button-setup">
<a class="text-primary" href="/join">Join a Wallet in Creation</a>
</div>
<div class="button-setup" ng-show="hasWallets">
<a class="text-secondary" href="/setup">Create a wallet</a>
</div>
<div class="footer-setup">
<a class="right size-12 text-gray" href="/settings"><i class="m10r size-14 fi-wrench"></i>Settings</a>
<a class="left size-12 text-gray" href="/import"><i class="m10r size-14 fi-upload"></i>Import a backup</a>
</div>
</div>
</div>
</div>

View File

@ -1,10 +1,10 @@
<div ng-controller="ImportController">
<div class="import" ng-controller="ImportController">
<div data-alert class="loading-screen" ng-show="loading">
<i class="size-60 fi-bitcoin-circle icon-rotate spinner"></i>
{{ importStatus }}
</div>
<div class="row import" ng-init="choosefile=0; pastetext=0" ng-show="!loading">
<div class="large-4 columns logo-setup text-center">
<div class="row" ng-init="choosefile=0; pastetext=0" ng-show="!loading">
<div class="large-4 columns logo-setup">
<img src="../img/logo-negative-beta.svg" alt="Copay">
</div>
<div class="large-8 columns line-dashed-setup-v">
@ -20,7 +20,7 @@
<input type="password" class="form-control" placeholder="Your wallet password" name="password" ng-model="password" required>
<div class="text-right">
<a class="back-button text-white m20r" href="/signin">&laquo; Back</a>
<a class="back-button text-white m20r" href="/">&laquo; Back</a>
<button type="submit" class="button primary m0" ng-disabled="importForm.$invalid" loading="Importing">
Import backup
</button>

View File

@ -1,6 +1,6 @@
<div ng-controller="BackupController" ng-if='$root.wallet && !$root.wallet.isReady() && !loading'>
<div class="row signin">
<div class="large-4 columns logo-setup text-center">
<div class="waiting-copayers" ng-controller="BackupController" ng-if='$root.wallet && !$root.wallet.isReady() && !loading'>
<div class="row">
<div class="large-4 columns logo-setup">
<img src="../img/logo-negative-beta.svg" alt="Copay">
</div>
<div class="large-8 columns line-dashed-setup-v">
@ -9,7 +9,8 @@
<h1 class="text-primary line-sidebar-b">Waiting copayers</h1>
<h3>Share this secret with your other copayers</h3>
<div class="panel">
<p class="ellipsis text-gray size-14">{{$root.wallet.getSecret()}}</p>
<div class="ellipsis text-gray
size-14">{{$root.wallet.getSecret()}}</div>
</div>
</div>
<h1 class="text-white line-sidebar-b" ng-if="$root.wallet && $root.wallet.publicKeyRing.isComplete()">New Wallet Created </h1>
@ -25,10 +26,10 @@
</div>
</div>
<div class="row">
<div class="large-8 columns text-left">
<h3 ng-show="!$root.wallet.publicKeyRing.isComplete()">Waiting Copayers for {{$root.wallet.getName()}}</h3>
<div class="large-10 columns text-left">
<h4 ng-show="!$root.wallet.publicKeyRing.isComplete()">Waiting Copayers for {{$root.wallet.getName()}}</h4>
</div>
<div class="large-4 columns text-right">
<div class="large-2 columns text-right">
<small class="text-gray" ng-show="$root.wallet && !$root.wallet.publicKeyRing.isComplete()">
{{$root.wallet.requiredCopayers}}-of-{{$root.wallet.totalCopayers}} wallet
</small>
@ -51,7 +52,7 @@
</p>
</div>
</div>
<div class="line-sidebar-b"></div>
<div class="line-sidebar-b" ng-if="$root.wallet && $root.wallet.publicKeyRing.isComplete()"></div>
<div class="text-gray m10t" ng-if="$root.wallet && $root.wallet.publicKeyRing.isComplete()">
<i class="text-white fi-loop icon-rotate spinner"></i> Waiting for other
copayers to make a Backup

View File

@ -15,6 +15,7 @@
width="70">
<div
class="ellipsis"
tooltip="ID: {{copayer.peerId}}"
tooltip-placement="bottom">
<small class="text-gray" ng-show="copayer.index == 0"><i class="fi-check m5r"></i>you</small>

41
views/join.html Normal file
View File

@ -0,0 +1,41 @@
<div class="join" ng-controller="JoinController">
<div data-alert class="loading-screen" ng-show="loading && !failure">
<i class="size-60 fi-bitcoin-circle icon-rotate spinner"></i>
Authenticating and looking for peers...
</div>
<div class="row" ng-show="!loading">
<div class="large-4 columns logo-setup">
<img src="../img/logo-negative-beta.svg" alt="Copay">
</div>
<div class="large-8 columns line-dashed-setup-v">
<div class="box-setup">
<h1 class="text-primary line-sidebar-b">Join a Wallet in Creation</h1>
<form name="joinForm" ng-submit="join(joinForm)" novalidate>
<label for="connectionId"> Wallet Setting </label>
<input id="connectionId" type="text" class="form-control" placeholder="Paste wallet secret here" name="connectionId" ng-model="connectionId" wallet-secret required>
<label for="joinPassword"> User info</label>
<input id="joinPassword" type="text" class="form-control" placeholder="Your name (optional)" name="nickname" ng-model="nickname">
<input type="password" class="form-control"
placeholder="Choose your password" name="joinPassword"
ng-model="$parent.joinPassword"
check-strength="passwordStrength"
tooltip-html-unsafe="Password strength:
<i>{{passwordStrength}}</i><br/><span class='size-12'>Tip: Use lower and uppercase,
numbers and symbols</span>" tooltip-trigger="focus" required>
<input type="password"
placeholder="Repeat password"
name="joinPasswordConfirm"
ng-model="joinPasswordConfirm"
match="joinPassword" required>
<div class="text-right">
<a href="/" class="back-button text-primary m20r">&laquo; Back</a>
<button type="submit" class="button primary m0" ng-disabled="joinForm.$invalid || loading" loading="Joining">Join</button>
</div>
</form>
</div>
</div>
</div> <!-- End !loading -->
</div>

27
views/open.html Normal file
View File

@ -0,0 +1,27 @@
<div class="open" ng-controller="OpenController">
<div data-alert class="loading-screen" ng-show="loading && !failure">
<i class="size-60 fi-bitcoin-circle icon-rotate spinner"></i>
Authenticating and looking for peers...
</div>
<div class="row" ng-show="!loading">
<div class="large-4 columns logo-setup">
<img src="../img/logo-negative-beta.svg" alt="Copay">
</div>
<div class="large-8 columns line-dashed-setup-v">
<div class="box-setup">
<h1 class="text-white line-sidebar-b">Open Wallet</h1>
<form name="openForm" ng-submit="open(openForm)" novalidate>
<select class="form-control" ng-model="selectedWalletId" ng-options="w.id as w.show for w in wallets" required>
</select>
<input type="password" class="form-control" placeholder="Your password" name="openPassword" ng-model="openPassword" required>
<div class="text-right">
<a href="/" class="back-button text-white m20r">&laquo; Back</a>
<button type="submit" class="button white m0" ng-disabled="openForm.$invalid || loading" loading="Opening">Open</button>
</div>
</form>
</div>
</div>
</div> <!-- End !loading -->
</div>

View File

@ -1,73 +1,75 @@
<div class="row settings" ng-controller="SettingsController">
<div class="large-4 columns logo-setup text-center">
<img src="../img/logo-negative-beta.svg" alt="Copay">
</div>
<div class="large-8 columns line-dashed-setup-v">
<div class="box-setup">
<h1 class="text-white line-sidebar-b">{{title}}</h1>
<form name="settingsForm">
<fieldset>
<legend>Bitcoin Network</legend>
<input id="network-name" type="checkbox" ng-model="networkName"
ng-true-value="livenet" ng-false-value="testnet" class="form-control" ng-click="changeNetwork()"
ng-disabled="forceNetwork"
ng-checked="networkName == 'livenet' ? true : false">
<label for="network-name">Livenet</label>
<div ng-show="forceNetwork">
Network has been fixed to
<strong>{{networkName}}</strong> in this setup. See <a href="https://copay.io">copay.io</a>
for options to use Copay on both livenet and testnet.
<div class="settings" ng-controller="SettingsController">
<div class="row">
<div class="large-4 columns logo-setup">
<img src="../img/logo-negative-beta.svg" alt="Copay">
</div>
<div class="large-8 columns line-dashed-setup-v">
<div class="box-setup">
<h1 class="text-white line-sidebar-b">{{title}}</h1>
<form name="settingsForm">
<fieldset>
<legend>Bitcoin Network</legend>
<input id="network-name" type="checkbox" ng-model="networkName"
ng-true-value="livenet" ng-false-value="testnet" class="form-control" ng-click="changeNetwork()"
ng-disabled="forceNetwork"
ng-checked="networkName == 'livenet' ? true : false">
<label for="network-name">Livenet</label>
<div ng-show="forceNetwork">
Network has been fixed to
<strong>{{networkName}}</strong> in this setup. See <a href="https://copay.io">copay.io</a>
for options to use Copay on both livenet and testnet.
</div>
</fieldset>
<fieldset>
<legend>Wallet Unit</legend>
<select class="form-control" ng-model="selectedUnit" ng-options="o.name for o in unitOpts" required>
</select>
</fieldset>
<fieldset>
<legend>Videoconferencing</legend>
<input id="disableVideo-opt" type="checkbox" ng-model="disableVideo" class="form-control">
<label for="disableVideo-opt">Disable videoconferencing (for slow networks)</label>
</fieldset>
<fieldset>
<legend>Insight API server</legend>
<label for="insight-host">Host</label>
<input type="text" ng-model="insightHost" class="form-control" name="insight-host">
<label for="insight-port">Port</label>
<input type="number" ng-model="insightPort" class="form-control" name="insight-port">
<input id="insight-secure" type="checkbox" ng-model="insightSecure" class="form-control" ng-click="changeInsightSSL()">
<label for="insight-secure">Use SSL</label>
<p class="small">
Insight API server is open-source software. You can run your own
instance, check <a href="http://insight.is" target="_blank">Insight
API Homepage</a></p>
</fieldset>
<fieldset>
<legend>PeerJS server</legend>
<label for="peerjs-key">Key</label>
<input type="text" ng-model="networkKey" class="form-control" name="peerjs-key">
<label for="peerjs-host">Host</label>
<input type="text" ng-model="networkHost" class="form-control" name="peerjs-host">
<label for="peerjs-port">Port</label>
<input type="number" ng-model="networkPort" class="form-control" name="peerjs-port">
<input id="peerjs-secure" type="checkbox" ng-model="networkSecure" class="form-control">
<label for="peerjs-secure">Use SSL</label>
<p class="small">
PeerJS Server is open-source software. You can run your own instance, or use PeerJS Server cloud. Check <a href="http://peerjs.com" target="_blank">PeerJS Server</a>
</p>
</fieldset>
<div class="text-right">
<a class="back-button text-white m20r" href="/" ng-hide="$root.wallet">&laquo; Back</a>
<button type="submit" class="button primary m0 ng-binding" ng-disabled="setupForm.$invalid || loading" disabled="disabled" ng-click="save()">
Save
</button>
</div>
</fieldset>
<fieldset>
<legend>Wallet Unit</legend>
<select class="form-control" ng-model="selectedUnit" ng-options="o.name for o in unitOpts" required>
</select>
</fieldset>
<fieldset>
<legend>Videoconferencing</legend>
<input id="disableVideo-opt" type="checkbox" ng-model="disableVideo" class="form-control">
<label for="disableVideo-opt">Disable videoconferencing (for slow networks)</label>
</fieldset>
<fieldset>
<legend>Insight API server</legend>
<label for="insight-host">Host</label>
<input type="text" ng-model="insightHost" class="form-control" name="insight-host">
<label for="insight-port">Port</label>
<input type="number" ng-model="insightPort" class="form-control" name="insight-port">
<input id="insight-secure" type="checkbox" ng-model="insightSecure" class="form-control" ng-click="changeInsightSSL()">
<label for="insight-secure">Use SSL</label>
<p class="small">
Insight API server is open-source software. You can run your own
instance, check <a href="http://insight.is" target="_blank">Insight
API Homepage</a></p>
</fieldset>
<fieldset>
<legend>PeerJS server</legend>
<label for="peerjs-key">Key</label>
<input type="text" ng-model="networkKey" class="form-control" name="peerjs-key">
<label for="peerjs-host">Host</label>
<input type="text" ng-model="networkHost" class="form-control" name="peerjs-host">
<label for="peerjs-port">Port</label>
<input type="number" ng-model="networkPort" class="form-control" name="peerjs-port">
<input id="peerjs-secure" type="checkbox" ng-model="networkSecure" class="form-control">
<label for="peerjs-secure">Use SSL</label>
<p class="small">
PeerJS Server is open-source software. You can run your own instance, or use PeerJS Server cloud. Check <a href="http://peerjs.com" target="_blank">PeerJS Server</a>
</p>
</fieldset>
<div class="text-right">
<a class="back-button text-white m20r" href="/signin" ng-hide="$root.wallet">&laquo; Back</a>
<button type="submit" class="button primary m0 ng-binding" ng-disabled="setupForm.$invalid || loading" disabled="disabled" ng-click="save()">
Save
</button>
</div>
</form>
</form>
</div>
</div>
</div>
</div>

View File

@ -66,7 +66,7 @@
</div>
</div>
<div class="text-right">
<a ng-show="!isSetupWalletPage" class="back-button m20r" href="/signin">&laquo; Back</a>
<a ng-show="!isSetupWalletPage" class="back-button m20r" href="/">&laquo; Back</a>
<a ng-show="isSetupWalletPage" class="back-button m20r"
ng-click="setupWallet()">&laquo; Back</a>
<button ng-show="isSetupWalletPage" type="submit" class="button secondary m0" ng-disabled="setupForm.$invalid || loading">

View File

@ -1,90 +0,0 @@
<div ng-controller="SigninController">
<div data-alert class="loading-screen" ng-show="loading && !failure">
<i class="size-60 fi-bitcoin-circle icon-rotate spinner"></i>
Authenticating and looking for peers...
</div>
<div class="row signin" ng-show="!loading">
<div class="large-4 columns logo-setup text-center">
<img src="../img/logo-negative-beta.svg" alt="Copay">
</div>
<div class="large-8 columns line-dashed-setup-v">
<div class="box-setup" ng-show="!isHome && isOpen">
<h1 class="text-white line-sidebar-b">Open Wallet</h1>
<form name="openForm" ng-submit="open(openForm)" novalidate>
<select class="form-control" ng-model="selectedWalletId" ng-options="w.id as w.show for w in wallets" required>
</select>
<input type="password" class="form-control" placeholder="Your password" name="openPassword" ng-model="openPassword" required>
<div class="text-right">
<a class="back-button text-white m20r" ng-click="backWallet()">&laquo; Back</a>
<button type="submit" class="button white m0" ng-disabled="openForm.$invalid || loading" loading="Opening">Open</button>
</div>
</form>
</div>
<div ng-show="isHome && wallets.length">
<div class="button-setup">
<a ng-click="openWallet()">
<h1 class="text-white">Open a wallet</h1>
<p class="text-gray m0">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Omnis, non.</p>
</a>
</div>
</div>
<div ng-show="isHome && !wallets.length">
<div class="button-setup">
<a href="/setup">
<h1 class="text-secondary">Create a new wallet</h1>
<p class="text-gray m0">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Omnis, non.</p>
</a>
</div>
</div>
<div ng-show="!isHome && isJoin">
<div class="box-setup">
<h1 class="text-primary line-sidebar-b">Join a Wallet in Creation</h1>
<form name="joinForm" ng-submit="join(joinForm)" novalidate>
<label for="connectionId"> Wallet Setting </label>
<input id="connectionId" type="text" class="form-control" placeholder="Paste wallet secret here" name="connectionId" ng-model="connectionId" wallet-secret required>
<label for="joinPassword"> User info</label>
<input id="joinPassword" type="text" class="form-control" placeholder="Your name (optional)" name="nickname" ng-model="nickname">
<input type="password" class="form-control"
placeholder="Choose your password" name="joinPassword"
ng-model="$parent.joinPassword"
check-strength="passwordStrength"
tooltip-html-unsafe="Password strength:
<i>{{passwordStrength}}</i><br/><span class='size-12'>Tip: Use lower and uppercase,
numbers and symbols</span>" tooltip-trigger="focus" required>
<input type="password"
placeholder="Repeat password"
name="joinPasswordConfirm"
ng-model="joinPasswordConfirm"
match="joinPassword" required>
<div class="text-right">
<a class="back-button text-primary m20r" ng-click="backWallet()">&laquo; Back</a>
<button type="submit" class="button primary m0" ng-disabled="joinForm.$invalid || loading" loading="Joining">Join</button>
</div>
</form>
</div>
</div>
<div ng-show="isHome && !isJoin">
<div class="button-setup">
<a ng-click="joinWallet()">
<h1 class="text-primary">Join a Wallet in Creation</h1>
<p class="text-gray m0">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Omnis, non.</p>
</a>
</div>
</div>
<div ng-show="isHome && wallets.length">
<div class="button-setup">
<a href="/setup"><h1 class="text-secondary">Create a wallet</h1></a>
</div>
</div>
<div class="footer-setup" ng-show="isHome">
<a class="right size-12 text-gray" href="/settings"><i class="m10r size-14 fi-wrench"></i>Settings</a>
<a class="left size-12 text-gray" href="/import"><i class="m10r size-14 fi-upload"></i>Import a backup</a>
</div>
</div>
</div> <!-- End !loading -->
</div>