Merge branch 'master' into history-icon

This commit is contained in:
bechi 2014-10-31 16:02:34 -03:00
commit 1a61b58581
9 changed files with 135 additions and 117 deletions

View file

@ -80,7 +80,7 @@
font-family: 'Ubuntu', Helvetica, sans-serif !important; font-family: 'Ubuntu', Helvetica, sans-serif !important;
} }
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6, .panel h2 {
color: #2C3E50; color: #2C3E50;
} }
@ -203,6 +203,11 @@ header .alt-currency {
float: left; float: left;
} }
.col2_full {
width: 194px;
height: 62px;
}
.col3 a { .col3 a {
font-size: 20px; font-size: 20px;
display: block; display: block;
@ -245,6 +250,17 @@ input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill, inpu
-webkit-box-shadow: 0 0 0px 1000px white inset; -webkit-box-shadow: 0 0 0px 1000px white inset;
} }
.home-wallet .avatar-wallet {
background: #1ABC9C;
margin: 0;
width: 45px;
height: 45px;
font-size: 30px;
padding-top: 10px;
margin-right: 15px;
color: #FFF;
}
.side-nav.wallets .avatar-wallet{ .side-nav.wallets .avatar-wallet{
background-color: #7A8C9E; background-color: #7A8C9E;
color: #213140; color: #213140;
@ -607,14 +623,10 @@ a.button-setup {
color: #B6E9DF; color: #B6E9DF;
} }
.founds .locked { .locked {
font-size: 11px; font-size: 11px;
z-index: -99999;
background-color: #213140; background-color: #213140;
position: absolute; width: 100%;
top: 52px;
width: 250px;
left: 0;
padding: 0.3rem 0.7rem; padding: 0.3rem 0.7rem;
color: white; color: white;
border-bottom: 1px solid #374756; border-bottom: 1px solid #374756;
@ -1128,8 +1140,6 @@ a:hover .photo-container {
color: #fff; color: #fff;
} }
.side-nav {padding-top: 50px;}
.side-nav li { .side-nav li {
font-size: 16px; font-size: 16px;
line-height: 40px; line-height: 40px;

View file

@ -199,5 +199,9 @@
padding: 0.15rem 0.2rem; padding: 0.15rem 0.2rem;
} }
.line-t {
border-top: 1px solid #3C5269;
}
} }

View file

@ -50,6 +50,7 @@ angular.module('copayApp.controllers').controller('SidebarController', function(
if ($rootScope.wallet) { if ($rootScope.wallet) {
$rootScope.$watch('wallet.id', function() { $rootScope.$watch('wallet.id', function() {
$scope.walletSelection = false; $scope.walletSelection = false;
$scope.getWallets();
}); });
} }
@ -61,13 +62,23 @@ angular.module('copayApp.controllers').controller('SidebarController', function(
$scope.walletSelection = !$scope.walletSelection; $scope.walletSelection = !$scope.walletSelection;
if (!$scope.walletSelection) return; if (!$scope.walletSelection) return;
$scope.getWallets();
};
$scope.getWallets = function() {
$scope.wallets = []; $scope.wallets = [];
var wids = _.pluck($rootScope.iden.listWallets(), 'id'); var wids = _.pluck($rootScope.iden.listWallets(), 'id');
_.each(wids, function(wid) { _.each(wids, function(wid) {
if (controllerUtils.isFocusedWallet(wid)) return; if (controllerUtils.isFocusedWallet(wid)) return;
var w = $rootScope.iden.getWalletById(wid); var w = $rootScope.iden.getWalletById(wid);
$scope.wallets.push(w); $scope.wallets.push(w);
controllerUtils.updateTxsAndBalance(w); controllerUtils.updateTxs({
wallet: w,
pending: true
});
controllerUtils.updateBalance(w, function() {
$rootScope.$digest();
})
}); });
}; };
}); });

View file

@ -162,6 +162,7 @@ Compatibility.readWalletPre8 = function(walletId, password, cb) {
var self = this; var self = this;
var passphrase = cryptoUtils.kdf(password); var passphrase = cryptoUtils.kdf(password);
var obj = {}; var obj = {};
var key;
for (key in localStorage) { for (key in localStorage) {
if (key.indexOf('wallet::' + walletId) !== -1) { if (key.indexOf('wallet::' + walletId) !== -1) {

View file

@ -18,7 +18,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="box-setup-copayers p20"> <div class="panel p20">
<div class="oh"> <div class="oh">
<div ng-include="'views/includes/copayer.html'"></div> <div ng-include="'views/includes/copayer.html'"></div>
<div ng-if="!$root.wallet.isReady()"> <div ng-if="!$root.wallet.isReady()">

View file

@ -1,70 +1,68 @@
<div class="addresses" ng-controller="HomeWalletController"> <div class="home-wallet" ng-controller="HomeWalletController">
<div ng-show='$root.wallet.isReady()'> <div ng-show='$root.wallet.isReady()'>
<h1 translate class="hide-for-large-up">Home</h1> <h1 translate class="hide-for-large-up">Home</h1>
<br>
<br>
<!-- Wallet name and balance --> <!-- Wallet name and balance -->
<div> <div class="panel large-12 columns">
<div class="avatar-wallet">{{$root.wallet.getName() | limitTo: 1}}</div> <div class="row collapse">
<div class="ellipsis">{{$root.wallet.getName()}}</div> <div class="large-1 columns">
<div ng-if="$root.wallet && !$root.updatingBalance" data-options="disable_for_touch:true"> <div class="avatar-wallet">{{$root.wallet.getName() | limitTo: 1}}</div>
<b class="m5r">{{totalBalance || 0 |noFractionNumber}} {{$root.wallet.settings.unitName}}</b> </div>
<span class="alt-currency">{{totalBalanceAlternative |noFractionNumber:2}} {{alternativeIsoCode}}</span> <div class="large-9 columns">
<h2 class="ellipsis m10t">{{$root.wallet.getName()}}</h2>
</div>
<div class="large-2 columns text-right text-black" ng-if="$root.wallet && !$root.updatingBalance" data-options="disable_for_touch:true">
<b class="db m5b size-24">{{totalBalance || 0 |noFractionNumber}} {{$root.wallet.settings.unitName}}</b>
<span class="size-14 m5t text-gray">{{totalBalanceAlternative |noFractionNumber:2}} {{alternativeIsoCode}}</span>
</div> </div>
</div>
</div>
<br>
<br>
<!-- Address-->
<span translate>Quick receive</span>
<div>
<qrcode size="220" data="bitcoin:{{address.addressStr}}"></qrcode>
<div class="m10t">
<h4 class="size-12">{{address.addressStr}} <span class="btn-copy" clip-copy="address.addressStr"></span></h4>
<span ng-if="$root.updatingBalance">
<i class="fi-bitcoin-circle icon-rotate spinner"></i>
</span>
<div class="small-10 columns small-centered">
<button class="m15t button secondary hide-for-large-up" ng-show="isMobile" ng-click="mobileCopy(address.addressStr)">
<i class="fi-link">&nbsp;</i> <span translate>Copy to clipboard</span>
</button>
</div> </div>
</div> </div>
</div> </div>
<br>
<br>
<br>
<!-- List of copayers --> <!-- Address-->
<div> <div class="large-6 columns">
<div class="copay-box" ng-repeat="copayer in copayersList()"> <div class="panel oh">
<img <h2 class="line-b" translate>Quick receive</h2>
class="br100 online" <div>
src="./img/satoshi.gif" <qrcode size="220" data="bitcoin:{{address.addressStr}}"></qrcode>
alt="{{copayer.peerId}}"
width="70"> <div class="m10t">
<div <h4 class="size-12">{{address.addressStr}} <span class="btn-copy" clip-copy="address.addressStr"></span></h4>
class="ellipsis" <span ng-if="$root.updatingBalance">
tooltip="ID: {{copayer.peerId}}" <i class="fi-bitcoin-circle icon-rotate spinner"></i>
tooltip-placement="bottom"> </span>
<small class="text-gray" ng-show="copayer.index == 0"> <div class="small-10 columns small-centered">
<i class="fi-check m5r"></i>{{'Me'|translate}}</small> <button class="m15t button secondary hide-for-large-up" ng-show="isMobile" ng-click="mobileCopy(address.addressStr)">
<small class="text-gray" ng-show="copayer.index > 0"><i class="fi-check m5r"></i>{{copayer.nick}}</small> <i class="fi-link">&nbsp;</i> <span translate>Copy to clipboard</span>
</button>
</div>
</div>
</div> </div>
<div translate class="success label m10t" ng-show="isBackupReady(copayer)">Ready</div>
</div> </div>
</div> </div>
<!-- <br>
<br>
<br> <!-- Last transactions
<div>
<span translate>Last transactions</span>
</div> -->
</div> <!-- List of copayers -->
<div class="large-6 columns">
<div class="panel oh">
<h2 class="line-b" translate>Copayers</h2>
<div class="copay-box" ng-repeat="copayer in copayersList()">
<img
class="br100 online"
src="./img/satoshi.gif"
alt="{{copayer.peerId}}"
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>{{'Me'|translate}}</small>
<small class="text-gray" ng-show="copayer.index > 0"><i class="fi-check m5r"></i>{{copayer.nick}}</small>
</div>
<div translate class="success label m10t" ng-show="isBackupReady(copayer)">Ready</div>
</div>
</div>
</div>

View file

@ -59,7 +59,7 @@
<a href="#!/manage" class="button-setup add-wallet db p20h" title="Create"><i class="m5r fi-plus"></i> {{'Add Wallet' | translate }} </a> <a href="#!/manage" class="button-setup add-wallet db p20h" title="Create"><i class="m5r fi-plus"></i> {{'Add Wallet' | translate }} </a>
</div> </div>
</div> </div>
<div class="line-sidebar-t" ng-show="!walletSelection" ng-click="refresh()"> <div class="line-t" ng-show="!walletSelection" ng-click="refresh()">
<a class="side-bar text-gray right" title="Manual Refresh"><i class="fi-refresh"></i></a> <a class="side-bar text-gray right" title="Manual Refresh"><i class="fi-refresh"></i></a>
<span ng-if="$root.updatingBalance"> <span ng-if="$root.updatingBalance">
<i class="fi-bitcoin-circle icon-rotate spinner"></i> <i class="fi-bitcoin-circle icon-rotate spinner"></i>
@ -73,12 +73,13 @@
<span ng-if="$root.updatingBalance"> <span ng-if="$root.updatingBalance">
<i class="fi-bitcoin-circle icon-rotate spinner"></i> <i class="fi-bitcoin-circle icon-rotate spinner"></i>
</span> </span>
<span ng-show="!$root.updatingBalance">{{lockedBalance || 0|noFractionNumber}} {{$root.wallet.settings.unitName}} <span ng-show="!$root.updatingBalance">
</span> &nbsp;<i class="fi-info medium" tooltip="{{'Balance locked in pending transaction proposals'|translate}}" tooltip-placement="bottom"></i> {{lockedBalance || 0|noFractionNumber}} {{$root.wallet.settings.unitName}}
</span>
</div> </div>
</div> </div>
<div class="line-sidebar-t p0"></div> <div class="line-t p0"></div>
<ul class="off-canvas-list" ng-show="!walletSelection"> <ul class="off-canvas-list" ng-show="!walletSelection">
<li data-ng-repeat="item in menu" ui-route="{{item.link}}" class="nav-item" data-ng-class="{active: isActive(item)}"> <li data-ng-repeat="item in menu" ui-route="{{item.link}}" class="nav-item" data-ng-class="{active: isActive(item)}">
<a href="#!/{{item.link}}" class="db p20h"> <a href="#!/{{item.link}}" class="db p20h">

View file

@ -1,9 +1,9 @@
<div ng-controller="SidebarController"> <div ng-controller="SidebarController" ng-init="getWallets()">
<header ng-show="$root.wallet"> <header ng-show="$root.wallet">
<div class="col1"> <div class="col1">
<div class="avatar-wallet">{{$root.wallet.getName() | limitTo: 1}}</div> <div class="avatar-wallet">{{$root.wallet.getName() | limitTo: 1}}</div>
</div> </div>
<div class="col2"> <div class="col2" ng-class="{'col2_full':!wallets.0}">
<div class="oh m5t m10r"> <div class="oh m5t m10r">
<div class="right size-10">[ {{$root.wallet.requiredCopayers}} of {{$root.wallet.totalCopayers}} ]</div> <div class="right size-10">[ {{$root.wallet.requiredCopayers}} of {{$root.wallet.totalCopayers}} ]</div>
<div class="name-wallet"> <div class="name-wallet">
@ -16,21 +16,10 @@
<div ng-if="$root.wallet && !$root.updatingBalance" data-options="disable_for_touch:true"> <div ng-if="$root.wallet && !$root.updatingBalance" data-options="disable_for_touch:true">
<b class="m5r">{{totalBalance || 0 |noFractionNumber}} {{$root.wallet.settings.unitName}}</b> <b class="m5r">{{totalBalance || 0 |noFractionNumber}} {{$root.wallet.settings.unitName}}</b>
<span class="alt-currency">{{totalBalanceAlternative |noFractionNumber:2}} {{alternativeIsoCode}}</span> <span class="alt-currency">{{totalBalanceAlternative |noFractionNumber:2}} {{alternativeIsoCode}}</span>
</div> </div>
<div class="m10t locked" ng-show="lockedBalance">
<span class="text-gray">
<i class="fi-lock"></i> {{'Locked'|translate}} &nbsp;
</span>
<span ng-if="$root.updatingBalance"><i class="fi-bitcoin-circle icon-rotate spinner"></i></span>
<span ng-if="$root.wallet && !$root.updatingBalance" class="text-gray"><b>{{lockedBalance || 0|noFractionNumber}} {{$root.wallet.settings.unitName}} </b> - {{lockedBalanceAlternative |noFractionNumber:2}} {{alternativeIsoCode}}
</span>
<i class="fi-info medium right text-gray size-14" tooltip="{{'Balance locked in pending transaction proposals'|translate}}" tooltip-placement="bottom"></i>
</div>
</div> </div>
</div> </div>
<div class="col3"> <div class="col3" ng-if="wallets.0">
<a ng-class="{'selected':walletSelection}" <a ng-class="{'selected':walletSelection}"
ng-click="toggleWalletSelection()"> ng-click="toggleWalletSelection()">
<span ng-show="!walletSelection"> <span ng-show="!walletSelection">
@ -42,14 +31,18 @@
</a> </a>
</div> </div>
</header> </header>
<div class="locked" ng-show="lockedBalance">
<span class="text-gray">
<i class="fi-lock"></i> {{'Locked'|translate}} &nbsp;
</span>
<span ng-if="$root.updatingBalance"><i class="fi-bitcoin-circle icon-rotate spinner"></i></span>
<span ng-if="$root.wallet && !$root.updatingBalance" class="text-gray"><b>{{lockedBalance || 0|noFractionNumber}} {{$root.wallet.settings.unitName}} </b> - {{lockedBalanceAlternative |noFractionNumber:2}} {{alternativeIsoCode}}
</span>
<i class="fi-info medium right text-gray size-14" tooltip="{{'Balance locked in pending transaction proposals'|translate}}" tooltip-placement="bottom"></i>
</div>
<div ng-if="walletSelection"> <div ng-if="walletSelection">
<div class="side-nav wallets" ng-show="!wallets.0">
<p class="size-12" translate>You do not have another wallets. Creates one more from link below.</p>
<div class="text-center">
<i class="fi-arrow-down"></i>
</div>
</div>
<ul class="side-nav wallets" ng-show="wallets.0" <ul class="side-nav wallets" ng-show="wallets.0"
ng-class="{'large':wallets.length > 4, 'medium':wallets.length > 2 && wallets.length < 5}"> ng-class="{'large':wallets.length > 4, 'medium':wallets.length > 2 && wallets.length < 5}">
<li data-ng-repeat="item in wallets track by $index" class="nav-item" ng-if="item.id != $root.wallet.id"> <li data-ng-repeat="item in wallets track by $index" class="nav-item" ng-if="item.id != $root.wallet.id">

View file

@ -1,6 +1,21 @@
<div class="backup" ng-controller="MoreController"> <div class="backup" ng-controller="MoreController">
<h1 class="hide-for-large-up">{{$root.title}} </h1> <h1 class="hide-for-large-up">{{$root.title}} </h1>
<div class="large-12 columns panel"> <div class="row collapse">
<form name="settingsForm" class="large-6 small-12 columns">
<fieldset>
<legend translate>Wallet Unit</legend>
<select class="form-control" ng-model="selectedUnit" ng-options="o.name for o in unitOpts" ng-change="save()">
</select>
</fieldset>
<fieldset>
<legend translate>Alternative Currency</legend>
<select class="form-control" ng-model="selectedAlternative" ng-options="alternative.name for alternative in alternativeOpts" ng-change="save()">
</select>
</fieldset>
</form>
</div>
<div class="large-12 columns line-dashed-h m15b"></div>
<div class="large-6 columns panel">
<h2><i class="fi-download m10r"></i> <span translate>Backup</span> </h2> <h2><i class="fi-download m10r"></i> <span translate>Backup</span> </h2>
<p translate class="text-gray"> <p translate class="text-gray">
It's important to backup your wallet so that you can recover it in case of disaster It's important to backup your wallet so that you can recover it in case of disaster
@ -20,31 +35,16 @@
<div translate class="m10t size-12 text-gray text-right">Copy this text as it is in a safe place (notepad or email)</div> <div translate class="m10t size-12 text-gray text-right">Copy this text as it is in a safe place (notepad or email)</div>
</div> </div>
</div> </div>
<div class="large-12 columns line-dashed-h m15b"></div> <div class="large-6 columns">
<div class="row collapse"> <div class="panel oh">
<form name="settingsForm" class="large-6 small-12 columns"> <h3><i class="fi-minus-circle m10r"></i> <span translate> Delete Wallet </span></h3>
<fieldset> <p translate class="large-8 columns text-gray">If all funds have been removed from your wallet and you do not wish to have the wallet data stored on your computer anymore, you can delete your wallet.</p>
<legend translate>Wallet Unit</legend> <div class="large-4 columns">
<select class="form-control" ng-model="selectedUnit" ng-options="o.name for o in unitOpts" ng-change="save()"> <a translate class="button warning expand" ng-really-message="{{'Are you sure to delete this wallet from this computer?'|translate}}" ng-really-click="deleteWallet()"> Delete</a>
</select> </div>
</fieldset>
<fieldset>
<legend translate>Alternative Currency</legend>
<select class="form-control" ng-model="selectedAlternative" ng-options="alternative.name for alternative in alternativeOpts" ng-change="save()">
</select>
</fieldset>
</form>
</div>
<div class="large-12 columns line-dashed-h m15b"></div>
<div class="oh large-12 columns panel">
<h3><i class="fi-minus-circle m10r"></i> <span translate> Delete Wallet </span></h3>
<p translate class="large-8 columns text-gray">If all funds have been removed from your wallet and you do not wish to have the wallet data stored on your computer anymore, you can delete your wallet.</p>
<div class="large-4 columns">
<a translate class="button warning expand" ng-really-message="{{'Are you sure to delete this wallet from this computer?'|translate}}" ng-really-click="deleteWallet()"> Delete</a>
</div> </div>
</div> </div>
<p> <a class="large-12 columns small" ng-click="hideAdv=!hideAdv">
<a class="expand small" ng-click="hideAdv=!hideAdv">
<i class="fi-widget m3r"></i> <i class="fi-widget m3r"></i>
<span translate ng-hide="!hideAdv">Show</span> <span translate ng-hide="!hideAdv">Show</span>
<span translate ng-hide="hideAdv">Hide</span> <span translate ng-hide="hideAdv">Hide</span>