aa1c2e2382
Create or update the breadcrumbs in the site administration pages where it is required. Highlight the corresponding site adminstration tab. Highlight the primary nav to Site administration when user is navigating to any of the site administration pages. Also changed the boostnavbar so that the nodes in the secondary navigation are not shown in the breadcrumbs when user is in site administration page.
159 lines
6.8 KiB
PHP
159 lines
6.8 KiB
PHP
<?php
|
|
// This file is part of Moodle - http://moodle.org/
|
|
//
|
|
// Moodle is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// Moodle is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
/**
|
|
* This page lets users to manage rules for a given course.
|
|
*
|
|
* @package tool_monitor
|
|
* @copyright 2014 onwards Ankit Agarwal <ankit.agrr@gmail.com>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
|
|
use core\report_helper;
|
|
|
|
require_once(__DIR__ . '/../../../config.php');
|
|
require_once($CFG->libdir.'/adminlib.php');
|
|
|
|
$courseid = optional_param('courseid', 0, PARAM_INT);
|
|
$ruleid = optional_param('ruleid', 0, PARAM_INT);
|
|
$action = optional_param('action', '', PARAM_ALPHA);
|
|
$confirm = optional_param('confirm', false, PARAM_BOOL);
|
|
$status = optional_param('status', 0, PARAM_BOOL);
|
|
|
|
// Validate course id.
|
|
if (empty($courseid)) {
|
|
admin_externalpage_setup('toolmonitorrules', '', null, '', array('pagelayout' => 'report'));
|
|
$context = context_system::instance();
|
|
$coursename = format_string($SITE->fullname, true, array('context' => $context));
|
|
$PAGE->set_context($context);
|
|
$PAGE->set_primary_active_tab('siteadminnode');
|
|
} else {
|
|
$course = get_course($courseid);
|
|
require_login($course);
|
|
$context = context_course::instance($course->id);
|
|
$coursename = format_string($course->fullname, true, array('context' => $context));
|
|
}
|
|
|
|
// Check for caps.
|
|
require_capability('tool/monitor:managerules', $context);
|
|
|
|
// Set up the page.
|
|
$manageurl = new moodle_url("/admin/tool/monitor/managerules.php", array('courseid' => $courseid));
|
|
$PAGE->set_url($manageurl);
|
|
$PAGE->set_pagelayout('report');
|
|
$PAGE->set_title($coursename);
|
|
$PAGE->set_heading($coursename);
|
|
|
|
if (!empty($action) && $action == 'changestatus') {
|
|
require_sesskey();
|
|
require_capability('tool/monitor:managetool', context_system::instance());
|
|
// Toggle status of the plugin.
|
|
set_config('enablemonitor', $status, 'tool_monitor');
|
|
redirect(new moodle_url('/admin/tool/monitor/managerules.php', array('courseid' => 0)));
|
|
}
|
|
|
|
// Copy/delete rule if needed.
|
|
if (!empty($action) && $ruleid) {
|
|
require_sesskey();
|
|
|
|
// If the rule does not exist, then redirect back as the rule must have already been deleted.
|
|
if (!$rule = $DB->get_record('tool_monitor_rules', array('id' => $ruleid), '*', IGNORE_MISSING)) {
|
|
redirect(new moodle_url('/admin/tool/monitor/managerules.php', array('courseid' => $courseid)));
|
|
}
|
|
|
|
if ($action === 'delete') {
|
|
$PAGE->navbar->add(get_string('deleterule', 'tool_monitor'), $PAGE->url);
|
|
}
|
|
echo $OUTPUT->header();
|
|
$rule = \tool_monitor\rule_manager::get_rule($rule);
|
|
switch ($action) {
|
|
case 'copy':
|
|
// No need to check for capability here as it is done at the start of the page.
|
|
$rule->duplicate_rule($courseid);
|
|
echo $OUTPUT->notification(get_string('rulecopysuccess', 'tool_monitor'), 'notifysuccess');
|
|
break;
|
|
case 'delete':
|
|
if ($rule->can_manage_rule()) {
|
|
$confirmurl = new moodle_url($CFG->wwwroot. '/admin/tool/monitor/managerules.php',
|
|
array('ruleid' => $ruleid, 'courseid' => $courseid, 'action' => 'delete',
|
|
'confirm' => true, 'sesskey' => sesskey()));
|
|
$cancelurl = new moodle_url($CFG->wwwroot. '/admin/tool/monitor/managerules.php',
|
|
array('courseid' => $courseid));
|
|
if ($confirm) {
|
|
$rule->delete_rule();
|
|
echo $OUTPUT->notification(get_string('ruledeletesuccess', 'tool_monitor'), 'notifysuccess');
|
|
} else {
|
|
$strconfirm = get_string('ruleareyousure', 'tool_monitor', $rule->get_name($context));
|
|
if ($numberofsubs = $DB->count_records('tool_monitor_subscriptions', array('ruleid' => $ruleid))) {
|
|
$strconfirm .= '<br />';
|
|
$strconfirm .= get_string('ruleareyousureextra', 'tool_monitor', $numberofsubs);
|
|
}
|
|
echo $OUTPUT->confirm($strconfirm, $confirmurl, $cancelurl);
|
|
echo $OUTPUT->footer();
|
|
exit();
|
|
}
|
|
} else {
|
|
// User doesn't have permissions. Should never happen for real users.
|
|
throw new moodle_exception('rulenopermissions', 'tool_monitor', $manageurl, $action);
|
|
}
|
|
break;
|
|
default:
|
|
}
|
|
} else {
|
|
echo $OUTPUT->header();
|
|
}
|
|
|
|
// Print the selected dropdown.
|
|
$managerules = get_string('managerules', 'tool_monitor');
|
|
report_helper::print_report_selector($managerules);
|
|
|
|
$status = get_config('tool_monitor', 'enablemonitor');
|
|
$help = new help_icon('enablehelp', 'tool_monitor');
|
|
|
|
// Display option to enable/disable the plugin.
|
|
if ($status) {
|
|
if (has_capability('tool/monitor:managetool', context_system::instance())) {
|
|
// We don't need to show enabled status to everyone.
|
|
echo get_string('monitorenabled', 'tool_monitor');
|
|
$disableurl = new moodle_url("/admin/tool/monitor/managerules.php",
|
|
array('courseid' => $courseid, 'action' => 'changestatus', 'status' => 0, 'sesskey' => sesskey()));
|
|
echo ' ' . html_writer::link($disableurl, get_string('disable'));
|
|
echo $OUTPUT->render($help);
|
|
}
|
|
} else {
|
|
echo get_string('monitordisabled', 'tool_monitor');
|
|
if (has_capability('tool/monitor:managetool', context_system::instance())) {
|
|
$enableurl = new moodle_url("/admin/tool/monitor/managerules.php",
|
|
array('courseid' => $courseid, 'action' => 'changestatus', 'status' => 1, 'sesskey' => sesskey()));
|
|
echo ' ' . html_writer::link($enableurl, get_string('enable'));
|
|
echo $OUTPUT->render($help);
|
|
} else {
|
|
echo ' ' . get_string('contactadmin', 'tool_monitor');
|
|
}
|
|
echo $OUTPUT->footer(); // Do not render anything else.
|
|
exit();
|
|
}
|
|
|
|
// Render the rule list.
|
|
$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)) {
|
|
$manageurl = new moodle_url("/admin/tool/monitor/index.php", array('courseid' => $courseid));
|
|
echo $renderer->render_subscriptions_link($manageurl);
|
|
}
|
|
echo $OUTPUT->footer();
|