Current Path : C:/xampp/htdocs/moodle/admin/tool/lp/amd/src/ |
Current File : C:/xampp/htdocs/moodle/admin/tool/lp/amd/src/user_competency_info.js |
// 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/>. /** * Module to refresh a user competency summary in a page. * * @package tool_lp * @copyright 2015 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define(['jquery', 'core/notification', 'core/ajax', 'core/templates'], function($, notification, ajax, templates) { /** * Info * * @param {JQuery} rootElement Selector to replace when the information needs updating. * @param {Number} competencyId The id of the competency. * @param {Number} userId The id of the user. * @param {Number} planId The id of the plan. * @param {Number} courseId The id of the course. * @param {Boolean} displayuser If we should display the user info. */ var Info = function(rootElement, competencyId, userId, planId, courseId, displayuser) { this._rootElement = rootElement; this._competencyId = competencyId; this._userId = userId; this._planId = planId; this._courseId = courseId; this._valid = true; this._displayuser = (typeof displayuser !== 'undefined') ? displayuser : false; if (this._planId) { this._methodName = 'tool_lp_data_for_user_competency_summary_in_plan'; this._args = {competencyid: this._competencyId, planid: this._planId}; this._templateName = 'tool_lp/user_competency_summary_in_plan'; } else if (this._courseId) { this._methodName = 'tool_lp_data_for_user_competency_summary_in_course'; this._args = {userid: this._userId, competencyid: this._competencyId, courseid: this._courseId}; this._templateName = 'tool_lp/user_competency_summary_in_course'; } else { this._methodName = 'tool_lp_data_for_user_competency_summary'; this._args = {userid: this._userId, competencyid: this._competencyId}; this._templateName = 'tool_lp/user_competency_summary'; } }; /** * Reload the info for this user competency. * * @method reload */ Info.prototype.reload = function() { var self = this, promises = []; if (!this._valid) { return; } promises = ajax.call([{ methodname: this._methodName, args: this._args }]); promises[0].done(function(context) { // Check if we should also the user info. if (self._displayuser) { context.displayuser = true; } templates.render(self._templateName, context).done(function(html, js) { templates.replaceNode(self._rootElement, html, js); }).fail(notification.exception); }).fail(notification.exception); }; /** @type {JQuery} The root element to replace in the DOM. */ Info.prototype._rootElement = null; /** @type {Number} The id of the course. */ Info.prototype._courseId = null; /** @type {Boolean} Is this module valid? */ Info.prototype._valid = null; /** @type {Number} The id of the plan. */ Info.prototype._planId = null; /** @type {Number} The id of the competency. */ Info.prototype._competencyId = null; /** @type {Number} The id of the user. */ Info.prototype._userId = null; /** @type {String} The method name to load the data. */ Info.prototype._methodName = null; /** @type {Object} The arguments to load the data. */ Info.prototype._args = null; /** @type {String} The template to reload the fragment. */ Info.prototype._templateName = null; /** @type {Boolean} If we should display the user info? */ Info.prototype._displayuser = false; return /** @alias module:tool_lp/user_competency_info */ Info; });