Fix: Aufgaben-Badge in Navigation wurde außerhalb des <a>-Tags ausgegeben

echo \$my_tasks_dot stand vor dem <li>, sodass der rote Badge als
freies Element zwischen den Navigationspunkten erschien. Badge-Span
wird jetzt innerhalb des <a>-Tags gerendert (analog zu \$collection_dot),
und \$my_tasks_dot wird zu Beginn jeder Loop-Iteration auf "" gesetzt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 14:08:38 +02:00
parent 55e6d4c583
commit ee966de174

View File

@@ -1216,6 +1216,7 @@ function navigation_fullmenu_rek( $site, $language, $navigation, $parent_id, $le
echo "\n" . $spaces . "<ul class=\"level_$level\">";
}
while ($nav = @mysqli_fetch_array($result)) {
$my_tasks_dot = "";
//Icon herausziehen
$getIconQuery = "SELECT navigation_icon FROM main_navigation WHERE id ='" . $nav["id"] . "'";
$resultIconQuery = mysqli_query($GLOBALS["mysql_con"], $getIconQuery);
@@ -1251,6 +1252,37 @@ function navigation_fullmenu_rek( $site, $language, $navigation, $parent_id, $le
if( $nav["code"] == '404' ){
$display = " style='display:none;' ";
}
$hasTaskCertAdminPermission = (int)get_permission_state(
'r-task-cert-admin',
$GLOBALS['main_contact']['master_mandant_id'],
$GLOBALS['main_contact']['id']
);
if ($nav['code'] === 'admin-task-list' && $hasTaskCertAdminPermission === 0) {
$display = " style='display:none;' ";
}
if ($nav["code"] == "my-tasks") {
$query_my_tasks = "
SELECT COUNT(*) AS badge_count
FROM task_assignment ta
INNER JOIN task_definition td
ON td.id = ta.task_id
AND td.active = 1
WHERE ta.main_contact_id = " . (int)$GLOBALS['main_contact']['id'] . "
AND ta.status IN ('overdue', 'open', 'in_progress', 'approval_pending', 'rejected')
";
$result_my_tasks = @mysqli_query($GLOBALS['mysql_con'], $query_my_tasks);
$row_my_tasks = @mysqli_fetch_assoc($result_my_tasks);
$my_tasks_count = (int)$row_my_tasks['badge_count'];
@mysqli_free_result($result_my_tasks);
if ($my_tasks_count > 0) {
$my_tasks_dot = "<span class='hint'>" . $my_tasks_count . "</span>";
}
}
if($nav["code"] == 'home' || $nav["code"] == 'startseite' || $nav["is_home_page"] == 1){
$addr = '/';
@@ -1287,7 +1319,7 @@ function navigation_fullmenu_rek( $site, $language, $navigation, $parent_id, $le
echo "</a>";
echo "</div>";
}else {
echo "<a " . $active . $link . $target .">" . $icon . $nav["menu_name"] . $collection_dot ."</a>";
echo "<a " . $active . $link . $target .">" . $icon . $nav["menu_name"] . $collection_dot . $my_tasks_dot ."</a>";
}
}
navigation_fullmenu_rek($site, $language, $navigation, $nav["id"], ($level + 1), $newnavcode, $from_level, $to_level);