mirror of
https://github.com/wekan/wekan.git
synced 2025-09-22 01:50:48 +02:00
parent
9d97494cfc
commit
d7333dec84
2 changed files with 47 additions and 30 deletions
|
@ -1,4 +1,4 @@
|
|||
//const stringify = require('csv-stringify');
|
||||
const Papa = require('papaparse');
|
||||
|
||||
// exporter maybe is broken since Gridfs introduced, add fs and path
|
||||
export class Exporter {
|
||||
|
@ -192,6 +192,40 @@ export class Exporter {
|
|||
const result = this.build();
|
||||
const columnHeaders = [];
|
||||
const cardRows = [];
|
||||
|
||||
const papaconfig = {
|
||||
delimiter, // get parameter (was: auto-detect)
|
||||
worker: true,
|
||||
};
|
||||
|
||||
/*
|
||||
newline: "", // auto-detect
|
||||
quoteChar: '"',
|
||||
escapeChar: '"',
|
||||
header: true,
|
||||
transformHeader: undefined,
|
||||
dynamicTyping: false,
|
||||
preview: 0,
|
||||
encoding: "",
|
||||
comments: false,
|
||||
step: undefined,
|
||||
complete: undefined,
|
||||
error: undefined,
|
||||
download: false,
|
||||
downloadRequestHeaders: undefined,
|
||||
downloadRequestBody: undefined,
|
||||
skipEmptyLines: false,
|
||||
chunk: undefined,
|
||||
chunkSize: undefined,
|
||||
fastMode: undefined,
|
||||
beforeFirstChunk: undefined,
|
||||
withCredentials: undefined,
|
||||
transform: undefined
|
||||
};
|
||||
*/
|
||||
|
||||
//delimitersToGuess: [',', '\t', '|', ';', Papa.RECORD_SEP, Papa.UNIT_SEP]
|
||||
|
||||
columnHeaders.push(
|
||||
'Title',
|
||||
'Description',
|
||||
|
@ -240,6 +274,7 @@ export class Exporter {
|
|||
}
|
||||
i++;
|
||||
});
|
||||
cardRows.push([[columnHeaders]]);
|
||||
/* TODO: Try to get translations working.
|
||||
These currently only bring English translations.
|
||||
TAPi18n.__('title'),
|
||||
|
@ -264,24 +299,6 @@ export class Exporter {
|
|||
TAPi18n.__('archived'),
|
||||
*/
|
||||
|
||||
const stringifier = stringify({
|
||||
header: true,
|
||||
delimiter,
|
||||
columns: columnHeaders,
|
||||
});
|
||||
|
||||
stringifier.on('readable', function() {
|
||||
let row;
|
||||
while ((row = stringifier.read())) {
|
||||
cardRows.push(row);
|
||||
}
|
||||
});
|
||||
|
||||
stringifier.on('error', function(err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(err.message);
|
||||
});
|
||||
|
||||
result.cards.forEach(card => {
|
||||
const currentRow = [];
|
||||
currentRow.push(card.title);
|
||||
|
@ -385,10 +402,10 @@ export class Exporter {
|
|||
currentRow.push(customFieldValuesToPush[valueIndex]);
|
||||
}
|
||||
}
|
||||
stringifier.write(currentRow);
|
||||
cardRows.push([[currentRow]]);
|
||||
});
|
||||
stringifier.end();
|
||||
return cardRows[0];
|
||||
|
||||
return Papa.unparse(cardRows, papaconfig);
|
||||
}
|
||||
|
||||
canExport(user) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue