mv CSV generation from index.js to preferencesHistory.js
This commit is contained in:
parent
1d5b8ced99
commit
9709d6b64a
5 changed files with 176 additions and 158 deletions
|
|
@ -692,135 +692,6 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
}
|
||||
};
|
||||
|
||||
self.csvHistory = function() {
|
||||
|
||||
function formatDate(date) {
|
||||
var dateObj = new Date(date);
|
||||
if (!dateObj) {
|
||||
$log.debug('Error formating a date');
|
||||
return 'DateError'
|
||||
}
|
||||
if (!dateObj.toJSON()) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return dateObj.toJSON();
|
||||
}
|
||||
|
||||
function formatString(str) {
|
||||
if (!str) return '';
|
||||
|
||||
if (str.indexOf('"') !== -1) {
|
||||
//replace all
|
||||
str = str.replace(new RegExp('"', 'g'), '\'');
|
||||
}
|
||||
|
||||
//escaping commas
|
||||
str = '\"' + str + '\"';
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
var step = 6;
|
||||
var unique = {};
|
||||
|
||||
function getHistory(cb) {
|
||||
storageService.getTxHistory(c.walletId, function(err, txs) {
|
||||
if (err) return cb(err);
|
||||
|
||||
var txsFromLocal = [];
|
||||
try {
|
||||
txsFromLocal = JSON.parse(txs);
|
||||
} catch (ex) {
|
||||
$log.warn(ex);
|
||||
}
|
||||
|
||||
allTxs.push(txsFromLocal);
|
||||
return cb(null, lodash.flatten(allTxs));
|
||||
});
|
||||
}
|
||||
|
||||
if (isCordova) {
|
||||
$log.info('CSV generation not available in mobile');
|
||||
return;
|
||||
}
|
||||
var fc = profileService.focusedClient;
|
||||
var c = fc.credentials;
|
||||
if (!fc.isComplete()) return;
|
||||
var self = this;
|
||||
var allTxs = [];
|
||||
|
||||
$log.debug('Generating CSV from History');
|
||||
self.setOngoingProcess('generatingCSV', true);
|
||||
|
||||
getHistory(function(err, txs) {
|
||||
self.setOngoingProcess('generatingCSV', false);
|
||||
if (err) {
|
||||
self.handleError(err);
|
||||
} else {
|
||||
$log.debug('Wallet Transaction History:', txs);
|
||||
|
||||
self.satToUnit = 1 / self.unitToSatoshi;
|
||||
var data = txs;
|
||||
var satToBtc = 1 / 100000000;
|
||||
self.csvContent = [];
|
||||
self.csvFilename = 'Copay-' + (self.alias || self.walletName) + '.csv';
|
||||
self.csvHeader = ['Date', 'Destination', 'Description', 'Amount', 'Currency', 'Txid', 'Creator', 'Copayers'];
|
||||
|
||||
var _amount, _note, _copayers, _creator;
|
||||
data.forEach(function(it, index) {
|
||||
var amount = it.amount;
|
||||
|
||||
if (it.action == 'moved')
|
||||
amount = 0;
|
||||
|
||||
_copayers = '';
|
||||
_creator = '';
|
||||
|
||||
if (it.actions && it.actions.length > 1) {
|
||||
for (var i = 0; i < it.actions.length; i++) {
|
||||
_copayers += it.actions[i].copayerName + ':' + it.actions[i].type + ' - ';
|
||||
}
|
||||
_creator = (it.creatorName && it.creatorName != 'undefined') ? it.creatorName : '';
|
||||
}
|
||||
_copayers = formatString(_copayers);
|
||||
_creator = formatString(_creator);
|
||||
_amount = (it.action == 'sent' ? '-' : '') + (amount * satToBtc).toFixed(8);
|
||||
_note = formatString((it.message ? it.message : ''));
|
||||
|
||||
if (it.action == 'moved')
|
||||
_note += ' Moved:' + (it.amount * satToBtc).toFixed(8)
|
||||
|
||||
self.csvContent.push({
|
||||
'Date': formatDate(it.time * 1000),
|
||||
'Destination': formatString(it.addressTo),
|
||||
'Description': _note,
|
||||
'Amount': _amount,
|
||||
'Currency': 'BTC',
|
||||
'Txid': it.txid,
|
||||
'Creator': _creator,
|
||||
'Copayers': _copayers
|
||||
});
|
||||
|
||||
if (it.fees && (it.action == 'moved' || it.action == 'sent')) {
|
||||
var _fee = (it.fees * satToBtc).toFixed(8)
|
||||
self.csvContent.push({
|
||||
'Date': formatDate(it.time * 1000),
|
||||
'Destination': 'Bitcoin Network Fees',
|
||||
'Description': '',
|
||||
'Amount': '-' + _fee,
|
||||
'Currency': 'BTC',
|
||||
'Txid': '',
|
||||
'Creator': '',
|
||||
'Copayers': ''
|
||||
});
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
self.removeAndMarkSoftConfirmedTx = function(txs) {
|
||||
return lodash.filter(txs, function(tx) {
|
||||
if (tx.confirmations >= SOFT_CONFIRMATION_LIMIT)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue