From 96304ae60783e467a8a5b54b88c822a02bf03c50 Mon Sep 17 00:00:00 2001 From: Mathew May Date: Mon, 4 Apr 2022 20:59:09 +1200 Subject: [PATCH] MDL-74363 navigation: Add breadcrumbs in course use sub pages --- course/user.php | 18 ++++++++++++------ report/log/tests/behat/user_log.feature | 2 +- report/log/user.php | 6 ++---- theme/boost/classes/boostnavbar.php | 4 +++- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/course/user.php b/course/user.php index 7da10b8bd1a..c6abc6f5f20 100644 --- a/course/user.php +++ b/course/user.php @@ -140,15 +140,23 @@ switch ($mode) { require_once($CFG->dirroot . '/user/lib.php'); // Get the correct 'Grades' url to point to. $activeurl = user_mygrades_url(); - $navbar = $PAGE->navbar->add(get_string('grades', 'grades'), $activeurl, navigation_node::TYPE_SETTING); + $navbar = $PAGE->navbar->add(get_string('grades', 'grades'), $activeurl, navigation_node::TYPE_SETTING, null, 'grades'); $activenode = $navbar->add($course->shortname); $activenode->make_active(); // Find the course node and collapse it. $coursenode = $PAGE->navigation->find($course->id, navigation_node::TYPE_COURSE); $coursenode->collapse = true; $coursenode->make_inactive(); - $url = new moodle_url('/course/user.php', array('id' => $id, 'user' => $user->id, 'mode' => $mode)); - $reportnode = $activenode->add(get_string('pluginname', 'gradereport_user'), $url); + + if (!preg_match('/^user\d{0,}$/', $activenode->key)) { // No user name found. + $userurl = new moodle_url('/user/view.php', array('id' => $user->id, 'course' => $course->id)); + // Add the user name. + $usernode = $activenode->add(fullname($user), $userurl, navigation_node::TYPE_SETTING); + $usernode->add(get_string('grades')); + } else { + $url = new moodle_url('/course/user.php', array('id' => $id, 'user' => $user->id, 'mode' => $mode)); + $reportnode = $activenode->add(get_string('pluginname', 'gradereport_user'), $url); + } } else { if ($course->id == SITEID) { $activenode = $PAGE->navigation->find('user' . $user->id, null); @@ -168,11 +176,10 @@ switch ($mode) { // Add the 'grades' node to the navbar. $navbar = $PAGE->navbar->add(get_string('grades', 'grades'), $gradeurl, navigation_node::TYPE_SETTING); } + echo $OUTPUT->header(); if ($course->id !== SITEID) { - $backurl = new moodle_url('/user/view.php', ['id' => $user->id, 'course' => $course->id]); - echo $OUTPUT->single_button($backurl, get_string('back'), 'get', ['class' => 'mb-3']); $userheading = array( 'heading' => fullname($user, has_capability('moodle/site:viewfullnames', $PAGE->context)), 'user' => $user, @@ -207,5 +214,4 @@ switch ($mode) { echo $OUTPUT->header(); } - echo $OUTPUT->footer(); diff --git a/report/log/tests/behat/user_log.feature b/report/log/tests/behat/user_log.feature index 7a62b3df50d..b499be9a4ba 100644 --- a/report/log/tests/behat/user_log.feature +++ b/report/log/tests/behat/user_log.feature @@ -44,7 +44,7 @@ Feature: User can view activity log. And I follow "Ann, Jill, Grainne, Beauchamp" When I follow "Today's logs" And I should see "Assignment: Test assignment name" - And I click on "Back" "button" + And I follow "Ann, Jill, Grainne, Beauchamp" And I follow "All logs" Then I should see "Assignment: Test assignment name" diff --git a/report/log/user.php b/report/log/user.php index 052e1a03398..82d86329d19 100644 --- a/report/log/user.php +++ b/report/log/user.php @@ -79,6 +79,7 @@ $PAGE->set_url('/report/log/user.php', array('id' => $user->id, 'course' => $cou $PAGE->navigation->extend_for_user($user); $PAGE->navigation->set_userid_for_parent_checks($user->id); // see MDL-25805 for reasons and for full commit reference for reversal when fixed. $PAGE->set_title("$course->shortname: $stractivityreport"); +$PAGE->navbar->add(get_string('alllogs')); // Create the appropriate breadcrumb. $navigationnode = array( @@ -104,9 +105,6 @@ $event->trigger(); echo $OUTPUT->header(); if ($courseid != SITEID) { - $backurl = new moodle_url('/user/view.php', ['id' => $userid, 'course' => $courseid]); - echo $OUTPUT->single_button($backurl, get_string('back'), 'get', ['class' => 'mb-3']); - $userheading = array( 'heading' => fullname($user, has_capability('moodle/site:viewfullnames', $PAGE->context)), 'user' => $user, @@ -149,4 +147,4 @@ report_log_print_graph($course, $user, $mode, 0, $logreader); echo ''; echo $output->render($reportlog); -echo $OUTPUT->footer(); \ No newline at end of file +echo $OUTPUT->footer(); diff --git a/theme/boost/classes/boostnavbar.php b/theme/boost/classes/boostnavbar.php index e6c40e0d18c..fdd90df3f92 100644 --- a/theme/boost/classes/boostnavbar.php +++ b/theme/boost/classes/boostnavbar.php @@ -67,7 +67,6 @@ class boostnavbar implements \renderable { $this->remove('permissions'); } } - if ($this->page->context->contextlevel == CONTEXT_COURSE) { // Remove any duplicate navbar nodes. $this->remove_duplicate_items(); @@ -94,6 +93,9 @@ class boostnavbar implements \renderable { case 'course-reset': // Remove the 'Import' navbar node in the Backup, Restore, Copy course and Reset pages. $this->remove('import'); + case 'course-user': + $this->remove('mygrades'); + $this->remove('grades'); } }