Hide empty addresses from othe copayers

This commit is contained in:
Yemel Jardi 2014-07-03 13:04:01 -03:00
commit fd2cf54eb4
5 changed files with 24 additions and 9 deletions

View file

@ -389,7 +389,7 @@
<div class="row">
<div class="large-9 medium-12 columns" ng-if="addresses[0]">
<div class="large-8 medium-8 columns" ng-init="showAll=0">
<a class="panel radius db" ng-repeat="addr in addresses | limitAddress:showAll"
<a class="panel radius db" ng-repeat="addr in addresses|removeEmpty|limitAddress:showAll"
ng-click="selectAddress(addr)"
ng-class="{selected : addr.address == selectedAddr.address}">
@ -411,7 +411,7 @@
</span>
</a>
<a class="secondary radius" ng-click="showAll=!showAll" ng-show="addresses.length != (addresses|limitAddress).length">
<a class="secondary radius" ng-click="showAll=!showAll" ng-show="(addresses|removeEmpty).length != (addresses|removeEmpty|limitAddress).length">
<span ng-if="!showAll">Show all</span>
<span ng-if="showAll">Show less</span>
</a>

View file

@ -33,7 +33,8 @@ angular.module('copayApp.controllers').controller('AddressesController',
$scope.addresses.push({
'address': addrinfo.addressStr,
'balance': $rootScope.balanceByAddr ? $rootScope.balanceByAddr[addrinfo.addressStr] : 0,
'isChange': addrinfo.isChange
'isChange': addrinfo.isChange,
'owned': addrinfo.owned
});
}
$scope.selectedAddr = $scope.addresses[0];

View file

@ -17,6 +17,14 @@ angular.module('copayApp.filters', [])
return false;
};
})
.filter('removeEmpty', function() {
return function(elements) {
// Hide empty addresses from other copayers
return elements.filter(function(e) {
return e.owned || e.balance > 0;
});
}
})
.filter('limitAddress', function() {
return function(elements, showAll) {
if (elements.length <= 1 || showAll) {

View file

@ -246,18 +246,22 @@ PublicKeyRing.prototype.getCosigner = function(pubKey) {
}
PublicKeyRing.prototype.getAddressesInfo = function(opts) {
PublicKeyRing.prototype.getAddressesInfo = function(opts, pubkey) {
var ret = [];
var self = this;
var cosigner = pubkey && this.getCosigner(pubkey);
this.indexes.forEach(function(index) {
ret = ret.concat(self.getAddressesInfoForIndex(index, opts));
ret = ret.concat(self.getAddressesInfoForIndex(index, opts, cosigner));
});
return ret;
}
PublicKeyRing.prototype.getAddressesInfoForIndex = function(index, opts) {
PublicKeyRing.prototype.getAddressesInfoForIndex = function(index, opts, cosigner) {
opts = opts || {};
var isOwned = index.cosigner == Structure.SHARED_INDEX
|| index.cosigner == cosigner;
var ret = [];
if (!opts.excludeChange) {
for (var i = 0; i < index.changeIndex; i++) {
@ -265,7 +269,8 @@ PublicKeyRing.prototype.getAddressesInfoForIndex = function(index, opts) {
ret.unshift({
address: a,
addressStr: a.toString(),
isChange: true
isChange: true,
owned: isOwned
});
}
}
@ -276,7 +281,8 @@ PublicKeyRing.prototype.getAddressesInfoForIndex = function(index, opts) {
ret.unshift({
address: a,
addressStr: a.toString(),
isChange: false
isChange: false,
owned: isOwned
});
}
}

View file

@ -588,7 +588,7 @@ Wallet.prototype.getAddressesStr = function(opts) {
};
Wallet.prototype.getAddressesInfo = function(opts) {
return this.publicKeyRing.getAddressesInfo(opts);
return this.publicKeyRing.getAddressesInfo(opts, this.publicKey);
};
Wallet.prototype.addressIsOwn = function(addrStr, opts) {