weekly back-to-dev release 4.1dev
[moodle.git] / report / loglive / classes / table_log_ajax.php
blob3dcefcc011525d0d5cdf428ea8ad80361d96d15e
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
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.
8 //
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/>.
17 /**
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;
27 /**
28 * Table log class for generating data in ajax mode.
30 * @since Moodle 2.7
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 {
37 /**
38 * Convenience method to call a number of methods for you to display the
39 * table.
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);
49 $html = '';
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);
61 /**
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
65 * @param string $text
66 * @param string $name
67 * @return string
69 protected function action_link(moodle_url $url, $text, $name = 'popup') {
70 global $OUTPUT;
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])
77 ]);
79 return $OUTPUT->render($link);