From 66f5e82b66d77befa347886f7623cc6e7b5ec5b8 Mon Sep 17 00:00:00 2001 From: John Okely Date: Tue, 21 Oct 2014 12:18:19 +0800 Subject: [PATCH] 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."