MDL-43682 loglive: Rewrite loglive to use new logging stores

AMOS BEGIN
 CPY [eventcomponent,report_log],[eventcomponent,report_loglive]
 CPY [eventcontext,report_log],[eventcontext,report_loglive]
 CPY [eventloggedas,report_log],[eventloggedas,report_loglive]
 CPY [eventorigin,report_log],[eventorigin,report_loglive]
 CPY [eventrelatedfullnameuser,report_log],[eventrelatedfullnameuser,report_loglive]
 CPY [nologreaderenabled,report_log],[nologreaderenabled,report_loglive]
 CPY [selectlogreader,report_log],[selectlogreader,report_loglive]
AMOS END
This commit is contained in:
Ankit Agarwal 2014-04-04 14:42:19 +08:00
parent 1a727e121e
commit 5991eb80cd
19 changed files with 1759 additions and 76 deletions

View file

@ -28,78 +28,69 @@ require('../../config.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->dirroot.'/course/lib.php');
if (!defined('REPORT_LOGLIVE_REFRESH')) {
define('REPORT_LOGLIVE_REFRESH', 60); // Seconds
}
$id = optional_param('id', $SITE->id, PARAM_INT);
$id = optional_param('id', 0, PARAM_INT);
$page = optional_param('page', 0, PARAM_INT);
$inpopup = optional_param('inpopup', 0, PARAM_BOOL);
$logreader = optional_param('logreader', '', PARAM_COMPONENT); // Reader which will be used for displaying logs.
$course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);
if ($course->id == SITEID) {
if (empty($id)) {
require_login();
$PAGE->set_context(context_system::instance());
$context = context_system::instance();
$coursename = format_string($SITE->fullname, true, array('context' => $context));
} else {
$course = $DB->get_record('course', array('id' => $id), '*', MUST_EXIST);
require_login($course);
$context = context_course::instance($course->id);
$coursename = format_string($course->fullname, true, array('context' => $context));
}
$context = context_course::instance($course->id);
require_capability('report/loglive:view', $context);
$params = array();
if ($id != 0) {
$params['id'] = $id;
}
if ($page != 0) {
$params['page'] = $page;
}
if ($logreader !== '') {
$params['logreader'] = $logreader;
}
$url = new moodle_url("/report/loglive/index.php", $params);
$PAGE->set_url($url);
$PAGE->set_pagelayout('report');
$renderable = new report_loglive_renderable($logreader, $id, $url, 0, $page);
$refresh = $renderable->get_refresh_rate();
$logreader = $renderable->selectedlogreader;
// Include and trigger ajax requests.
if ($page == 0 && !empty($logreader)) {
// Tell Js to fetch new logs only, by passing time().
$jsparams = array('since' => time() , 'courseid' => $id, 'page' => $page, 'logreader' => $logreader,
'interval' => $refresh, 'perpage' => $renderable->perpage);
$PAGE->requires->strings_for_js(array('pause', 'resume'), 'report_loglive');
$PAGE->requires->yui_module('moodle-report_loglive-fetchlogs', 'Y.M.report_loglive.FetchLogs.init', array($jsparams));
}
$strlivelogs = get_string('livelogs', 'report_loglive');
if (!empty($page)) {
$strlogs = get_string('logs'). ": ". get_string('page', 'report_loglive', $page + 1);
} else {
$strlogs = get_string('logs');
$strupdatesevery = get_string('updatesevery', 'moodle', $refresh);
if (empty($id)) {
admin_externalpage_setup('reportloglive', '', null, '', array('pagelayout' => 'report'));
}
$PAGE->set_url($url);
$PAGE->set_context($context);
$PAGE->set_title("$coursename: $strlivelogs ($strupdatesevery)");
$PAGE->set_heading("$coursename: $strlivelogs ($strupdatesevery)");
if ($inpopup) {
\core\session\manager::write_close();
$output = $PAGE->get_renderer('report_loglive');
echo $output->header();
echo $output->reader_selector($renderable);
echo $output->toggle_liveupdate_button($renderable);
echo $output->render($renderable);
$date = time() - 3600;
// Trigger a logs viewed event.
$event = \report_loglive\event\report_viewed::create(array('context' => $context));
$event->trigger();
$url = new moodle_url('/report/loglive/index.php', array('id'=>$course->id, 'user'=>0, 'date'=>$date, 'inpopup'=>1));
$strupdatesevery = get_string('updatesevery', 'moodle', REPORT_LOGLIVE_REFRESH);
$coursename = format_string($course->fullname, true, array('context'=>$context));
$PAGE->set_url($url);
$PAGE->set_pagelayout('popup');
$PAGE->set_title("$coursename: $strlivelogs ($strupdatesevery)");
$PAGE->set_periodic_refresh_delay(REPORT_LOGLIVE_REFRESH);
$PAGE->set_heading($strlivelogs);
echo $OUTPUT->header();
// Trigger a logs viewed event.
$event = \report_loglive\event\report_viewed::create(array('context' => $context));
$event->trigger();
print_log($course, 0, $date, "l.time DESC", $page, 500, $url);
echo $OUTPUT->footer();
exit;
}
if ($course->id == SITEID) {
admin_externalpage_setup('reportloglive', '', null, '', array('pagelayout'=>'report'));
echo $OUTPUT->header();
} else {
$PAGE->set_url('/report/log/live.php', array('id'=>$course->id));
$PAGE->set_title($course->shortname .': '. $strlivelogs);
$PAGE->set_heading($course->fullname);
echo $OUTPUT->header();
}
echo $OUTPUT->heading(get_string('pluginname', 'report_loglive'));
echo $OUTPUT->container_start('info');
$link = new moodle_url('/report/loglive/index.php', array('id'=>$course->id, 'inpopup'=>1));
echo $OUTPUT->action_link($link, $strlivelogs, new popup_action('click', $link, 'livelog', array('height' => 500, 'width' => 800)));
echo $OUTPUT->container_end();
echo $OUTPUT->footer();
echo $output->footer();