mirror of
https://github.com/wekan/wekan.git
synced 2026-02-07 09:01:47 +01:00
Fix : export CSV, TSV and XLS translation
Feature : add export CSV with semicolon separator
This commit is contained in:
parent
bc9c7e5aa4
commit
11bf4c7c07
6 changed files with 115 additions and 112 deletions
|
|
@ -197,65 +197,43 @@ export class Exporter {
|
|||
return result;
|
||||
}
|
||||
|
||||
buildCsv(delimiter = ',') {
|
||||
buildCsv(userDelimiter = ',', userLanguage='en') {
|
||||
const result = this.build();
|
||||
const columnHeaders = [];
|
||||
const cardRows = [];
|
||||
|
||||
const papaconfig = {
|
||||
delimiter, // get parameter (was: auto-detect)
|
||||
worker: true,
|
||||
};
|
||||
|
||||
/*
|
||||
newline: "", // auto-detect
|
||||
quotes: true,
|
||||
quoteChar: '"',
|
||||
escapeChar: '"',
|
||||
delimiter: userDelimiter,
|
||||
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
|
||||
newline: "\r\n",
|
||||
skipEmptyLines: false,
|
||||
escapeFormulae: true,
|
||||
};
|
||||
*/
|
||||
|
||||
//delimitersToGuess: [',', '\t', '|', ';', Papa.RECORD_SEP, Papa.UNIT_SEP]
|
||||
|
||||
columnHeaders.push(
|
||||
'Title',
|
||||
'Description',
|
||||
'Status',
|
||||
'Swimlane',
|
||||
'Owner',
|
||||
'Requested by',
|
||||
'Assigned by',
|
||||
'Members',
|
||||
'Assignees',
|
||||
'Labels',
|
||||
'Start at',
|
||||
'Due at',
|
||||
'End at',
|
||||
'Over time',
|
||||
'Spent time (hours)',
|
||||
'Created at',
|
||||
'Last modified at',
|
||||
'Last activity',
|
||||
'Vote',
|
||||
'Archived',
|
||||
TAPi18n.__('title','',userLanguage),
|
||||
TAPi18n.__('description','',userLanguage),
|
||||
TAPi18n.__('list','',userLanguage),
|
||||
TAPi18n.__('swimlane','',userLanguage),
|
||||
TAPi18n.__('owner','',userLanguage),
|
||||
TAPi18n.__('requested-by','',userLanguage),
|
||||
TAPi18n.__('assigned-by','',userLanguage),
|
||||
TAPi18n.__('members','',userLanguage),
|
||||
TAPi18n.__('assignee','',userLanguage),
|
||||
TAPi18n.__('labels','',userLanguage),
|
||||
TAPi18n.__('card-start','',userLanguage),
|
||||
TAPi18n.__('card-due','',userLanguage),
|
||||
TAPi18n.__('card-end','',userLanguage),
|
||||
TAPi18n.__('overtime-hours','',userLanguage),
|
||||
TAPi18n.__('spent-time-hours','',userLanguage),
|
||||
TAPi18n.__('createdAt','',userLanguage),
|
||||
TAPi18n.__('last-modified-at','',userLanguage),
|
||||
TAPi18n.__('last-activity','',userLanguage),
|
||||
TAPi18n.__('voting','',userLanguage),
|
||||
TAPi18n.__('archived','',userLanguage),
|
||||
);
|
||||
const customFieldMap = {};
|
||||
let i = 0;
|
||||
|
|
@ -283,30 +261,8 @@ export class Exporter {
|
|||
}
|
||||
i++;
|
||||
});
|
||||
cardRows.push([[columnHeaders]]);
|
||||
/* TODO: Try to get translations working.
|
||||
These currently only bring English translations.
|
||||
TAPi18n.__('title'),
|
||||
TAPi18n.__('description'),
|
||||
TAPi18n.__('status'),
|
||||
TAPi18n.__('swimlane'),
|
||||
TAPi18n.__('owner'),
|
||||
TAPi18n.__('requested-by'),
|
||||
TAPi18n.__('assigned-by'),
|
||||
TAPi18n.__('members'),
|
||||
TAPi18n.__('assignee'),
|
||||
TAPi18n.__('labels'),
|
||||
TAPi18n.__('card-start'),
|
||||
TAPi18n.__('card-due'),
|
||||
TAPi18n.__('card-end'),
|
||||
TAPi18n.__('overtime-hours'),
|
||||
TAPi18n.__('spent-time-hours'),
|
||||
TAPi18n.__('createdAt'),
|
||||
TAPi18n.__('last-modified-at'),
|
||||
TAPi18n.__('last-activity'),
|
||||
TAPi18n.__('voting'),
|
||||
TAPi18n.__('archived'),
|
||||
*/
|
||||
//cardRows.push([[columnHeaders]]);
|
||||
cardRows.push(columnHeaders);
|
||||
|
||||
result.cards.forEach((card) => {
|
||||
const currentRow = [];
|
||||
|
|
@ -409,7 +365,8 @@ export class Exporter {
|
|||
currentRow.push(customFieldValuesToPush[valueIndex]);
|
||||
}
|
||||
}
|
||||
cardRows.push([[currentRow]]);
|
||||
//cardRows.push([[currentRow]]);
|
||||
cardRows.push(currentRow);
|
||||
});
|
||||
|
||||
return Papa.unparse(cardRows, papaconfig);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue