From 2fcbbcf23a67b63a836c87ab897f1959cefec94f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be> Date: Thu, 22 Nov 2018 11:33:25 +0100 Subject: [PATCH] :ambulance: fix(baseSelector) Add missing tree parts in render This makes sure all tree parts in the base selector has a visible parent, even if not clickable. issue #5921 --- include/class_baseSelector.inc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/class_baseSelector.inc b/include/class_baseSelector.inc index 93ad86bcf..7bb765bad 100644 --- a/include/class_baseSelector.inc +++ b/include/class_baseSelector.inc @@ -212,6 +212,7 @@ class baseSelector $this->tree .= "<div class='treeList' style='display:none;max-height:".$this->height."px' id='bs_".$this->pid."' onmouseover=\"window.clearTimeout(rtimer);\" onmouseout=\"rtimer= Element.hide.delay(0.25, 'bs_".$this->pid."')\"><a class='treeList$selected' $link>/ ["._("Root")."]</a><ul class='treeList'>\n"; $first = TRUE; $last_indent = 2; + $last_base = ''; foreach ($this->pathMapping as $base => $dummy) { // Skip root for tree @@ -226,6 +227,18 @@ class baseSelector if (!$first && ($indent == $last_indent)) { $this->tree .= "</li>\n"; } elseif ($indent > $last_indent) { + $parent_base = implode(',', array_slice($elements, 1)).$config->current['BASE']; + if (!$first && ($parent_base != $last_base)) { + /* Our parent is missing, add it but without link */ + $this->tree .= "</li>\n"; + $this->tree .= '<li><a title="'.$parent_base.'">'. + '<img class="center" '. + 'src="'.htmlentities($config->department_info[$parent_base]['img'], ENT_COMPAT, 'UTF-8').'" '. + 'alt=""/> '. + $this->escape($config->department_info[$parent_base]['name']). + (($config->department_info[$parent_base]['description'] == '') ? '' : ' <span class="informal">['.$this->escape($config->department_info[$parent_base]['description']).']</span>'). + '</a>'; + } $this->tree .= "<ul>\n"; } elseif ($indent < $last_indent) { for ($i = 0; $i < ($last_indent - $indent); $i++) { @@ -244,6 +257,7 @@ class baseSelector '</a>'; $last_indent = $indent; + $last_base = $base; $first = FALSE; } -- GitLab