Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
{"version":3,"file":"user_competency_workflow.min.js","sources":["../src/user_competency_workflow.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 * User competency workflow.\n *\n * @module     tool_lp/user_competency_workflow\n * @copyright  2015 Frédéric Massart - FMCorz.net\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery',\n        'core/templates',\n        'core/ajax',\n        'core/notification',\n        'core/str',\n        'tool_lp/menubar',\n        'tool_lp/event_base'],\n        function($, Templates, Ajax, Notification, Str, Menubar, EventBase) {\n\n    /**\n     * UserCompetencyWorkflow class.\n     */\n    var UserCompetencyWorkflow = function() {\n        EventBase.prototype.constructor.apply(this, []);\n    };\n    UserCompetencyWorkflow.prototype = Object.create(EventBase.prototype);\n\n    /** @property {String} The selector to find the user competency data. */\n    UserCompetencyWorkflow.prototype._nodeSelector = '[data-node=\"user-competency\"]';\n\n    /**\n     * Cancel a review request and refresh the view.\n     *\n     * @param  {Object} data The user competency data.\n     * @method _cancelReviewRequest\n     */\n    UserCompetencyWorkflow.prototype._cancelReviewRequest = function(data) {\n        var call = {\n            methodname: 'core_competency_user_competency_cancel_review_request',\n            args: {\n                userid: data.userid,\n                competencyid: data.competencyid\n            }\n        };\n\n        Ajax.call([call])[0].then(function() {\n            this._trigger('review-request-cancelled', data);\n            this._trigger('status-changed', data);\n        }.bind(this)).catch(function() {\n            this._trigger('error-occured', data);\n        }.bind(this));\n    };\n\n    /**\n     * Cancel a review request an refresh the view.\n     *\n     * @param  {Object} data The user competency data.\n     * @method cancelReviewRequest\n     */\n    UserCompetencyWorkflow.prototype.cancelReviewRequest = function(data) {\n        this._cancelReviewRequest(data);\n    };\n\n    /**\n     * Cancel a review request handler.\n     *\n     * @param  {Event} e The event.\n     * @method _cancelReviewRequestHandler\n     */\n    UserCompetencyWorkflow.prototype._cancelReviewRequestHandler = function(e) {\n        e.preventDefault();\n        var data = this._findUserCompetencyData($(e.target));\n        this.cancelReviewRequest(data);\n    };\n\n    /**\n     * Request a review and refresh the view.\n     *\n     * @param  {Object} data The user competency data.\n     * @method _requestReview\n     */\n    UserCompetencyWorkflow.prototype._requestReview = function(data) {\n        var call = {\n            methodname: 'core_competency_user_competency_request_review',\n            args: {\n                userid: data.userid,\n                competencyid: data.competencyid\n            }\n        };\n\n        Ajax.call([call])[0].then(function() {\n            this._trigger('review-requested', data);\n            this._trigger('status-changed', data);\n        }.bind(this)).catch(function() {\n            this._trigger('error-occured', data);\n        }.bind(this));\n    };\n\n    /**\n     * Request a review.\n     *\n     * @param  {Object} data The user competency data.\n     * @method requestReview\n     */\n    UserCompetencyWorkflow.prototype.requestReview = function(data) {\n        this._requestReview(data);\n    };\n\n    /**\n     * Request a review handler.\n     *\n     * @param  {Event} e The event.\n     * @method _requestReviewHandler\n     */\n    UserCompetencyWorkflow.prototype._requestReviewHandler = function(e) {\n        e.preventDefault();\n        var data = this._findUserCompetencyData($(e.target));\n        this.requestReview(data);\n    };\n\n    /**\n     * Start a review and refresh the view.\n     *\n     * @param  {Object} data The user competency data.\n     * @method _startReview\n     */\n    UserCompetencyWorkflow.prototype._startReview = function(data) {\n        var call = {\n            methodname: 'core_competency_user_competency_start_review',\n            args: {\n                userid: data.userid,\n                competencyid: data.competencyid\n            }\n        };\n        Ajax.call([call])[0].then(function() {\n            this._trigger('review-started', data);\n            this._trigger('status-changed', data);\n        }.bind(this)).catch(function() {\n            this._trigger('error-occured', data);\n        }.bind(this));\n    };\n\n    /**\n     * Start a review.\n     *\n     * @param  {Object} data The user competency data.\n     * @method startReview\n     */\n    UserCompetencyWorkflow.prototype.startReview = function(data) {\n        this._startReview(data);\n    };\n\n    /**\n     * Start a review handler.\n     *\n     * @param  {Event} e The event.\n     * @method _startReviewHandler\n     */\n    UserCompetencyWorkflow.prototype._startReviewHandler = function(e) {\n        e.preventDefault();\n        var data = this._findUserCompetencyData($(e.target));\n        this.startReview(data);\n    };\n\n    /**\n     * Stop a review and refresh the view.\n     *\n     * @param  {Object} data The user competency data.\n     * @method _stopReview\n     */\n    UserCompetencyWorkflow.prototype._stopReview = function(data) {\n        var call = {\n            methodname: 'core_competency_user_competency_stop_review',\n            args: {\n                userid: data.userid,\n                competencyid: data.competencyid\n            }\n        };\n\n        Ajax.call([call])[0].then(function() {\n            this._trigger('review-stopped', data);\n            this._trigger('status-changed', data);\n        }.bind(this)).catch(function() {\n            this._trigger('error-occured', data);\n        }.bind(this));\n    };\n\n    /**\n     * Stop a review.\n     *\n     * @param  {Object} data The user competency data.\n     * @method stopReview\n     */\n    UserCompetencyWorkflow.prototype.stopReview = function(data) {\n        this._stopReview(data);\n    };\n\n    /**\n     * Stop a review handler.\n     *\n     * @param  {Event} e The event.\n     * @method _stopReviewHandler\n     */\n    UserCompetencyWorkflow.prototype._stopReviewHandler = function(e) {\n        e.preventDefault();\n        var data = this._findUserCompetencyData($(e.target));\n        this.stopReview(data);\n    };\n\n    /**\n     * Enhance a menu bar.\n     *\n     * @param  {String} selector Menubar selector.\n     */\n    UserCompetencyWorkflow.prototype.enhanceMenubar = function(selector) {\n        Menubar.enhance(selector, {\n            '[data-action=\"request-review\"]': this._requestReviewHandler.bind(this),\n            '[data-action=\"cancel-review-request\"]': this._cancelReviewRequestHandler.bind(this),\n        });\n    };\n\n    /**\n     * Find the user competency data from a node.\n     *\n     * @param  {Node} node The node to search from.\n     * @return {Object} User competency data.\n     */\n    UserCompetencyWorkflow.prototype._findUserCompetencyData = function(node) {\n        var parent = node.parents(this._nodeSelector),\n            data;\n\n        if (parent.length != 1) {\n            throw new Error('The evidence node was not located.');\n        }\n\n        data = parent.data();\n        if (typeof data === 'undefined' || typeof data.userid === 'undefined' || typeof data.competencyid === 'undefined') {\n            throw new Error('User competency data could not be found.');\n        }\n\n        return data;\n    };\n\n    /**\n     * Enhance a menu bar.\n     *\n     * @param  {String} selector Menubar selector.\n     */\n    UserCompetencyWorkflow.prototype.enhanceMenubar = function(selector) {\n        Menubar.enhance(selector, {\n            '[data-action=\"request-review\"]': this._requestReviewHandler.bind(this),\n            '[data-action=\"cancel-review-request\"]': this._cancelReviewRequestHandler.bind(this),\n            '[data-action=\"start-review\"]': this._startReviewHandler.bind(this),\n            '[data-action=\"stop-review\"]': this._stopReviewHandler.bind(this),\n        });\n    };\n\n    /**\n     * Register the events in the region.\n     *\n     * @param {String} selector The base selector to search nodes in and attach events.\n     */\n    UserCompetencyWorkflow.prototype.registerEvents = function(selector) {\n        var wrapper = $(selector);\n\n        wrapper.find('[data-action=\"request-review\"]').click(this._requestReviewHandler.bind(this));\n        wrapper.find('[data-action=\"cancel-review-request\"]').click(this._cancelReviewRequestHandler.bind(this));\n        wrapper.find('[data-action=\"start-review\"]').click(this._startReviewHandler.bind(this));\n        wrapper.find('[data-action=\"stop-review\"]').click(this._stopReviewHandler.bind(this));\n    };\n\n    return /** @alias module:tool_lp/user_competency_actions */ UserCompetencyWorkflow;\n});\n"],"names":["define","$","Templates","Ajax","Notification","Str","Menubar","EventBase","UserCompetencyWorkflow","prototype","constructor","apply","this","Object","create","_nodeSelector","_cancelReviewRequest","data","call","methodname","args","userid","competencyid","then","_trigger","bind","catch","cancelReviewRequest","_cancelReviewRequestHandler","e","preventDefault","_findUserCompetencyData","target","_requestReview","requestReview","_requestReviewHandler","_startReview","startReview","_startReviewHandler","_stopReview","stopReview","_stopReviewHandler","enhanceMenubar","selector","enhance","node","parent","parents","length","Error","registerEvents","wrapper","find","click"],"mappings":"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"}