From cc58b323125c356e42239a1f18e6607e6777f7d1 Mon Sep 17 00:00:00 2001 From: Luca Haid Date: Wed, 12 Feb 2025 17:56:34 +0100 Subject: [PATCH] Changed Dashboard --- public/js/pages/DashboardNew/DashboardNew.js | 54 +++++++++++++++++--- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/public/js/pages/DashboardNew/DashboardNew.js b/public/js/pages/DashboardNew/DashboardNew.js index c08acbdda..fa80d9671 100644 --- a/public/js/pages/DashboardNew/DashboardNew.js +++ b/public/js/pages/DashboardNew/DashboardNew.js @@ -399,6 +399,32 @@ Vue.component('dashboard-rml', { moment: moment } }, + methods: { + exportTimeline() { + // we need all timelines with "ONT installiert", "Leerrohr", "Bestellungen" + const data = this.dashboardData.timeline[0].map((item, index) => ({ + date: item.date, + bestellungen: item.value, + leerrohr: this.dashboardData.timeline_leerrohr[0][index].value, + ont_installiert: this.dashboardData.timeline_ont_installed[0][index].value + })); + + // dont use any library for the csv + const csv = [ + ['Datum', 'Bestellungen', 'Leerrohr', 'ONT installiert'], + ...data.map(item => [item.date, item.bestellungen, item.leerrohr, item.ont_installiert]) + ].map(row => row.join(',')).join('\n'); + + const blob = new Blob([csv], {type: 'text/csv'}); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + + a.href = url; + a.download = 'timeline.csv'; + a.click(); + URL.revokeObjectURL(url); + } + }, template: `

Bestellungen

@@ -514,17 +540,33 @@ Vue.component('dashboard-rml', { order: 3 }, { - label: 'Leerrohr', - data: dashboardData.timeline_leerrohr[0].filter(item => selectedTimeframe === 'all' || moment(item.date).isAfter(moment().subtract(selectedTimeframe.split(' ')[0], selectedTimeframe.split(' ')[1]))), - color: 'rgb(255, 99, 132)', + label: 'Summe von 244+245', + data: dashboardData.timeline_inhouse_kabel_verlegt_efh[0].filter(item => selectedTimeframe === 'all' || moment(item.date).isAfter(moment().subtract(selectedTimeframe.split(' ')[0], selectedTimeframe.split(' ')[1]))), + color: 'rgb(0, 123, 255)', fill: false, yAxisID: 'y', order: 2 }, { - label: 'ONT installiert', - data: dashboardData.timeline_ont_installed[0].filter(item => selectedTimeframe === 'all' || moment(item.date).isAfter(moment().subtract(selectedTimeframe.split(' ')[0], selectedTimeframe.split(' ')[1]))), - color: 'rgb(54, 162, 235)', + label: 'Status 500 Energie Steiermark', + data: dashboardData.timeline_status_500_energie_steiermark[0].filter(item => selectedTimeframe === 'all' || moment(item.date).isAfter(moment().subtract(selectedTimeframe.split(' ')[0], selectedTimeframe.split(' ')[1]))), + color: 'rgb(40, 167, 69)', + fill: false, + yAxisID: 'y', + order: 1 + }, + { + label: 'Status 500 Magenta', + data: dashboardData.timeline_status_500_magenta[0].filter(item => selectedTimeframe === 'all' || moment(item.date).isAfter(moment().subtract(selectedTimeframe.split(' ')[0], selectedTimeframe.split(' ')[1]))), + color: 'rgb(226, 0, 116)', + fill: false, + yAxisID: 'y', + order: 1 + }, + { + label: 'Status 500 Salzburg AG', + data: dashboardData.timeline_status_500_salzburg_ag[0].filter(item => selectedTimeframe === 'all' || moment(item.date).isAfter(moment().subtract(selectedTimeframe.split(' ')[0], selectedTimeframe.split(' ')[1]))), + color: 'rgb(0, 102, 179)', fill: false, yAxisID: 'y', order: 1