MDL-62768 tool_dataprivacy: add page breadcrumbs to navigation.
authorPaul Holden <paulh@moodle.com>
Mon, 14 Oct 2019 18:52:46 +0000 (19:52 +0100)
committerPaul Holden <paulh@moodle.com>
Tue, 25 Feb 2020 21:36:37 +0000 (21:36 +0000)
admin/tool/dataprivacy/createdatarequest.php
admin/tool/dataprivacy/mydatarequests.php
admin/tool/dataprivacy/resubmitrequest.php
admin/tool/dataprivacy/summary.php

index 2124400..c29f197 100644 (file)
@@ -45,13 +45,22 @@ if ($manage) {
     $context = context_system::instance();
     // Make sure the user has the proper capability.
     require_capability('tool/dataprivacy:managedatarequests', $context);
+    navigation_node::override_active_url($returnurl);
 } else {
     // For the case where a user makes request for themselves (or for their children if they are the parent).
     $returnurl = new moodle_url($CFG->wwwroot . '/admin/tool/dataprivacy/mydatarequests.php');
     $context = context_user::instance($USER->id);
 }
+
 $PAGE->set_context($context);
 
+if (!$manage && $profilenode = $PAGE->settingsnav->find('myprofile', null)) {
+    $profilenode->make_active();
+}
+
+$title = get_string('createnewdatarequest', 'tool_dataprivacy');
+$PAGE->navbar->add($title);
+
 // If contactdataprotectionofficer is disabled, send the user back to the profile page, or the privacy policy page.
 // That is, unless you have sufficient capabilities to perform this on behalf of a user.
 if (!$manage && !\tool_dataprivacy\api::can_contact_dpo()) {
@@ -104,7 +113,6 @@ if ($data = $mform->get_data()) {
     redirect($returnurl, $redirectmessage);
 }
 
-$title = get_string('createnewdatarequest', 'tool_dataprivacy');
 $PAGE->set_heading($SITE->fullname);
 $PAGE->set_title($title);
 echo $OUTPUT->header();
index 0a4070a..037e244 100644 (file)
@@ -42,6 +42,13 @@ if (isguestuser()) {
 $usercontext = context_user::instance($USER->id);
 $PAGE->set_context($usercontext);
 
+if ($profilenode = $PAGE->settingsnav->find('myprofile', null)) {
+    $profilenode->make_active();
+}
+
+$title = get_string('datarequests', 'tool_dataprivacy');
+$PAGE->navbar->add($title);
+
 // Return URL.
 $params = ['id' => $USER->id];
 if ($courseid) {
@@ -49,7 +56,6 @@ if ($courseid) {
 }
 $returnurl = new moodle_url('/user/profile.php', $params);
 
-$title = get_string('datarequests', 'tool_dataprivacy');
 $PAGE->set_heading($title);
 $PAGE->set_title($title);
 echo $OUTPUT->header();
index 4f3ef55..721052c 100644 (file)
@@ -27,12 +27,10 @@ require_once('../../../config.php');
 $requestid = required_param('requestid', PARAM_INT);
 $confirm = optional_param('confirm', null, PARAM_INT);
 
-$PAGE->set_url(new moodle_url('/admin/tool/dataprivacy/resubmitrequest.php', ['requestid' => $requestid]));
+$url = new moodle_url('/admin/tool/dataprivacy/resubmitrequest.php', ['requestid' => $requestid]);
+$title = get_string('resubmitrequestasnew', 'tool_dataprivacy');
 
-require_login();
-
-$PAGE->set_context(\context_system::instance());
-require_capability('tool/dataprivacy:managedatarequests', $PAGE->context);
+\tool_dataprivacy\page_helper::setup($url, $title, 'datarequests', 'tool/dataprivacy:managedatarequests');
 
 $manageurl = new moodle_url('/admin/tool/dataprivacy/datarequests.php');
 
@@ -53,10 +51,6 @@ if (null !== $confirm && confirm_sesskey()) {
     redirect($manageurl, get_string('resubmittedrequest', 'tool_dataprivacy', $stringparams));
 }
 
-$heading = get_string('resubmitrequest', 'tool_dataprivacy', $stringparams);
-$PAGE->set_title($heading);
-$PAGE->set_heading($heading);
-
 echo $OUTPUT->header();
 
 $confirmstring = get_string('confirmrequestresubmit', 'tool_dataprivacy', $stringparams);
index 3b99ee3..611b5c7 100644 (file)
@@ -34,6 +34,13 @@ $PAGE->set_context($context);
 $PAGE->set_title($title);
 $PAGE->set_heading($SITE->fullname);
 
+// If user is logged in, then use profile navigation in breadcrumbs.
+if ($profilenode = $PAGE->settingsnav->find('myprofile', null)) {
+    $profilenode->make_active();
+}
+
+$PAGE->navbar->add($title);
+
 $output = $PAGE->get_renderer('tool_dataprivacy');
 echo $output->header();
 $summarypage = new \tool_dataprivacy\output\summary_page();