// 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 . /* eslint-disable no-unused-vars */ /** * Grader Report Functionality. * * @module moodle-gradereport_grader-gradereporttable * @package gradereport_grader * @copyright 2014 UC Regents * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @author Alfonso Roman */ /** * @module moodle-gradereport_grader-gradereporttable */ var SELECTORS = { FOOTERTITLE: '.avg .header', FOOTERCELLS: '#user-grades .avg .cell', FOOTERROW: '#user-grades .avg', GRADECELL: 'td.grade', GRADERTABLE: '.gradeparent table', GRADEPARENT: '.gradeparent', HEADERCELLS: '#user-grades .heading .cell', HEADERCELL: '.gradebook-header-cell', HEADERROW: '#user-grades tr.heading', STUDENTHEADER: '#studentheader', USERCELL: '#user-grades .user.cell', USERMAIL: '#user-grades .useremail' }, CSS = { OVERRIDDEN: 'overridden', TOOLTIPACTIVE: 'tooltipactive' }; /** * The Grader Report Table. * * @namespace M.gradereport_grader * @class ReportTable * @constructor */ function ReportTable() { ReportTable.superclass.constructor.apply(this, arguments); } Y.extend(ReportTable, Y.Base, { /** * Array of EventHandles. * * @type EventHandle[] * @property _eventHandles * @protected */ _eventHandles: [], /** * A Node reference to the grader table. * * @property graderTable * @type Node */ graderTable: null, /** * Setup the grader report table. * * @method initializer */ initializer: function() { // Some useful references within our target area. this.graderRegion = Y.one(SELECTORS.GRADEPARENT); this.graderTable = Y.one(SELECTORS.GRADERTABLE); // Setup the floating headers. this.setupFloatingHeaders(); }, /** * Get the text content of the username for the specified grade item. * * @method getGradeUserName * @param {Node} cell The grade item cell to obtain the username for * @return {String} The string content of the username cell. */ getGradeUserName: function(cell) { var userrow = cell.ancestor('tr'), usercell = userrow.one("th.user .username"); if (usercell) { return usercell.get('text'); } else { return ''; } }, /** * Get the text content of the item name for the specified grade item. * * @method getGradeItemName * @param {Node} cell The grade item cell to obtain the item name for * @return {String} The string content of the item name cell. */ getGradeItemName: function(cell) { var itemcell = Y.one("th.item[data-itemid='" + cell.getData('itemid') + "']"); if (itemcell) { return itemcell.get('text'); } else { return ''; } }, /** * Get the text content of any feedback associated with the grade item. * * @method getGradeFeedback * @param {Node} cell The grade item cell to obtain the item name for * @return {String} The string content of the feedback. */ getGradeFeedback: function(cell) { return cell.getData('feedback'); } }); Y.namespace('M.gradereport_grader').ReportTable = ReportTable; Y.namespace('M.gradereport_grader').init = function(config) { return new Y.M.gradereport_grader.ReportTable(config); };