import BsPrompt from "../Bootstrap/Prompt.js"; import DashboardAdminEdit from "./Admin/Edit.js"; import DashboardAdminWidgets from "./Admin/Widgets.js"; import DashboardAdminPresets from "./Admin/Presets.js"; export default { components: { DashboardAdminEdit, DashboardAdminWidgets, DashboardAdminPresets }, provide() { return { adminMode: true }; }, data() { return { dashboards: [], current: -1, widgets: [] }; }, computed: { apiurl() { return FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/dashboard'; }, dashboard() { return this.dashboards.find(el => el.dashboard_id == this.current); } }, methods: { dashboardAdd() { let _name = ''; BsPrompt.popup('New Dashboard name').then( name => { _name = name; return axios.post(this.apiurl + '/Dashboard/create', { dashboard_kurzbz: name }) } ).then(res => { let newDashboard = { dashboard_id: res.data.retval, dashboard_kurzbz: _name, beschreibung: '' }; this.dashboards.push(newDashboard); this.current = newDashboard.dashboard_id; }).catch(err => err !== undefined ? console.error('ERROR:', err) : 0); }, dashboardUpdate(dashboard) { // TODO(chris): Loading or message axios.post(this.apiurl + '/Dashboard/update', dashboard).then(() => { let old = this.dashboards.find(el => el.dashboard_id == dashboard.dashboard_id); old.dashboard_kurzbz = dashboard.dashboard_kurzbz; old.beschreibung = dashboard.beschreibung; }).catch(err => console.error('ERROR:', err)); }, dashboardDelete(dashboard_id) { axios.post(this.apiurl + '/Dashboard/delete', {dashboard_id}).then(() => { this.current = -1; this.dashboards = this.dashboards.filter(el => el.dashboard_id != dashboard_id); }).catch(err => console.error('ERROR:', err)); }, assignWidgets(widgets) { this.widgets = widgets; /*while (this.widgets.length) this.widgets.pop(); for (var i in widgets) this.widgets.push(widgets[i]);*/ } }, created() { axios.get(this.apiurl + '/Dashboard').then(res => { this.dashboards = res.data.retval; }).catch(err => console.error('ERROR:', err)); }, template: `