mirror of
https://github.com/moodle/moodle.git
synced 2025-03-27 19:12:39 +01:00
In the table that lists the scheduled tasks: 1. There are badges to show which components are disabled. 2. The plugin name (e.g. auth_ldap) is shown as well as the human-readable name (e.g. LDAP server). 3. Where a time column has a non-default value, it is highlighted and the default is shown. 4. If the fail-delay is non-zero, the cell is highlighted. 4. If you just interacted with a task (looked at or edited the settings, did Run now, or cleared the fail delay) that row is highlighted, and scrolled into view when the page loads. To support this, some of the methods for loading the default tasks have been extended with an optional argument to leave 'R' as 'R' rather than replacing with a random number. Also, mixed into this commit are a bunch of coding style improvements. Sorry I did not separate them out, but ultimately this makes the Moodle code better.
95 lines
2.9 KiB
PHP
95 lines
2.9 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/>.
|
|
|
|
/**
|
|
* Task log.
|
|
*
|
|
* @package admin
|
|
* @copyright 2018 Andrew Nicols <andrew@nicols.co.uk>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
|
|
require_once(__DIR__ . '/../config.php');
|
|
require_once("{$CFG->libdir}/adminlib.php");
|
|
require_once("{$CFG->libdir}/tablelib.php");
|
|
require_once("{$CFG->libdir}/filelib.php");
|
|
|
|
$filter = optional_param('filter', '', PARAM_RAW);
|
|
$result = optional_param('result', null, PARAM_INT);
|
|
|
|
$pageurl = new \moodle_url('/admin/tasklogs.php');
|
|
$pageurl->param('filter', $filter);
|
|
|
|
$PAGE->set_url($pageurl);
|
|
$PAGE->set_context(context_system::instance());
|
|
$PAGE->set_pagelayout('admin');
|
|
$strheading = get_string('tasklogs', 'tool_task');
|
|
$PAGE->set_title($strheading);
|
|
$PAGE->set_heading($strheading);
|
|
|
|
admin_externalpage_setup('tasklogs');
|
|
|
|
$logid = optional_param('logid', null, PARAM_INT);
|
|
$download = optional_param('download', false, PARAM_BOOL);
|
|
|
|
if (null !== $logid) {
|
|
// Raise memory limit in case the log is large.
|
|
raise_memory_limit(MEMORY_HUGE);
|
|
$log = $DB->get_record('task_log', ['id' => $logid], '*', MUST_EXIST);
|
|
|
|
if ($download) {
|
|
$filename = str_replace('\\', '_', $log->classname) . "-{$log->id}.log";
|
|
header("Content-Disposition: attachment; filename=\"{$filename}\"");
|
|
}
|
|
|
|
readstring_accel($log->output, 'text/plain');
|
|
exit;
|
|
}
|
|
|
|
$renderer = $PAGE->get_renderer('tool_task');
|
|
|
|
echo $OUTPUT->header();
|
|
|
|
// Output the search form.
|
|
echo $OUTPUT->render_from_template('core_admin/tasklogs', (object) [
|
|
'action' => $pageurl->out(),
|
|
'filter' => $filter,
|
|
'resultfilteroptions' => [
|
|
(object) [
|
|
'value' => -1,
|
|
'title' => get_string('all'),
|
|
'selected' => (-1 === $result),
|
|
],
|
|
(object) [
|
|
'value' => 0,
|
|
'title' => get_string('success'),
|
|
'selected' => (0 === $result),
|
|
],
|
|
(object) [
|
|
'value' => 1,
|
|
'title' => get_string('task_result:failed', 'admin'),
|
|
'selected' => (1 === $result),
|
|
],
|
|
],
|
|
]);
|
|
|
|
// Output any matching logs.
|
|
$table = new \core_admin\task_log_table($filter, $result);
|
|
$table->baseurl = $pageurl;
|
|
$table->out(100, false);
|
|
|
|
echo $OUTPUT->footer();
|