Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

{"version":3,"file":"competencydialogue.min.js","sources":["../src/competencydialogue.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * Display Competency in dialogue box.\n *\n * @module     tool_lp/competencydialogue\n * @copyright  2015 Issam Taboubi <issam.taboubi@umontreal.ca>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery',\n        'core/notification',\n        'core/ajax',\n        'core/templates',\n        'core/str',\n        'tool_lp/dialogue'],\n       function($, notification, ajax, templates, str, Dialogue) {\n\n    /**\n     * The main instance we'll be working with.\n     *\n     * @type {Competencydialogue}\n     */\n    var instance;\n\n    /**\n     * Constructor for CompetencyDialogue.\n     */\n    var Competencydialogue = function() {\n      // Intentionally left empty.\n    };\n\n    /**\n     * Log the competency viewed event.\n     *\n     * @param  {Number} competencyId The competency ID.\n     * @method triggerCompetencyViewedEvent\n     */\n    Competencydialogue.prototype.triggerCompetencyViewedEvent = function(competencyId) {\n        ajax.call([{\n                methodname: 'core_competency_competency_viewed',\n                args: {id: competencyId}\n        }]);\n    };\n\n    /**\n     * Display a dialogue box by competencyid.\n     *\n     * @param {Number} competencyid The competency ID.\n     * @param {Object} options The options.\n     * @method showDialogue\n     */\n    Competencydialogue.prototype.showDialogue = function(competencyid, options) {\n\n        var datapromise = this.getCompetencyDataPromise(competencyid, options);\n        var localthis = this;\n        datapromise.done(function(data) {\n            // Inner Html in the dialogue content.\n            templates.render('tool_lp/competency_summary', data)\n                .done(function(html) {\n                    // Log competency viewed event.\n                    localthis.triggerCompetencyViewedEvent(competencyid);\n\n                    // Show the dialogue.\n                    new Dialogue(\n                        data.competency.shortname,\n                        html\n                    );\n                }).fail(notification.exception);\n        }).fail(notification.exception);\n    };\n\n    /**\n     * Display a dialogue box from data.\n     *\n     * @param {Object} dataSource data to be used to display dialogue box\n     * @method showDialogueFromData\n     */\n    Competencydialogue.prototype.showDialogueFromData = function(dataSource) {\n\n        var localthis = this;\n        // Inner Html in the dialogue content.\n        templates.render('tool_lp/competency_summary', dataSource)\n            .done(function(html) {\n                // Log competency viewed event.\n                localthis.triggerCompetencyViewedEvent(dataSource.id);\n\n                // Show the dialogue.\n                new Dialogue(\n                    dataSource.shortname,\n                    html,\n                    localthis.enhanceDialogue\n                );\n            }).fail(notification.exception);\n    };\n\n    /**\n     * The action on the click event.\n     *\n     * @param {Event} e event click\n     * @method clickEventHandler\n     */\n    Competencydialogue.prototype.clickEventHandler = function(e) {\n\n        var compdialogue = e.data.compdialogue;\n        var currentTarget = $(e.currentTarget);\n        var competencyid = currentTarget.data('id');\n        var includerelated = !(currentTarget.data('excluderelated'));\n        var includecourses = currentTarget.data('includecourses');\n\n        // Show the dialogue box.\n        compdialogue.showDialogue(competencyid, {\n            includerelated: includerelated,\n            includecourses: includecourses\n        });\n        e.preventDefault();\n    };\n\n    /**\n     * Get a promise on data competency.\n     *\n     * @param {Number} competencyid\n     * @param {Object} options\n     * @return {Promise} return promise on data request\n     * @method getCompetencyDataPromise\n     */\n    Competencydialogue.prototype.getCompetencyDataPromise = function(competencyid, options) {\n\n        var requests = ajax.call([\n            {methodname: 'tool_lp_data_for_competency_summary',\n              args: {competencyid: competencyid,\n                      includerelated: options.includerelated || false,\n                      includecourses: options.includecourses || false\n                    }\n            }\n        ]);\n\n        return requests[0].then(function(context) {\n           return context;\n        }).fail(notification.exception);\n    };\n\n    return /** @alias module:tool_lp/competencydialogue */ {\n\n        /**\n         * Initialise the competency dialogue module.\n         *\n         * Only the first call matters.\n         */\n        init: function() {\n            if (typeof instance !== 'undefined') {\n                return;\n            }\n\n            // Instantiate the one instance and delegate event on the body.\n            instance = new Competencydialogue();\n            $('body').delegate('[data-action=\"competency-dialogue\"]', 'click', {compdialogue: instance},\n                instance.clickEventHandler.bind(instance));\n        }\n    };\n});\n"],"names":["define","$","notification","ajax","templates","str","Dialogue","instance","Competencydialogue","prototype","triggerCompetencyViewedEvent","competencyId","call","methodname","args","id","showDialogue","competencyid","options","datapromise","this","getCompetencyDataPromise","localthis","done","data","render","html","competency","shortname","fail","exception","showDialogueFromData","dataSource","enhanceDialogue","clickEventHandler","e","compdialogue","currentTarget","includerelated","includecourses","preventDefault","then","context","init","delegate","bind"],"mappings":";;;;;;;AAsBAA,oCAAO,CAAC,SACA,oBACA,YACA,iBACA,WACA,qBACD,SAASC,EAAGC,aAAcC,KAAMC,UAAWC,IAAKC,cAO/CC,SAKAC,mBAAqB,oBAUzBA,mBAAmBC,UAAUC,6BAA+B,SAASC,cACjER,KAAKS,KAAK,CAAC,CACHC,WAAY,oCACZC,KAAM,CAACC,GAAIJ,kBAWvBH,mBAAmBC,UAAUO,aAAe,SAASC,aAAcC,aAE3DC,YAAcC,KAAKC,yBAAyBJ,aAAcC,SAC1DI,UAAYF,KAChBD,YAAYI,MAAK,SAASC,MAEtBpB,UAAUqB,OAAO,6BAA8BD,MAC1CD,MAAK,SAASG,MAEXJ,UAAUZ,6BAA6BO,kBAGnCX,SACAkB,KAAKG,WAAWC,UAChBF,SAELG,KAAK3B,aAAa4B,cAC1BD,KAAK3B,aAAa4B,YASzBtB,mBAAmBC,UAAUsB,qBAAuB,SAASC,gBAErDV,UAAYF,KAEhBhB,UAAUqB,OAAO,6BAA8BO,YAC1CT,MAAK,SAASG,MAEXJ,UAAUZ,6BAA6BsB,WAAWjB,QAG9CT,SACA0B,WAAWJ,UACXF,KACAJ,UAAUW,oBAEfJ,KAAK3B,aAAa4B,YAS7BtB,mBAAmBC,UAAUyB,kBAAoB,SAASC,OAElDC,aAAeD,EAAEX,KAAKY,aACtBC,cAAgBpC,EAAEkC,EAAEE,eACpBpB,aAAeoB,cAAcb,KAAK,MAClCc,gBAAmBD,cAAcb,KAAK,kBACtCe,eAAiBF,cAAcb,KAAK,kBAGxCY,aAAapB,aAAaC,aAAc,CACpCqB,eAAgBA,eAChBC,eAAgBA,iBAEpBJ,EAAEK,kBAWNhC,mBAAmBC,UAAUY,yBAA2B,SAASJ,aAAcC,gBAE5Df,KAAKS,KAAK,CACrB,CAACC,WAAY,sCACXC,KAAM,CAACG,aAAcA,aACbqB,eAAgBpB,QAAQoB,iBAAkB,EAC1CC,eAAgBrB,QAAQqB,iBAAkB,MAKxC,GAAGE,MAAK,SAASC,gBACvBA,WACPb,KAAK3B,aAAa4B,YAG8B,CAOnDa,KAAM,gBACsB,IAAbpC,WAKXA,SAAW,IAAIC,mBACfP,EAAE,QAAQ2C,SAAS,sCAAuC,QAAS,CAACR,aAAc7B,UAC9EA,SAAS2B,kBAAkBW,KAAKtC"}