2 // This file is part of Moodle - http://moodle.org/
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
18 * Table log for generating data in ajax mode.
20 * @package report_loglive
21 * @copyright 2014 onwards Ankit Agarwal <ankit.agrr@gmail.com>
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25 defined('MOODLE_INTERNAL') ||
die;
28 * Table log class for generating data in ajax mode.
31 * @package report_loglive
32 * @copyright 2014 onwards Ankit Agarwal <ankit.agrr@gmail.com>
33 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
35 class report_loglive_table_log_ajax
extends report_loglive_table_log
{
38 * Convenience method to call a number of methods for you to display the
41 * @param int $pagesize pagesize
42 * @param bool $useinitialsbar Not used, present only for compatibility with parent.
43 * @param string $downloadhelpbutton Not used, present only for compatibility with parent.
45 * @return string json encoded data containing html of new rows.
47 public function out($pagesize, $useinitialsbar, $downloadhelpbutton = '') {
48 $this->query_db($pagesize, false);
50 if ($this->rawdata
&& $this->columns
) {
51 foreach ($this->rawdata
as $row) {
52 $formatedrow = $this->format_row($row);
53 $formatedrow = $this->get_row_from_keyed($formatedrow);
54 $html .= $this->get_row_html($formatedrow, 'newrow');
57 $result = array('logs' => $html, 'until' => $this->get_until());
58 return json_encode($result);
62 * Popup actions do not function when they are rendered in response to an AJAX request, encode within the link itself
64 * @param moodle_url $url
69 protected function action_link(moodle_url
$url, $text, $name = 'popup') {
72 $link = new action_link($url, $text, null, [
73 'data-action' => 'action-popup',
74 'data-popup-action' => json_encode(
75 new popup_action('click', $url, $name, ['height' => 440, 'width' => 700])
79 return $OUTPUT->render($link);