MDL-62341 privacy: Add link to previous page in viewall policies page
authorMihail Geshoski <mihail@moodle.com>
Fri, 10 Aug 2018 08:02:47 +0000 (16:02 +0800)
committerMihail Geshoski <mihail@moodle.com>
Sun, 12 Aug 2018 23:52:09 +0000 (07:52 +0800)
admin/tool/policy/classes/output/page_viewalldoc.php
admin/tool/policy/lang/en/tool_policy.php
admin/tool/policy/lib.php
admin/tool/policy/templates/page_viewalldoc.mustache
admin/tool/policy/viewall.php

index 66ea3aa..801aac0 100644 (file)
@@ -48,12 +48,15 @@ use tool_policy\policy_version;
  */
 class page_viewalldoc implements renderable, templatable {
 
+    /** @var string Return url */
+    private $returnurl;
+
     /**
      * Prepare the page for rendering.
      *
      */
-    public function __construct() {
-
+    public function __construct($returnurl) {
+        $this->returnurl = $returnurl;
         $this->prepare_global_page_access();
         $this->prepare_policies();
     }
@@ -99,6 +102,9 @@ class page_viewalldoc implements renderable, templatable {
         ];
 
         $data->policies = array_values($this->policies);
+        if (!empty($this->returnurl)) {
+            $data->returnurl = $this->returnurl;
+        }
 
         array_walk($data->policies, function($item, $key) {
             $item->policytypestr = get_string('policydoctype'.$item->type, 'tool_policy');
index 3a75285..8f2a1d5 100644 (file)
@@ -50,6 +50,7 @@ $string['agreedyesonbehalfwithlinkall'] = 'Consent given on behalf of user; clic
 $string['agreedyeswithlink'] = 'Consent given; click to withdraw user consent for {$a}';
 $string['agreedyeswithlinkall'] = 'Consent given; click to withdraw user consent for all policies';
 $string['agreepolicies'] = 'Please agree to the following policies';
+$string['backtoprevious'] = 'Go back to previous page';
 $string['backtotop'] = 'Back to top';
 $string['consentbulk'] = 'Consent';
 $string['consentdetails'] = 'Give consent on behalf of user';
index 62919d3..563254d 100644 (file)
@@ -96,17 +96,17 @@ function tool_policy_before_standard_html_head() {
 /**
  * Callback to add footer elements.
  *
- * @return str valid html footer content
+ * @return string HTML footer content
  */
 function tool_policy_standard_footer_html() {
-    global $CFG;
+    global $CFG, $PAGE;
 
     $output = '';
     if (!empty($CFG->sitepolicyhandler)
             && $CFG->sitepolicyhandler == 'tool_policy') {
         $policies = api::get_current_versions_ids();
         if (!empty($policies)) {
-            $url = (new moodle_url('/admin/tool/policy/viewall.php'))->out();
+            $url = new moodle_url('/admin/tool/policy/viewall.php', ['returnurl' => $PAGE->url]);
             $output .= html_writer::link($url, get_string('userpolicysettings', 'tool_policy'));
             $output = html_writer::div($output, 'policiesfooter');
         }
index 2f9df36..3e4664c 100644 (file)
     -
 
     Context variables required for this template:
+    * returnurl - url to the previous page
     * policies - policy array
 
     Example context (json):
     {
+        "returnurl": "#",
         "policies": [
             {
                 "id": "2",
     }
 }}
 
+{{#returnurl}}
+<div class="text-right m-b-1">
+    <a href="{{returnurl}}">{{# str }} backtoprevious, tool_policy {{/ str }}</a>
+</div>
+{{/returnurl}}
+
 <a id="top"></a>
 <div id="policies_index">
 <h1>{{# str }} listactivepolicies, tool_policy {{/ str }}</h1>
index 9f5528c..e1f3f60 100644 (file)
@@ -34,7 +34,9 @@ define('NO_SITEPOLICY_CHECK', true);
 // @codingStandardsIgnoreLine See the {@link page_viewalldoc} for the access control checks.
 require(__DIR__.'/../../../config.php');
 
-$viewallpage = new page_viewalldoc();
+$returnurl = optional_param('returnurl', '', PARAM_LOCALURL); // A return URL.
+
+$viewallpage = new page_viewalldoc($returnurl);
 
 $output = $PAGE->get_renderer('tool_policy');