mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-21 14:06:00 +00:00
export chart to HTML
This commit is contained in:
@@ -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;
|
||||
},
|
||||
};
|
||||
|
||||
38
packages/api/src/utility/getChartExport.js
Normal file
38
packages/api/src/utility/getChartExport.js
Normal file
@@ -0,0 +1,38 @@
|
||||
const getChartExport = (title, config) => {
|
||||
return `<html>
|
||||
<meta charset='utf-8'>
|
||||
|
||||
<head>
|
||||
${title ? `<title>${title}</title>` : ''}
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.6.0/chart.min.js" integrity="sha512-GMGzUEevhWh8Tc/njS0bDpwgxdCJLQBWG3Z2Ct+JGOpVnEmjvNx6ts4v6A2XJf1HOrtOsfhv3hBKpK9kE5z8AQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartjs-adapter-moment/1.0.0/chartjs-adapter-moment.min.js" integrity="sha512-oh5t+CdSBsaVVAvxcZKy3XJdP7ZbYUBSRCXDTVn0ODewMDDNnELsrG9eDm8rVZAQg7RsDD/8K3MjPAFB13o6eA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
|
||||
<script>
|
||||
const config = ${JSON.stringify(config)};
|
||||
|
||||
function showChart() {
|
||||
document.getElementById('myImage').style.display = "none";
|
||||
|
||||
const myChart = new Chart(
|
||||
document.getElementById('myChart'),
|
||||
config
|
||||
);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
</html>
|
||||
|
||||
<body onload="showChart()">
|
||||
<img src="img1.png" id="myImage" />
|
||||
|
||||
<div>
|
||||
<canvas id="myChart"></canvas>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>`;
|
||||
};
|
||||
|
||||
module.exports = getChartExport;
|
||||
Reference in New Issue
Block a user