From 220602b7f0fd885158c7b524985602c677ce4518 Mon Sep 17 00:00:00 2001 From: John Okely Date: Mon, 20 Oct 2014 17:01:08 +0800 Subject: [PATCH 1/2] MDL-47767 tool_monitor: Add links between subscribe and rule manager --- admin/tool/monitor/index.php | 8 ++++++++ admin/tool/monitor/lang/en/tool_monitor.php | 1 + admin/tool/monitor/managerules.php | 9 +++++++++ 3 files changed, 18 insertions(+) diff --git a/admin/tool/monitor/index.php b/admin/tool/monitor/index.php index 45c7309b6c6..48cf1c7af66 100644 --- a/admin/tool/monitor/index.php +++ b/admin/tool/monitor/index.php @@ -107,5 +107,13 @@ if (empty($totalrules)) { echo $link; } echo html_writer::end_div(); +} else if (has_capability('tool/monitor:managerules', $context)) { + echo html_writer::start_div(); + $params = $courseid == 1 ? array() : array('courseid' => $courseid); + $manageurl = new moodle_url("/" . $CFG->admin . "/tool/monitor/managerules.php", $params); + $a = html_writer::link($manageurl, get_string('managerules', 'tool_monitor')); + $link = html_writer::tag('span', get_string('manageruleslink', 'tool_monitor', $a)); + echo $link; + echo html_writer::end_div(); } echo $OUTPUT->footer(); diff --git a/admin/tool/monitor/lang/en/tool_monitor.php b/admin/tool/monitor/lang/en/tool_monitor.php index 0d39eeb6e6f..dc72d48cb9d 100644 --- a/admin/tool/monitor/lang/en/tool_monitor.php +++ b/admin/tool/monitor/lang/en/tool_monitor.php @@ -45,6 +45,7 @@ $string['frequency'] = 'Frequency'; $string['invalidmodule'] = 'Invalid module'; $string['norules'] = 'There are no rules you can subscribe to.'; $string['manageruleslink'] = 'You can manage rules from {$a} page.'; +$string['managesubscriptionslink'] = 'You can subscribe to rules from the {$a} page.'; $string['moduleinstance'] = 'Module instance'; $string['manage'] = 'Manage'; $string['managesubscriptions'] = 'Event monitoring'; diff --git a/admin/tool/monitor/managerules.php b/admin/tool/monitor/managerules.php index 8259fecf304..864facad0b5 100644 --- a/admin/tool/monitor/managerules.php +++ b/admin/tool/monitor/managerules.php @@ -90,4 +90,13 @@ if (!empty($action) && $ruleid) { $renderable = new \tool_monitor\output\managerules\renderable('toolmonitorrules', $manageurl, $courseid); $renderer = $PAGE->get_renderer('tool_monitor', 'managerules'); echo $renderer->render($renderable); +if (has_capability('tool/monitor:subscribe', $context)) { + echo html_writer::start_div(); + $params = $courseid == 0 ? array('courseid' => 1) : array('courseid' => $courseid); + $manageurl = new moodle_url("/" . $CFG->admin . "/tool/monitor/index.php", $params); + $a = html_writer::link($manageurl, get_string('managesubscriptions', 'tool_monitor')); + $link = html_writer::tag('span', get_string('managesubscriptionslink', 'tool_monitor', $a)); + echo $link; + echo html_writer::end_div(); +} echo $OUTPUT->footer(); From 6a6dd57c904e33027455cf246ba6331681eab4cd Mon Sep 17 00:00:00 2001 From: John Okely Date: Tue, 21 Oct 2014 12:18:19 +0800 Subject: [PATCH 2/2] MDL-47767 tool_monitor: Use renderers for links between subscription and rule managers --- .../classes/output/managerules/renderer.php | 17 ++++++++++++++++- .../classes/output/managesubs/renderer.php | 15 +++++++++++++++ admin/tool/monitor/index.php | 9 ++------- admin/tool/monitor/managerules.php | 9 ++------- .../monitor/tests/behat/subscription.feature | 13 +++++++++++++ 5 files changed, 48 insertions(+), 15 deletions(-) diff --git a/admin/tool/monitor/classes/output/managerules/renderer.php b/admin/tool/monitor/classes/output/managerules/renderer.php index 889817da227..5eaed9fde4f 100644 --- a/admin/tool/monitor/classes/output/managerules/renderer.php +++ b/admin/tool/monitor/classes/output/managerules/renderer.php @@ -68,7 +68,7 @@ class renderer extends \plugin_renderer_base { } /** - * Html to add a button for adding a new rul. + * Html to add a button for adding a new rule. * * @param int $courseid course id. * @@ -81,4 +81,19 @@ class renderer extends \plugin_renderer_base { $addurl = new \moodle_url($CFG->wwwroot. '/admin/tool/monitor/edit.php', array('courseid' => $courseid)); return \html_writer::link($addurl, $button); } + + /** + * Html to add a link to go to the subscription page. + * + * @param moodle_url $manageurl The url of the subscription page. + * + * @return string html for the link to the subscription page. + */ + public function render_subscriptions_link($manageurl) { + echo \html_writer::start_div(); + $a = \html_writer::link($manageurl, get_string('managesubscriptions', 'tool_monitor')); + $link = \html_writer::tag('span', get_string('managesubscriptionslink', 'tool_monitor', $a)); + echo $link; + echo \html_writer::end_div(); + } } diff --git a/admin/tool/monitor/classes/output/managesubs/renderer.php b/admin/tool/monitor/classes/output/managesubs/renderer.php index fe3f8e05bf8..edf8b499527 100644 --- a/admin/tool/monitor/classes/output/managesubs/renderer.php +++ b/admin/tool/monitor/classes/output/managesubs/renderer.php @@ -91,4 +91,19 @@ class renderer extends \plugin_renderer_base { return $o; } + + /** + * Html to add a link to go to the rule manager page. + * + * @param moodle_url $ruleurl The url of the rule manager page. + * + * @return string html for the link to the rule manager page. + */ + public function render_rules_link($ruleurl) { + echo \html_writer::start_div(); + $a = \html_writer::link($ruleurl, get_string('managerules', 'tool_monitor')); + $link = \html_writer::tag('span', get_string('manageruleslink', 'tool_monitor', $a)); + echo $link; + echo \html_writer::end_div(); + } } diff --git a/admin/tool/monitor/index.php b/admin/tool/monitor/index.php index 48cf1c7af66..3a02a62c49e 100644 --- a/admin/tool/monitor/index.php +++ b/admin/tool/monitor/index.php @@ -108,12 +108,7 @@ if (empty($totalrules)) { } echo html_writer::end_div(); } else if (has_capability('tool/monitor:managerules', $context)) { - echo html_writer::start_div(); - $params = $courseid == 1 ? array() : array('courseid' => $courseid); - $manageurl = new moodle_url("/" . $CFG->admin . "/tool/monitor/managerules.php", $params); - $a = html_writer::link($manageurl, get_string('managerules', 'tool_monitor')); - $link = html_writer::tag('span', get_string('manageruleslink', 'tool_monitor', $a)); - echo $link; - echo html_writer::end_div(); + $manageurl = new moodle_url("/admin/tool/monitor/managerules.php", array('courseid' => $courseid)); + echo $renderer->render_rules_link($manageurl); } echo $OUTPUT->footer(); diff --git a/admin/tool/monitor/managerules.php b/admin/tool/monitor/managerules.php index 864facad0b5..bdafd03da76 100644 --- a/admin/tool/monitor/managerules.php +++ b/admin/tool/monitor/managerules.php @@ -91,12 +91,7 @@ $renderable = new \tool_monitor\output\managerules\renderable('toolmonitorrules' $renderer = $PAGE->get_renderer('tool_monitor', 'managerules'); echo $renderer->render($renderable); if (has_capability('tool/monitor:subscribe', $context)) { - echo html_writer::start_div(); - $params = $courseid == 0 ? array('courseid' => 1) : array('courseid' => $courseid); - $manageurl = new moodle_url("/" . $CFG->admin . "/tool/monitor/index.php", $params); - $a = html_writer::link($manageurl, get_string('managesubscriptions', 'tool_monitor')); - $link = html_writer::tag('span', get_string('managesubscriptionslink', 'tool_monitor', $a)); - echo $link; - echo html_writer::end_div(); + $manageurl = new moodle_url("/admin/tool/monitor/index.php", array('courseid' => $courseid)); + echo $renderer->render_subscriptions_link($manageurl); } echo $OUTPUT->footer(); diff --git a/admin/tool/monitor/tests/behat/subscription.feature b/admin/tool/monitor/tests/behat/subscription.feature index 8d78a0a5e14..4fe3660242c 100644 --- a/admin/tool/monitor/tests/behat/subscription.feature +++ b/admin/tool/monitor/tests/behat/subscription.feature @@ -123,3 +123,16 @@ Feature: tool_monitor_subscriptions When I follow "Messages" And I follow "Do not reply to this email (1)" Then I should see "The course was viewed." + + Scenario: Navigating via quick link to rules + Given I log in as "admin" + And I navigate to "Event monitoring" node in "My profile settings" + Then I should see "You can manage rules from Event monitoring rules page." + And I follow "Event monitoring rules" + And I should see "Event monitor" + And I should see "You can subscribe to rules from the Event monitoring page." + And I log out + And I log in as "teacher1" + And I follow "Course 1" + And I navigate to "Event monitoring" node in "My profile settings" + Then I should not see "You can manage rules from Event monitoring rules page."