| Server IP : 172.67.187.206 / Your IP : 172.71.28.155 Web Server : Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30 System : Windows NT WIN-ECQAAA40806 6.2 build 9200 (Windows Server 2012 Standard Edition) i586 User : SYSTEM ( 0) PHP Version : 5.6.30 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : E:/Inetpub/www/myschool/triamudom/tuprblearn/lib/amd/src/ |
Upload File : |
// 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/>.
/**
* Chart output for HTML table.
*
* @package core
* @copyright 2016 Frédéric Massart - FMCorz.net
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @module core/chart_output_htmltable
*/
define([
'jquery',
'core/chart_output_base',
], function($, Base) {
/**
* Render a chart as an HTML table.
*
* @class
* @extends {module:core/chart_output_base}
* @alias module:core/chart_output_htmltable
*/
function Output() {
Base.prototype.constructor.apply(this, arguments);
this._build();
}
Output.prototype = Object.create(Base.prototype);
/**
* Attach the table to the document.
*
* @protected
*/
Output.prototype._build = function() {
this._node.empty();
this._node.append(this._makeTable());
};
/**
* Builds the table node.
*
* @protected
* @return {Jquery}
*/
Output.prototype._makeTable = function() {
var tbl = $('<table>'),
c = this._chart,
node,
value,
labels = c.getLabels(),
hasLabel = labels.length > 0,
series = c.getSeries(),
seriesLabels,
rowCount = series[0].getCount();
// Identify the table.
tbl.addClass('chart-output-htmltable generaltable');
// Set the caption.
if (c.getTitle() !== null) {
tbl.append($('<caption>').text(c.getTitle()));
}
// Write the column headers.
node = $('<tr>');
if (hasLabel) {
node.append($('<td>'));
}
series.forEach(function(serie) {
node.append(
$('<th>')
.text(serie.getLabel())
.attr('scope', 'col')
);
});
tbl.append(node);
// Write rows.
for (var rowId = 0; rowId < rowCount; rowId++) {
node = $('<tr>');
if (labels.length > 0) {
node.append(
$('<th>')
.text(labels[rowId])
.attr('scope', 'row')
);
}
for (var serieId = 0; serieId < series.length; serieId++) {
value = series[serieId].getValues()[rowId];
seriesLabels = series[serieId].getLabels();
if (seriesLabels !== null) {
value = series[serieId].getLabels()[rowId];
}
node.append($('<td>').text(value));
}
tbl.append(node);
}
return tbl;
};
/** @override */
Output.prototype.update = function() {
this._build();
};
return Output;
});