Let Sortable detect sort direction dynamically & don't use invertSwap sortable option

This commit is contained in:
Yonas Habteab 2022-06-10 20:02:04 +02:00
parent 22d483b515
commit 8685a0d247
2 changed files with 6 additions and 3 deletions

View File

@ -307,7 +307,9 @@ class DashboardsController extends CompatController
$dashboards = Json::decode($dashboards['dashboardData'], true); $dashboards = Json::decode($dashboards['dashboardData'], true);
$originals = $dashboards['originals']; $originals = $dashboards['originals'];
$dashboardType = $dashboards['dashboardType'];
unset($dashboards['originals']); unset($dashboards['originals']);
unset($dashboards['dashboardType']);
$highlightHome = $this->params->get('home'); $highlightHome = $this->params->get('home');
$highlightPane = $this->params->get('pane'); $highlightPane = $this->params->get('pane');
@ -325,7 +327,9 @@ class DashboardsController extends CompatController
$orgHome = $this->dashboard->getEntry($originals['originalHome']); $orgHome = $this->dashboard->getEntry($originals['originalHome']);
$orgHome->loadDashboardEntries($originals['originalPane'] ?? null); $orgHome->loadDashboardEntries($originals['originalPane'] ?? null);
if (isset($originals['originalPane'])) { // We need to know the original pane only if it's a Dashlet Widget. In this case
// we don't care about the other entries of the original home
if (isset($originals['originalPane']) && $dashboardType === /** Keep this with JS in sync */ 'Dashlets') {
$orgPane = $orgHome->getEntry($originals['originalPane']); $orgPane = $orgHome->getEntry($originals['originalPane']);
$orgHome->setEntries([$orgPane->getName() => $orgPane]); $orgHome->setEntries([$orgPane->getName() => $orgPane]);
} }

View File

@ -120,6 +120,7 @@
data.originals = null; data.originals = null;
} }
data.dashboardType = _this.getTypeFor(orgEvt.to);
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 urlParams = window.location.search; let urlParams = window.location.search;
@ -160,9 +161,7 @@
let options = { let options = {
scroll : true, scroll : true,
invertSwap : true,
dataIdAttr : 'id', dataIdAttr : 'id',
direction : 'vertical',
draggable : draggable, draggable : draggable,
handle : '.widget-drag-initiator', handle : '.widget-drag-initiator',
group : { name : groupName }, group : { name : groupName },