diff --git a/packages/api/src/controllers/files.js b/packages/api/src/controllers/files.js index f23875df8..e78d2d432 100644 --- a/packages/api/src/controllers/files.js +++ b/packages/api/src/controllers/files.js @@ -1,6 +1,8 @@ +const uuidv1 = require('uuid/v1'); const fs = require('fs-extra'); const path = require('path'); -const { filesdir, archivedir, resolveArchiveFolder } = require('../utility/directories'); +const { filesdir, archivedir, resolveArchiveFolder, uploadsdir } = require('../utility/directories'); +const getChartExport = require('../utility/getChartExport'); const hasPermission = require('../utility/hasPermission'); const socket = require('../utility/socket'); const scheduler = require('./scheduler'); @@ -114,4 +116,12 @@ module.exports = { } return res; }, + + exportChart_meta: 'post', + async exportChart({ title, config }) { + const html = getChartExport(title, config); + const fileName = `${uuidv1()}.html`; + await fs.writeFile(path.join(uploadsdir(), fileName), html); + return fileName; + }, }; diff --git a/packages/api/src/utility/getChartExport.js b/packages/api/src/utility/getChartExport.js new file mode 100644 index 000000000..6ca69ae4b --- /dev/null +++ b/packages/api/src/utility/getChartExport.js @@ -0,0 +1,38 @@ +const getChartExport = (title, config) => { + return ` + + +
+ ${title ? `
+
+