Current Path : C:/xampp/htdocs/moodle/admin/tool/lp/amd/build/ |
Current File : C:/xampp/htdocs/moodle/admin/tool/lp/amd/build/planactions.min.js.map |
{"version":3,"sources":["../src/planactions.js"],"names":["define","$","templates","ajax","notification","str","Menubar","Dialogue","PlanActions","type","_type","_region","_planNode","_template","_contextMethod","TypeError","prototype","_getContextArgs","planData","self","args","planid","id","userid","refresh","selector","_findPlanData","_callAndRefresh","_renderView","context","render","then","newhtml","newjs","replaceWith","runTemplateJS","calls","callKey","Math","floor","random","M","util","js_pending","push","methodname","when","apply","call","arguments","length","fail","exception","always","js_complete","_doDelete","deletePlan","requests","done","plan","get_strings","key","component","param","name","strings","confirm","_doReopenPlan","reopenPlan","_doCompletePlan","completePlan","_doUnlinkPlan","unlinkPlan","_doRequestReview","requestReview","_doCancelReviewRequest","cancelReviewRequest","_doStartReview","startReview","_doStopReview","stopReview","_doApprove","approve","_doUnapprove","unapprove","_showLinkedCoursesHandler","e","preventDefault","competencyid","target","data","courses","html","get_string","linkedcourses","_eventHandler","method","node","parent","parentsUntil","Error","enhanceMenubar","enhance","bind","registerEvents","wrapper","find","click"],"mappings":"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","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 * Plan actions via ajax.\n *\n * @module tool_lp/planactions\n * @package tool_lp\n * @copyright 2015 David Monllao\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/dialogue'],\n function($, templates, ajax, notification, str, Menubar, Dialogue) {\n\n /**\n * PlanActions class.\n *\n * Note that presently this cannot be instantiated more than once per page.\n *\n * @param {String} type The type of page we're in.\n */\n var PlanActions = function(type) {\n this._type = type;\n\n if (type === 'plan') {\n // This is the page to view one plan.\n this._region = '[data-region=\"plan-page\"]';\n this._planNode = '[data-region=\"plan-page\"]';\n this._template = 'tool_lp/plan_page';\n this._contextMethod = 'tool_lp_data_for_plan_page';\n\n } else if (type === 'plans') {\n // This is the page to view a list of plans.\n this._region = '[data-region=\"plans\"]';\n this._planNode = '[data-region=\"plan-node\"]';\n this._template = 'tool_lp/plans_page';\n this._contextMethod = 'tool_lp_data_for_plans_page';\n\n } else {\n throw new TypeError('Unexpected type.');\n }\n };\n\n /** @type {String} Ajax method to fetch the page data from. */\n PlanActions.prototype._contextMethod = null;\n /** @type {String} Selector to find the node describing the plan. */\n PlanActions.prototype._planNode = null;\n /** @type {String} Selector mapping to the region to update. Usually similar to wrapper. */\n PlanActions.prototype._region = null;\n /** @type {String} Name of the template used to render the region. */\n PlanActions.prototype._template = null;\n /** @type {String} Type of page/region we're in. */\n PlanActions.prototype._type = null;\n\n /**\n * Resolve the arguments to refresh the region.\n *\n * @param {Object} planData Plan data from plan node.\n * @return {Object} List of arguments.\n */\n PlanActions.prototype._getContextArgs = function(planData) {\n var self = this,\n args = {};\n\n if (self._type === 'plan') {\n args = {\n planid: planData.id\n };\n\n } else if (self._type === 'plans') {\n args = {\n userid: planData.userid\n };\n }\n\n return args;\n };\n\n /**\n * Refresh the plan view.\n *\n * This is useful when you only want to refresh the view.\n *\n * @param {String} selector The node to search the plan data from.\n */\n PlanActions.prototype.refresh = function(selector) {\n var planData = this._findPlanData($(selector));\n this._callAndRefresh([], planData);\n };\n\n /**\n * Callback to render the region template.\n *\n * @param {Object} context The context for the template.\n * @return {Promise}\n */\n PlanActions.prototype._renderView = function(context) {\n var self = this;\n return templates.render(self._template, context)\n .then(function(newhtml, newjs) {\n $(self._region).replaceWith(newhtml);\n templates.runTemplateJS(newjs);\n return;\n });\n };\n\n /**\n * Call multiple ajax methods, and refresh.\n *\n * @param {Array} calls List of Ajax calls.\n * @param {Object} planData Plan data from plan node.\n * @return {Promise}\n */\n PlanActions.prototype._callAndRefresh = function(calls, planData) {\n // Because this function causes a refresh, we must track the JS completion from start to finish to prevent\n // stale reference issues in Behat.\n var callKey = 'tool_lp/planactions:_callAndRefresh-' + Math.floor(Math.random() * Math.floor(1000));\n M.util.js_pending(callKey);\n\n var self = this;\n calls.push({\n methodname: self._contextMethod,\n args: self._getContextArgs(planData)\n });\n\n // Apply all the promises, and refresh when the last one is resolved.\n return $.when.apply($, ajax.call(calls))\n .then(function() {\n return self._renderView(arguments[arguments.length - 1]);\n })\n .fail(notification.exception)\n .always(function() {\n return M.util.js_complete(callKey);\n });\n };\n\n /**\n * Delete a plan and reload the region.\n *\n * @param {Object} planData Plan data from plan node.\n */\n PlanActions.prototype._doDelete = function(planData) {\n var self = this,\n calls = [{\n methodname: 'core_competency_delete_plan',\n args: {id: planData.id}\n }];\n self._callAndRefresh(calls, planData);\n };\n\n /**\n * Delete a plan.\n *\n * @param {Object} planData Plan data from plan node.\n */\n PlanActions.prototype.deletePlan = function(planData) {\n var self = this,\n requests;\n\n requests = ajax.call([{\n methodname: 'core_competency_read_plan',\n args: {id: planData.id}\n }]);\n\n requests[0].done(function(plan) {\n str.get_strings([\n {key: 'confirm', component: 'moodle'},\n {key: 'deleteplan', component: 'tool_lp', param: plan.name},\n {key: 'delete', component: 'moodle'},\n {key: 'cancel', component: 'moodle'}\n ]).done(function(strings) {\n notification.confirm(\n strings[0], // Confirm.\n strings[1], // Delete plan X?\n strings[2], // Delete.\n strings[3], // Cancel.\n function() {\n self._doDelete(planData);\n }\n );\n }).fail(notification.exception);\n }).fail(notification.exception);\n\n };\n\n /**\n * Reopen plan and reload the region.\n *\n * @param {Object} planData Plan data from plan node.\n */\n PlanActions.prototype._doReopenPlan = function(planData) {\n var self = this,\n calls = [{\n methodname: 'core_competency_reopen_plan',\n args: {planid: planData.id}\n }];\n self._callAndRefresh(calls, planData);\n };\n\n /**\n * Reopen a plan.\n *\n * @param {Object} planData Plan data from plan node.\n */\n PlanActions.prototype.reopenPlan = function(planData) {\n var self = this,\n requests = ajax.call([{\n methodname: 'core_competency_read_plan',\n args: {id: planData.id}\n }]);\n\n requests[0].done(function(plan) {\n str.get_strings([\n {key: 'confirm', component: 'moodle'},\n {key: 'reopenplanconfirm', component: 'tool_lp', param: plan.name},\n {key: 'reopenplan', component: 'tool_lp'},\n {key: 'cancel', component: 'moodle'}\n ]).done(function(strings) {\n notification.confirm(\n strings[0], // Confirm.\n strings[1], // Reopen plan X?\n strings[2], // Reopen.\n strings[3], // Cancel.\n function() {\n self._doReopenPlan(planData);\n }\n );\n }).fail(notification.exception);\n }).fail(notification.exception);\n\n };\n\n /**\n * Complete plan and reload the region.\n *\n * @param {Object} planData Plan data from plan node.\n */\n PlanActions.prototype._doCompletePlan = function(planData) {\n var self = this,\n calls = [{\n methodname: 'core_competency_complete_plan',\n args: {planid: planData.id}\n }];\n self._callAndRefresh(calls, planData);\n };\n\n /**\n * Complete a plan process.\n *\n * @param {Object} planData Plan data from plan node.\n */\n PlanActions.prototype.completePlan = function(planData) {\n var self = this,\n requests = ajax.call([{\n methodname: 'core_competency_read_plan',\n args: {id: planData.id}\n }]);\n\n requests[0].done(function(plan) {\n str.get_strings([\n {key: 'confirm', component: 'moodle'},\n {key: 'completeplanconfirm', component: 'tool_lp', param: plan.name},\n {key: 'completeplan', component: 'tool_lp'},\n {key: 'cancel', component: 'moodle'}\n ]).done(function(strings) {\n notification.confirm(\n strings[0], // Confirm.\n strings[1], // Complete plan X?\n strings[2], // Complete.\n strings[3], // Cancel.\n function() {\n self._doCompletePlan(planData);\n }\n );\n }).fail(notification.exception);\n }).fail(notification.exception);\n };\n\n /**\n * Unlink plan and reload the region.\n *\n * @param {Object} planData Plan data from plan node.\n */\n PlanActions.prototype._doUnlinkPlan = function(planData) {\n var self = this,\n calls = [{\n methodname: 'core_competency_unlink_plan_from_template',\n args: {planid: planData.id}\n }];\n self._callAndRefresh(calls, planData);\n };\n\n /**\n * Unlink a plan process.\n *\n * @param {Object} planData Plan data from plan node.\n */\n PlanActions.prototype.unlinkPlan = function(planData) {\n var self = this,\n requests = ajax.call([{\n methodname: 'core_competency_read_plan',\n args: {id: planData.id}\n }]);\n\n requests[0].done(function(plan) {\n str.get_strings([\n {key: 'confirm', component: 'moodle'},\n {key: 'unlinkplantemplateconfirm', component: 'tool_lp', param: plan.name},\n {key: 'unlinkplantemplate', component: 'tool_lp'},\n {key: 'cancel', component: 'moodle'}\n ]).done(function(strings) {\n notification.confirm(\n strings[0], // Confirm.\n strings[1], // Unlink plan X?\n strings[2], // Unlink.\n strings[3], // Cancel.\n function() {\n self._doUnlinkPlan(planData);\n }\n );\n }).fail(notification.exception);\n }).fail(notification.exception);\n };\n\n /**\n * Request review of a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method _doRequestReview\n */\n PlanActions.prototype._doRequestReview = function(planData) {\n var calls = [{\n methodname: 'core_competency_plan_request_review',\n args: {\n id: planData.id\n }\n }];\n this._callAndRefresh(calls, planData);\n };\n\n /**\n * Request review of a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method requestReview\n */\n PlanActions.prototype.requestReview = function(planData) {\n this._doRequestReview(planData);\n };\n\n /**\n * Cancel review request of a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method _doCancelReviewRequest\n */\n PlanActions.prototype._doCancelReviewRequest = function(planData) {\n var calls = [{\n methodname: 'core_competency_plan_cancel_review_request',\n args: {\n id: planData.id\n }\n }];\n this._callAndRefresh(calls, planData);\n };\n\n /**\n * Cancel review request of a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method cancelReviewRequest\n */\n PlanActions.prototype.cancelReviewRequest = function(planData) {\n this._doCancelReviewRequest(planData);\n };\n\n /**\n * Start review of a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method _doStartReview\n */\n PlanActions.prototype._doStartReview = function(planData) {\n var calls = [{\n methodname: 'core_competency_plan_start_review',\n args: {\n id: planData.id\n }\n }];\n this._callAndRefresh(calls, planData);\n };\n\n /**\n * Start review of a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method startReview\n */\n PlanActions.prototype.startReview = function(planData) {\n this._doStartReview(planData);\n };\n\n /**\n * Stop review of a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method _doStopReview\n */\n PlanActions.prototype._doStopReview = function(planData) {\n var calls = [{\n methodname: 'core_competency_plan_stop_review',\n args: {\n id: planData.id\n }\n }];\n this._callAndRefresh(calls, planData);\n };\n\n /**\n * Stop review of a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method stopReview\n */\n PlanActions.prototype.stopReview = function(planData) {\n this._doStopReview(planData);\n };\n\n /**\n * Approve a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method _doApprove\n */\n PlanActions.prototype._doApprove = function(planData) {\n var calls = [{\n methodname: 'core_competency_approve_plan',\n args: {\n id: planData.id\n }\n }];\n this._callAndRefresh(calls, planData);\n };\n\n /**\n * Approve a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method approve\n */\n PlanActions.prototype.approve = function(planData) {\n this._doApprove(planData);\n };\n\n /**\n * Unapprove a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method _doUnapprove\n */\n PlanActions.prototype._doUnapprove = function(planData) {\n var calls = [{\n methodname: 'core_competency_unapprove_plan',\n args: {\n id: planData.id\n }\n }];\n this._callAndRefresh(calls, planData);\n };\n\n /**\n * Unapprove a plan.\n *\n * @param {Object} planData Plan data from plan node.\n * @method unapprove\n */\n PlanActions.prototype.unapprove = function(planData) {\n this._doUnapprove(planData);\n };\n\n /**\n * Display list of linked courses on a modal dialogue.\n *\n * @param {Event} e The event.\n */\n PlanActions.prototype._showLinkedCoursesHandler = function(e) {\n e.preventDefault();\n\n var competencyid = $(e.target).data('id');\n var requests = ajax.call([{\n methodname: 'tool_lp_list_courses_using_competency',\n args: {id: competencyid}\n }]);\n\n requests[0].done(function(courses) {\n var context = {\n courses: courses\n };\n templates.render('tool_lp/linked_courses_summary', context).done(function(html) {\n str.get_string('linkedcourses', 'tool_lp').done(function(linkedcourses) {\n new Dialogue(\n linkedcourses, // Title.\n html // The linked courses.\n );\n }).fail(notification.exception);\n }).fail(notification.exception);\n }).fail(notification.exception);\n };\n\n /**\n * Plan event handler.\n *\n * @param {String} method The method to call.\n * @param {Event} e The event.\n * @method _eventHandler\n */\n PlanActions.prototype._eventHandler = function(method, e) {\n e.preventDefault();\n var data = this._findPlanData($(e.target));\n this[method](data);\n };\n\n /**\n * Find the plan data from the plan node.\n *\n * @param {Node} node The node to search from.\n * @return {Object} Plan data.\n */\n PlanActions.prototype._findPlanData = function(node) {\n var parent = node.parentsUntil($(this._region).parent(), this._planNode),\n data;\n\n if (parent.length != 1) {\n throw new Error('The plan node was not located.');\n }\n\n data = parent.data();\n if (typeof data === 'undefined' || typeof data.id === 'undefined') {\n throw new Error('Plan 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 PlanActions.prototype.enhanceMenubar = function(selector) {\n Menubar.enhance(selector, {\n '[data-action=\"plan-delete\"]': this._eventHandler.bind(this, 'deletePlan'),\n '[data-action=\"plan-complete\"]': this._eventHandler.bind(this, 'completePlan'),\n '[data-action=\"plan-reopen\"]': this._eventHandler.bind(this, 'reopenPlan'),\n '[data-action=\"plan-unlink\"]': this._eventHandler.bind(this, 'unlinkPlan'),\n '[data-action=\"plan-request-review\"]': this._eventHandler.bind(this, 'requestReview'),\n '[data-action=\"plan-cancel-review-request\"]': this._eventHandler.bind(this, 'cancelReviewRequest'),\n '[data-action=\"plan-start-review\"]': this._eventHandler.bind(this, 'startReview'),\n '[data-action=\"plan-stop-review\"]': this._eventHandler.bind(this, 'stopReview'),\n '[data-action=\"plan-approve\"]': this._eventHandler.bind(this, 'approve'),\n '[data-action=\"plan-unapprove\"]': this._eventHandler.bind(this, 'unapprove'),\n });\n };\n\n /**\n * Register the events in the region.\n *\n * At this stage this cannot be used with enhanceMenubar or multiple handlers\n * will be added to the same node.\n */\n PlanActions.prototype.registerEvents = function() {\n var wrapper = $(this._region);\n\n wrapper.find('[data-action=\"plan-delete\"]').click(this._eventHandler.bind(this, 'deletePlan'));\n wrapper.find('[data-action=\"plan-complete\"]').click(this._eventHandler.bind(this, 'completePlan'));\n wrapper.find('[data-action=\"plan-reopen\"]').click(this._eventHandler.bind(this, 'reopenPlan'));\n wrapper.find('[data-action=\"plan-unlink\"]').click(this._eventHandler.bind(this, 'unlinkPlan'));\n\n wrapper.find('[data-action=\"plan-request-review\"]').click(this._eventHandler.bind(this, 'requestReview'));\n wrapper.find('[data-action=\"plan-cancel-review-request\"]').click(this._eventHandler.bind(this, 'cancelReviewRequest'));\n wrapper.find('[data-action=\"plan-start-review\"]').click(this._eventHandler.bind(this, 'startReview'));\n wrapper.find('[data-action=\"plan-stop-review\"]').click(this._eventHandler.bind(this, 'stopReview'));\n wrapper.find('[data-action=\"plan-approve\"]').click(this._eventHandler.bind(this, 'approve'));\n wrapper.find('[data-action=\"plan-unapprove\"]').click(this._eventHandler.bind(this, 'unapprove'));\n\n wrapper.find('[data-action=\"find-courses-link\"]').click(this._showLinkedCoursesHandler.bind(this));\n };\n\n return PlanActions;\n});\n"],"file":"planactions.min.js"}