Merge pull request #456 from cmgustavo/feature/01-limit-addresses

Fixes #399 : Limit addresses list
This commit is contained in:
Mario Colque 2014-05-23 17:50:29 +03:00
commit b408d270f7
2 changed files with 53 additions and 5 deletions

View File

@ -324,12 +324,14 @@
<div ng-show='$root.wallet.publicKeyRing.isComplete()'>
<div class="row">
<div class="large-9 medium-12 columns" ng-if="addresses[0]">
<div class="large-8 medium-8 columns">
<a class="panel radius db" ng-repeat="addr in addresses"
<div class="large-8 medium-8 columns" ng-init="showAll=0">
<a class="panel radius db" ng-repeat="addr in addresses | limitAddress:showAll"
ng-click="selectAddress(addr)"
ng-class="{selected : addr.address == selectedAddr.address}">
<span>{{addr.address}}</span>
<span ng-if="addr.isChange">(change)</span>
<span>{{addr.address}}</span>
<small ng-if="addr.isChange">change</small>
<span class="right">
<span ng-if="addrWithFund == addr.address">
<span ng-if="$root.updatingBalance">
@ -345,7 +347,13 @@
<i class="fi-bitcoin"></i>
</span>
</span>
</a>
<button class="button small secondary radius" ng-click="showAll=!showAll" ng-show="(addresses|withoutFunds) > 1">
<span ng-if="!showAll">Show all</span>
<span ng-if="showAll">Show less</span>
</button>
</div>
<div class="large-4 medium-4 columns line-dashed-v text-center" ng-show="selectedAddr">
<qrcode size="160" data="{{selectedAddr.address}}"></qrcode>

View File

@ -24,4 +24,44 @@ angular.module('copay.filters', [])
return function(elements) {
return elements.filter(Boolean);
};
});
})
.filter('limitAddress', function() {
return function(elements, showAll) {
var addrs = [];
if (elements.length > 0) {
if (showAll) {
return elements;
}
if (elements.length == 1) {
return elements;
}
else {
for (var i=0;i<elements.length;i++) {
if (!elements[i].isChange && (!elements[i].balance || elements[i].balance == 0)) {
addrs.push(elements[i]);
break;
}
}
for (var i=0;i<elements.length;i++) {
if (elements[i].balance && elements[i].balance > 0) {
addrs.push(elements[i]);
}
}
return addrs;
}
}
};
})
.filter('withoutFunds', function() {
return function(elements) {
var len = 0;
for (var i=0;i<elements.length;i++) {
if (!elements[i].balance || elements[i].balance == 0) {
len++;
}
}
return len;
};
})
;