From 82e546cfa47dbc7d5d7a780c92129a871087ee12 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 26 Mar 2019 12:04:35 +0100 Subject: [inc/Dashboard] Add feature to collapse sections in sidebar mode Modules can now declare that they should be collapsed by default. If a menu category only contains such modules, it will be collapsed in the sidebar mode of the menu. --- inc/dashboard.inc.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'inc/dashboard.inc.php') diff --git a/inc/dashboard.inc.php b/inc/dashboard.inc.php index d576a8f1..0b0f69e3 100644 --- a/inc/dashboard.inc.php +++ b/inc/dashboard.inc.php @@ -42,6 +42,7 @@ class Dashboard $currentPage = Page::getModule()->getIdentifier(); $categories = array(); foreach ($modByCategory as $catId => $modList) { + $collapse = true; /* @var Module[] $modList */ $modules = array(); foreach ($modList as $modId => $module) { @@ -54,13 +55,18 @@ class Dashboard if ($module->getIdentifier() === $currentPage) { $newEntry['className'] = 'active'; $newEntry['subMenu'] = self::$subMenu; + $collapse = false; // Don't collapse category if it contains the active module + } + if (!$module->doCollapse()) { + $collapse = false; } $modules[] = $newEntry; } $categories[] = array( 'icon' => self::getCategoryIcon($catId), 'displayName' => Dictionary::getCategoryName($catId), - 'modules' => $modules + 'modules' => $modules, + 'collapse' => $collapse, ); } Render::setDashboard(array( -- cgit v1.2.3-55-g7522