From 2405c7a1fc4f3572edce57265ce929c34e6159d9 Mon Sep 17 00:00:00 2001 From: Yonas Habteab Date: Wed, 1 Jun 2022 14:46:50 +0200 Subject: [PATCH] DashboardManager: Ensure to insert dashboard homes with correct priority order --- library/Icinga/Web/Dashboard/Common/DashboardManager.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/library/Icinga/Web/Dashboard/Common/DashboardManager.php b/library/Icinga/Web/Dashboard/Common/DashboardManager.php index e44d1808b..90ccd4457 100644 --- a/library/Icinga/Web/Dashboard/Common/DashboardManager.php +++ b/library/Icinga/Web/Dashboard/Common/DashboardManager.php @@ -150,16 +150,17 @@ trait DashboardManager $conn = DBUtils::getConn(); $homes = is_array($entryOrEntries) ? $entryOrEntries : [$entryOrEntries]; + // Highest priority is 0, so count($entries) are always lowest prio + 1 + $priority = count($this->getEntries()); + /** @var DashboardHome $home */ foreach ($homes as $home) { if (! $this->hasEntry($home->getName())) { - // Highest priority is 0, so count($entries) are always lowest prio + 1 - $priority = $home->getName() === DashboardHome::DEFAULT_HOME ? 0 : count($this->getEntries()); $conn->insert(DashboardHome::TABLE, [ 'user_id' => self::getUser()->getAdditional('id'), 'name' => $home->getName(), 'label' => $home->getTitle(), - 'priority' => $priority, + 'priority' => $home->getName() === DashboardHome::DEFAULT_HOME ? 0 : $priority++, 'type' => $home->getType() !== Dashboard::SYSTEM ? $home->getType() : Dashboard::PRIVATE_DS ]);