Merge pull request #32676 from zaqoutabed/export-chart-data-patch-1
feat: enable user to export chart data
This commit is contained in:
commit
1444dbfbbf
1 changed files with 40 additions and 0 deletions
|
|
@ -311,6 +311,46 @@ export default class ChartWidget extends Widget {
|
|||
this.make_chart();
|
||||
},
|
||||
},
|
||||
{
|
||||
label: __("Export"),
|
||||
action: "action-export",
|
||||
handler: () => {
|
||||
const data = [[this.chart_doc.chart_name]];
|
||||
data.push([]);
|
||||
data.push([]);
|
||||
|
||||
const datasets = this.data?.datasets || [];
|
||||
const labels = (this.data?.labels || []).map((label) => label || "None");
|
||||
if (datasets.length > 1) {
|
||||
const csv_labels = [];
|
||||
const csv_values = [];
|
||||
labels.forEach((label, idx) => {
|
||||
datasets.forEach((element) => {
|
||||
csv_labels.push(`${element.name} (${label})`);
|
||||
const values = element.values || [];
|
||||
if (idx < values.length) {
|
||||
csv_values.push(values[idx]);
|
||||
} else {
|
||||
csv_values.push("");
|
||||
}
|
||||
});
|
||||
});
|
||||
data.push(["", ...csv_labels]);
|
||||
data.push(["", ...csv_values]);
|
||||
} else if (datasets.length === 1) {
|
||||
datasets.forEach((element) => {
|
||||
const values = element.values || [];
|
||||
if (values.length > 0) {
|
||||
data.push(["", ...labels]);
|
||||
data.push(["", ...values]);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
data.push(["", ...labels]);
|
||||
}
|
||||
frappe.tools.downloadify(data, null, this.chart_doc.chart_name);
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
if (this.chart_doc.document_type) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue