mirror of https://github.com/BTCPrivate/copay.git
Merge pull request #730 from yemel/fix/new-address-on-payment
Change default address list
This commit is contained in:
commit
da445e7c69
|
@ -413,7 +413,7 @@
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a class="secondary radius" ng-click="showAll=!showAll" ng-show="(addresses|withoutFunds) > 1">
|
<a class="secondary radius" ng-click="showAll=!showAll" ng-show="addresses.length != (addresses|limitAddress).length">
|
||||||
<span ng-if="!showAll">Show all</span>
|
<span ng-if="!showAll">Show all</span>
|
||||||
<span ng-if="showAll">Show less</span>
|
<span ng-if="showAll">Show less</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -17,41 +17,16 @@ angular.module('copayApp.filters', [])
|
||||||
})
|
})
|
||||||
.filter('limitAddress', function() {
|
.filter('limitAddress', function() {
|
||||||
return function(elements, showAll) {
|
return function(elements, showAll) {
|
||||||
var addrs = [];
|
if (elements.length <= 1 || showAll) {
|
||||||
if (elements.length > 0) {
|
|
||||||
if (showAll) {
|
|
||||||
return elements;
|
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++) {
|
// Show last 3 non-change addresses plus those with balance
|
||||||
if (elements[i].balance && elements[i].balance > 0) {
|
var addrs = elements.filter(function(e, i) {
|
||||||
addrs.push(elements[i]);
|
return (!e.isChange && i < 3) || (e.balance && e.balance > 0);
|
||||||
}
|
});
|
||||||
}
|
|
||||||
return addrs;
|
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;
|
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
;
|
;
|
||||||
|
|
|
@ -1,6 +1,56 @@
|
||||||
|
'use strict';
|
||||||
//
|
//
|
||||||
// test/unit/filters/filtersSpec.js
|
// test/unit/filters/filtersSpec.js
|
||||||
//
|
//
|
||||||
describe("Unit: Testing Filters", function() {
|
describe('Unit: Testing Filters', function() {
|
||||||
|
|
||||||
|
beforeEach(module('copayApp.filters'));
|
||||||
|
|
||||||
|
describe('limitAddress', function() {
|
||||||
|
|
||||||
|
it('should handle emtpy list', inject(function($filter) {
|
||||||
|
var limitAddress = $filter('limitAddress');
|
||||||
|
expect(limitAddress([], false)).to.be.empty;
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should honor show all', inject(function($filter) {
|
||||||
|
var limitAddress = $filter('limitAddress');
|
||||||
|
var addresses = [{}, {}, {}, {}, {}];
|
||||||
|
expect(limitAddress(addresses, true).length).to.equal(5);
|
||||||
|
expect(limitAddress([{}], false).length).to.equal(1);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should filter correctly', inject(function($filter) {
|
||||||
|
var limitAddress = $filter('limitAddress');
|
||||||
|
var addresses = [
|
||||||
|
{isChange: true, balance: 0},
|
||||||
|
{isChange: false, balance: 0},
|
||||||
|
{isChange: true, balance: 0},
|
||||||
|
{isChange: false, balance: 0},
|
||||||
|
{isChange: true, balance: 0},
|
||||||
|
{isChange: false, balance: 0},
|
||||||
|
{isChange: true, balance: 0},
|
||||||
|
{isChange: false, balance: 0}
|
||||||
|
];
|
||||||
|
expect(limitAddress(addresses, false).length).to.equal(1);
|
||||||
|
|
||||||
|
addresses[0].isChange = false;
|
||||||
|
expect(limitAddress(addresses, false).length).to.equal(2);
|
||||||
|
|
||||||
|
addresses[2].isChange = false;
|
||||||
|
expect(limitAddress(addresses, false).length).to.equal(3);
|
||||||
|
|
||||||
|
addresses[3].isChange = false;
|
||||||
|
expect(limitAddress(addresses, false).length).to.equal(3);
|
||||||
|
|
||||||
|
addresses[0].balance = 20;
|
||||||
|
expect(limitAddress(addresses, false).length).to.equal(3);
|
||||||
|
|
||||||
|
addresses[0].balance = 20;
|
||||||
|
expect(limitAddress(addresses, false).length).to.equal(3);
|
||||||
|
|
||||||
|
addresses[7].balance = 20;
|
||||||
|
expect(limitAddress(addresses, false).length).to.equal(4);
|
||||||
|
}));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue