2014-03-14 13:38:27 -07:00
|
|
|
'use strict';
|
2014-05-16 13:18:25 -07:00
|
|
|
|
2014-06-03 12:39:06 -07:00
|
|
|
angular.module('copayApp.filters', [])
|
2014-06-24 08:36:32 -07:00
|
|
|
.filter('amTimeAgo', ['amMoment',
|
|
|
|
function(amMoment) {
|
|
|
|
return function(input) {
|
|
|
|
return amMoment.preprocessDate(input).fromNow();
|
|
|
|
};
|
|
|
|
}
|
|
|
|
])
|
2014-05-20 11:14:52 -07:00
|
|
|
.filter('paged', function() {
|
2014-05-20 14:34:55 -07:00
|
|
|
return function(elements) {
|
2014-05-26 06:46:05 -07:00
|
|
|
if (elements) {
|
|
|
|
return elements.filter(Boolean);
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
2014-05-20 11:14:52 -07:00
|
|
|
};
|
2014-05-22 13:42:56 -07:00
|
|
|
})
|
2014-07-03 09:04:01 -07:00
|
|
|
.filter('removeEmpty', function() {
|
|
|
|
return function(elements) {
|
2014-07-08 08:23:10 -07:00
|
|
|
elements = elements || [];
|
2014-07-22 12:08:57 -07:00
|
|
|
// Hide empty change addresses from other copayers
|
2014-07-03 09:04:01 -07:00
|
|
|
return elements.filter(function(e) {
|
2014-07-22 12:08:57 -07:00
|
|
|
return !e.isChange || e.balance > 0;
|
2014-07-03 09:04:01 -07:00
|
|
|
});
|
|
|
|
}
|
|
|
|
})
|
2014-05-22 13:42:56 -07:00
|
|
|
.filter('limitAddress', function() {
|
|
|
|
return function(elements, showAll) {
|
2014-08-06 14:07:01 -07:00
|
|
|
elements = elements.sort(function(a, b) {
|
2014-07-22 12:08:57 -07:00
|
|
|
return (+b.owned) - (+a.owned);
|
|
|
|
});
|
|
|
|
|
2014-06-23 09:26:13 -07:00
|
|
|
if (elements.length <= 1 || showAll) {
|
|
|
|
return elements;
|
2014-05-22 13:42:56 -07:00
|
|
|
}
|
2014-06-23 09:26:13 -07:00
|
|
|
|
|
|
|
// Show last 3 non-change addresses plus those with balance
|
|
|
|
var addrs = elements.filter(function(e, i) {
|
|
|
|
return (!e.isChange && i < 3) || (e.balance && e.balance > 0);
|
|
|
|
});
|
|
|
|
|
|
|
|
return addrs;
|
2014-05-22 13:42:56 -07:00
|
|
|
};
|
2014-06-26 12:11:40 -07:00
|
|
|
})
|
|
|
|
.filter('noFractionNumber',
|
|
|
|
[ '$filter', '$locale',
|
|
|
|
function(filter, locale) {
|
|
|
|
var numberFilter = filter('number');
|
|
|
|
var formats = locale.NUMBER_FORMATS;
|
2014-06-26 22:46:28 -07:00
|
|
|
return function(amount, n) {
|
|
|
|
var fractionSize = (typeof(n) != 'undefined') ? n : config.unitToSatoshi.toString().length - 1;
|
|
|
|
var value = numberFilter(amount, fractionSize);
|
2014-06-26 12:11:40 -07:00
|
|
|
var sep = value.indexOf(formats.DECIMAL_SEP);
|
|
|
|
var group = value.indexOf(formats.GROUP_SEP);
|
|
|
|
if(amount >= 0) {
|
|
|
|
if (group > 0) {
|
2014-06-26 22:46:28 -07:00
|
|
|
if (sep < 0) {
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
var intValue = value.substring(0, sep);
|
|
|
|
var floatValue = parseFloat(value.substring(sep));
|
|
|
|
if (floatValue === 0) {
|
|
|
|
floatValue = '';
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if(floatValue % 1 === 0) {
|
|
|
|
floatValue = floatValue.toFixed(0);
|
|
|
|
}
|
|
|
|
floatValue = floatValue.toString().substring(1);
|
|
|
|
}
|
|
|
|
var finalValue = intValue + floatValue;
|
|
|
|
return finalValue;
|
2014-06-26 12:11:40 -07:00
|
|
|
}
|
|
|
|
else {
|
|
|
|
value = parseFloat(value);
|
|
|
|
if(value % 1 === 0) {
|
|
|
|
value = value.toFixed(0);
|
|
|
|
}
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
};
|
|
|
|
} ]);
|