dashboard.js: Fix moving a dashlet to another home/pane throws an error

This commit is contained in:
Yonas Habteab 2022-04-08 10:34:19 +02:00
parent 945a69f0cd
commit 936079b7c5

View File

@ -103,19 +103,18 @@
let parentData = orgEvt.to.dataset.icingaPane.split('|', 2); let parentData = orgEvt.to.dataset.icingaPane.split('|', 2);
home = parentData.shift(); home = parentData.shift();
pane = parentData.shift(); pane = parentData.shift();
data.redirectPath = 'dashboards';
} else { // Dashboard manager view } else { // Dashboard manager view
let parent = orgEvt.to.closest('.dashboard-list-control'); let parent = orgEvt.to.closest('.dashboard-list-control');
pane = parent.dataset.icingaPane; pane = parent.dataset.icingaPane;
// If there is only default home in the dashboard manager view, there won't be rendered // If there is only default home in the dashboard manager view, there won't be rendered a
// ".home-list-control", so we need to look for an alternative // ".home-list-control", so we need to look for an alternative
home = parent.closest('.home-list-control, .dashboard-settings').dataset.icingaHome; home = parent.closest('.home-list-control, .dashboard-settings').dataset.icingaHome;
if (orgEvt.to !== orgEvt.from) { if (orgEvt.to !== orgEvt.from) {
let parent = orgEvt.from.closest('.dashboard-list-control'); let parent = orgEvt.from.closest('.dashboard-list-control');
let orgHome = parent.closest('.home-list-control, .dashboard-settings').dataset.icingaHome;
data.originals = { data.originals = {
originalHome : parent.closest('.home-list-control').dataset.icingaHome, originalHome : orgHome,
originalPane : parent.dataset.icingaPane originalPane : parent.dataset.icingaPane
} }
} }
@ -127,23 +126,16 @@
} }
if (Object.keys(data).length) { if (Object.keys(data).length) {
data.Type = _this.getTypeFor(orgEvt.to);
if (! data.originals) { if (! data.originals) {
data.originals = null; data.originals = null;
} }
if (! data.redirectPath) {
data.redirectPath = 'dashboards/settings';
}
data = { dashboardData : JSON.stringify(data) }; data = { dashboardData : JSON.stringify(data) };
let url = _this.icinga.config.baseUrl + '/dashboards/reorder-widgets'; let url = _this.icinga.config.baseUrl + '/dashboards/reorder-widgets';
let req = _this.icinga.loader.loadUrl(url, $('#col1'), data, 'post'); let req = _this.icinga.loader.loadUrl(url, $('#col1'), data, 'post');
if (data.Type === _this.widgetTypes.Dashlet && data.originals === null) { req.addToHistory = false;
req.addToHistory = false; req.scripted = true;
req.scripted = true;
}
} }
} }