add: export board/cards/lists to CSV/TSV

This commit is contained in:
Bryan Mutai 2020-05-10 23:58:15 +03:00
parent 1742bcd9b1
commit a570c4a861
9 changed files with 474 additions and 217 deletions

View file

@ -1,3 +1,4 @@
sidebar.js;
import { Cookies } from 'meteor/ostrio:cookies';
const cookies = new Cookies();
Sidebar = null;
@ -213,6 +214,7 @@ Template.boardMenuPopup.events({
'click .js-import-board': Popup.open('chooseBoardSource'),
'click .js-subtask-settings': Popup.open('boardSubtaskSettings'),
'click .js-card-settings': Popup.open('boardCardSettings'),
'click .js-export-board': Popup.open('exportBoard'),
});
Template.boardMenuPopup.onCreated(function() {
@ -405,6 +407,63 @@ BlazeComponent.extendComponent({
},
}).register('chooseBoardSourcePopup');
BlazeComponent.extendComponent({
template() {
return 'exportBoard';
},
withApi() {
return Template.instance().apiEnabled.get();
},
exportUrl() {
const params = {
boardId: Session.get('currentBoard'),
};
const queryParams = {
authToken: Accounts._storedLoginToken(),
};
return FlowRouter.path('/api/boards/:boardId/export', params, queryParams);
},
exportCsvUrl() {
const params = {
boardId: Session.get('currentBoard'),
};
const queryParams = {
authToken: Accounts._storedLoginToken(),
};
return FlowRouter.path(
'/api/boards/:boardId/export/csv',
params,
queryParams,
);
},
exportTsvUrl() {
const params = {
boardId: Session.get('currentBoard'),
};
const queryParams = {
authToken: Accounts._storedLoginToken(),
delimiter: '\t',
};
return FlowRouter.path(
'/api/boards/:boardId/export/csv',
params,
queryParams,
);
},
exportJsonFilename() {
const boardId = Session.get('currentBoard');
return `wekan-export-board-${boardId}.json`;
},
exportCsvFilename() {
const boardId = Session.get('currentBoard');
return `wekan-export-board-${boardId}.csv`;
},
exportTsvFilename() {
const boardId = Session.get('currentBoard');
return `wekan-export-board-${boardId}.tsv`;
},
}).register('exportBoardPopup');
Template.labelsWidget.events({
'click .js-label': Popup.open('editLabel'),
'click .js-add-label': Popup.open('createLabel'),