Current Path : C:/xampp/htdocs/moodle/admin/tool/lp/amd/build/ |
Current File : C:/xampp/htdocs/moodle/admin/tool/lp/amd/build/competencyactions.min.js.map |
{"version":3,"sources":["../src/competencyactions.js"],"names":["define","$","url","templates","notification","str","ajax","dragdrop","Ariatree","Dialogue","menubar","Picker","Outcomes","RuleConfig","Pending","treeModel","moveSource","moveTarget","pageContextId","pickerInstance","ruleConfigInstance","relatedTarget","taxonomiesConstants","rulesModules","selectedCompetencyId","addHandler","parent","data","params","competencyframeworkid","getCompetencyFrameworkId","pagecontextid","parentid","id","relocate","queryparams","param","window","location","relativeUrl","hasRule","get_strings","key","component","shortname","done","strings","confirm","fail","exception","doMove","frameworkid","requests","call","methodname","args","competencyid","search","val","reloadPage","confirmMove","targetComp","getCompetency","sourceComp","confirmMessage","showConfirm","path","indexOf","initMovePopup","popup","body","getContent","treeRoot","find","tree","on","evt","target","selected","show","close","addCompetencyChildren","competencies","i","length","haschildren","children","moveHandler","e","preventDefault","competency","searchtext","when","apply","framework","competenciestree","onecompetency","render","editHandler","context","newhtml","newjs","replaceWith","runTemplateJS","updateSearchHandler","moveUpHandler","moveDownHandler","seeCoursesHandler","courses","html","get_string","linkedcourses","relateCompetenciesHandler","pendingPromise","compIds","competencyIds","calls","each","index","value","push","relatedcompetencyid","promises","then","js","updatedRelatedCompetencies","resolve","catch","setDisallowedCompetencyIDs","display","ruleConfigHandler","setTargetCompetencyId","ruleConfigSaveHandler","config","update","idnumber","description","descriptionformat","ruletype","ruleoutcome","ruleconfig","promise","result","renderCompetencySummary","doDelete","success","alert","deleteCompetencyHandler","dragStart","originalEvent","dataTransfer","setData","allowDrop","dropEffect","dragEnter","addClass","dragLeave","removeClass","dropOver","getData","deleteRelatedHandler","relatedid","substr","removeRelated","triggerCompetencyViewedEvent","getTaxonomyAtLevel","level","constant","Deferred","showdeleterelatedaction","showrelatedcompetencies","showrule","pluginbaseurl","NONE","getString","name","modInfo","type","strs","rule","outcome","replaceNodeContents","strAddTaxonomy","strSelectedTaxonomy","selectionChanged","node","btn","actionMenu","selectedTitle","sublevel","closeAll","clone","remove","end","text","hide","getCompetencyLevel","parseTaxonomies","taxonomiesstr","all","split","unshift","init","model","pagectxid","taxonomies","rulesMods","enhance","bind","top"],"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 * Handle selection changes and actions on the competency tree.\n *\n * @module tool_lp/competencyactions\n * @package tool_lp\n * @copyright 2015 Damyon Wiese <damyon@moodle.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery',\n 'core/url',\n 'core/templates',\n 'core/notification',\n 'core/str',\n 'core/ajax',\n 'tool_lp/dragdrop-reorder',\n 'tool_lp/tree',\n 'tool_lp/dialogue',\n 'tool_lp/menubar',\n 'tool_lp/competencypicker',\n 'tool_lp/competency_outcomes',\n 'tool_lp/competencyruleconfig',\n 'core/pending',\n ],\n function(\n $, url, templates, notification, str, ajax, dragdrop, Ariatree, Dialogue, menubar, Picker, Outcomes, RuleConfig, Pending\n ) {\n\n // Private variables and functions.\n /** @var {Object} treeModel - This is an object representing the nodes in the tree. */\n var treeModel = null;\n /** @var {Node} moveSource - The start of a drag operation */\n var moveSource = null;\n /** @var {Node} moveTarget - The end of a drag operation */\n var moveTarget = null;\n /** @var {Number} pageContextId The page context ID. */\n var pageContextId;\n /** @type {Object} Picker instance. */\n var pickerInstance;\n /** @type {Object} Rule config instance. */\n var ruleConfigInstance;\n /** @type {Object} The competency we're picking a relation to. */\n var relatedTarget;\n /** @type {Object} Taxonomy constants indexed per level. */\n var taxonomiesConstants;\n /** @type {Array} The rules modules. Values are object containing type, namd and amd. */\n var rulesModules;\n /** @type {Number} the selected competency ID. */\n var selectedCompetencyId = null;\n\n /**\n * Respond to choosing the \"Add\" menu item for the selected node in the tree.\n * @method addHandler\n */\n var addHandler = function() {\n var parent = $('[data-region=\"competencyactions\"]').data('competency');\n\n var params = {\n competencyframeworkid: treeModel.getCompetencyFrameworkId(),\n pagecontextid: pageContextId\n };\n\n if (parent !== null) {\n // We are adding at a sub node.\n params.parentid = parent.id;\n }\n\n var relocate = function() {\n var queryparams = $.param(params);\n window.location = url.relativeUrl('/admin/tool/lp/editcompetency.php?' + queryparams);\n };\n\n if (parent !== null && treeModel.hasRule(parent.id)) {\n str.get_strings([\n {key: 'confirm', component: 'moodle'},\n {key: 'addingcompetencywillresetparentrule', component: 'tool_lp', param: parent.shortname},\n {key: 'yes', component: 'core'},\n {key: 'no', component: 'core'}\n ]).done(function(strings) {\n notification.confirm(\n strings[0],\n strings[1],\n strings[2],\n strings[3],\n relocate\n );\n }).fail(notification.exception);\n } else {\n relocate();\n }\n };\n\n /**\n * A source and destination has been chosen - so time to complete a move.\n * @method doMove\n */\n var doMove = function() {\n var frameworkid = $('[data-region=\"filtercompetencies\"]').data('frameworkid');\n var requests = ajax.call([{\n methodname: 'core_competency_set_parent_competency',\n args: {competencyid: moveSource, parentid: moveTarget}\n }, {\n methodname: 'tool_lp_data_for_competencies_manage_page',\n args: {competencyframeworkid: frameworkid,\n search: $('[data-region=\"filtercompetencies\"] input').val()}\n }]);\n requests[1].done(reloadPage).fail(notification.exception);\n };\n\n /**\n * Confirms a competency move.\n *\n * @method confirmMove\n */\n var confirmMove = function() {\n moveTarget = typeof moveTarget === \"undefined\" ? 0 : moveTarget;\n if (moveTarget == moveSource) {\n // No move to do.\n return;\n }\n\n var targetComp = treeModel.getCompetency(moveTarget) || {},\n sourceComp = treeModel.getCompetency(moveSource) || {},\n confirmMessage = 'movecompetencywillresetrules',\n showConfirm = false;\n\n // We shouldn't be moving the competency to the same parent.\n if (sourceComp.parentid == moveTarget) {\n return;\n }\n\n // If we are moving to a child of self.\n if (targetComp.path && targetComp.path.indexOf('/' + sourceComp.id + '/') >= 0) {\n confirmMessage = 'movecompetencytochildofselfwillresetrules';\n\n // Show a confirmation if self has rules, as they'll disappear.\n showConfirm = showConfirm || treeModel.hasRule(sourceComp.id);\n }\n\n // Show a confirmation if the current parent, or the destination have rules.\n showConfirm = showConfirm || (treeModel.hasRule(targetComp.id) || treeModel.hasRule(sourceComp.parentid));\n\n // Show confirm, and/or do the things.\n if (showConfirm) {\n str.get_strings([\n {key: 'confirm', component: 'moodle'},\n {key: confirmMessage, component: 'tool_lp'},\n {key: 'yes', component: 'moodle'},\n {key: 'no', component: 'moodle'}\n ]).done(function(strings) {\n notification.confirm(\n strings[0], // Confirm.\n strings[1], // Delete competency X?\n strings[2], // Delete.\n strings[3], // Cancel.\n doMove\n );\n }).fail(notification.exception);\n\n } else {\n doMove();\n }\n };\n\n /**\n * A move competency popup was opened - initialise the aria tree in it.\n * @method initMovePopup\n * @param {dialogue} popup The tool_lp/dialogue that was created.\n */\n var initMovePopup = function(popup) {\n var body = $(popup.getContent());\n var treeRoot = body.find('[data-enhance=movetree]');\n var tree = new Ariatree(treeRoot, false);\n tree.on('selectionchanged', function(evt, params) {\n var target = params.selected;\n moveTarget = $(target).data('id');\n });\n treeRoot.show();\n\n body.on('click', '[data-action=\"move\"]', function() {\n popup.close();\n confirmMove();\n });\n body.on('click', '[data-action=\"cancel\"]', function() {\n popup.close();\n });\n };\n\n /**\n * Turn a flat list of competencies into a tree structure (recursive).\n * @method addCompetencyChildren\n * @param {Object} parent The current parent node in the tree\n * @param {Object[]} competencies The flat list of competencies\n */\n var addCompetencyChildren = function(parent, competencies) {\n var i;\n\n for (i = 0; i < competencies.length; i++) {\n if (competencies[i].parentid == parent.id) {\n parent.haschildren = true;\n competencies[i].children = [];\n competencies[i].haschildren = false;\n parent.children[parent.children.length] = competencies[i];\n addCompetencyChildren(competencies[i], competencies);\n }\n }\n };\n\n /**\n * A node was chosen and \"Move\" was selected from the menu. Open a popup to select the target.\n * @param {Event} e\n * @method moveHandler\n */\n var moveHandler = function(e) {\n e.preventDefault();\n var competency = $('[data-region=\"competencyactions\"]').data('competency');\n\n // Remember what we are moving.\n moveSource = competency.id;\n\n // Load data for the template.\n var requests = ajax.call([\n {\n methodname: 'core_competency_search_competencies',\n args: {\n competencyframeworkid: competency.competencyframeworkid,\n searchtext: ''\n }\n }, {\n methodname: 'core_competency_read_competency_framework',\n args: {\n id: competency.competencyframeworkid\n }\n }\n ]);\n\n // When all data has arrived, continue.\n $.when.apply(null, requests).done(function(competencies, framework) {\n\n // Expand the list of competencies into a tree.\n var i;\n var competenciestree = [];\n for (i = 0; i < competencies.length; i++) {\n var onecompetency = competencies[i];\n if (onecompetency.parentid == \"0\") {\n onecompetency.children = [];\n onecompetency.haschildren = 0;\n competenciestree[competenciestree.length] = onecompetency;\n addCompetencyChildren(onecompetency, competencies);\n }\n }\n\n str.get_strings([\n {key: 'movecompetency', component: 'tool_lp', param: competency.shortname},\n {key: 'move', component: 'tool_lp'},\n {key: 'cancel', component: 'moodle'}\n ]).done(function(strings) {\n\n var context = {\n framework: framework,\n competencies: competenciestree\n };\n\n templates.render('tool_lp/competencies_move_tree', context)\n .done(function(tree) {\n new Dialogue(\n strings[0], // Move competency x.\n tree, // The move tree.\n initMovePopup\n );\n\n }).fail(notification.exception);\n\n }).fail(notification.exception);\n\n }).fail(notification.exception);\n\n };\n\n /**\n * Edit the selected competency.\n * @method editHandler\n */\n var editHandler = function() {\n var competency = $('[data-region=\"competencyactions\"]').data('competency');\n\n var params = {\n competencyframeworkid: treeModel.getCompetencyFrameworkId(),\n id: competency.id,\n parentid: competency.parentid,\n pagecontextid: pageContextId\n };\n\n var queryparams = $.param(params);\n window.location = url.relativeUrl('/admin/tool/lp/editcompetency.php?' + queryparams);\n };\n\n /**\n * Re-render the page with the latest data.\n * @param {Object} context\n * @method reloadPage\n */\n var reloadPage = function(context) {\n templates.render('tool_lp/manage_competencies_page', context)\n .done(function(newhtml, newjs) {\n $('[data-region=\"managecompetencies\"]').replaceWith(newhtml);\n templates.runTemplateJS(newjs);\n })\n .fail(notification.exception);\n };\n\n /**\n * Perform a search and render the page with the new search results.\n * @param {Event} e\n * @method updateSearchHandler\n */\n var updateSearchHandler = function(e) {\n e.preventDefault();\n\n var frameworkid = $('[data-region=\"filtercompetencies\"]').data('frameworkid');\n\n var requests = ajax.call([{\n methodname: 'tool_lp_data_for_competencies_manage_page',\n args: {competencyframeworkid: frameworkid,\n search: $('[data-region=\"filtercompetencies\"] input').val()}\n }]);\n requests[0].done(reloadPage).fail(notification.exception);\n };\n\n /**\n * Move a competency \"up\". This only affects the sort order within the same branch of the tree.\n * @method moveUpHandler\n */\n var moveUpHandler = function() {\n // We are chaining ajax requests here.\n var competency = $('[data-region=\"competencyactions\"]').data('competency');\n var requests = ajax.call([{\n methodname: 'core_competency_move_up_competency',\n args: {id: competency.id}\n }, {\n methodname: 'tool_lp_data_for_competencies_manage_page',\n args: {competencyframeworkid: competency.competencyframeworkid,\n search: $('[data-region=\"filtercompetencies\"] input').val()}\n }]);\n requests[1].done(reloadPage).fail(notification.exception);\n };\n\n /**\n * Move a competency \"down\". This only affects the sort order within the same branch of the tree.\n * @method moveDownHandler\n */\n var moveDownHandler = function() {\n // We are chaining ajax requests here.\n var competency = $('[data-region=\"competencyactions\"]').data('competency');\n var requests = ajax.call([{\n methodname: 'core_competency_move_down_competency',\n args: {id: competency.id}\n }, {\n methodname: 'tool_lp_data_for_competencies_manage_page',\n args: {competencyframeworkid: competency.competencyframeworkid,\n search: $('[data-region=\"filtercompetencies\"] input').val()}\n }]);\n requests[1].done(reloadPage).fail(notification.exception);\n };\n\n /**\n * Open a dialogue to show all the courses using the selected competency.\n * @method seeCoursesHandler\n */\n var seeCoursesHandler = function() {\n var competency = $('[data-region=\"competencyactions\"]').data('competency');\n\n var requests = ajax.call([{\n methodname: 'tool_lp_list_courses_using_competency',\n args: {id: competency.id}\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 initMovePopup\n );\n }).fail(notification.exception);\n }).fail(notification.exception);\n }).fail(notification.exception);\n };\n\n /**\n * Open a competencies popup to relate competencies.\n *\n * @method relateCompetenciesHandler\n */\n var relateCompetenciesHandler = function() {\n relatedTarget = $('[data-region=\"competencyactions\"]').data('competency');\n\n if (!pickerInstance) {\n pickerInstance = new Picker(pageContextId, relatedTarget.competencyframeworkid);\n pickerInstance.on('save', function(e, data) {\n var pendingPromise = new Pending();\n var compIds = data.competencyIds;\n\n var calls = [];\n $.each(compIds, function(index, value) {\n calls.push({\n methodname: 'core_competency_add_related_competency',\n args: {competencyid: value, relatedcompetencyid: relatedTarget.id}\n });\n });\n\n calls.push({\n methodname: 'tool_lp_data_for_related_competencies_section',\n args: {competencyid: relatedTarget.id}\n });\n\n var promises = ajax.call(calls);\n\n promises[calls.length - 1].then(function(context) {\n return templates.render('tool_lp/related_competencies', context);\n }).then(function(html, js) {\n $('[data-region=\"relatedcompetencies\"]').replaceWith(html);\n templates.runTemplateJS(js);\n updatedRelatedCompetencies();\n return;\n })\n .then(pendingPromise.resolve)\n .catch(notification.exception);\n });\n }\n\n pickerInstance.setDisallowedCompetencyIDs([relatedTarget.id]);\n pickerInstance.display();\n };\n\n var ruleConfigHandler = function(e) {\n e.preventDefault();\n relatedTarget = $('[data-region=\"competencyactions\"]').data('competency');\n ruleConfigInstance.setTargetCompetencyId(relatedTarget.id);\n ruleConfigInstance.display();\n };\n\n var ruleConfigSaveHandler = function(e, config) {\n var update = {\n id: relatedTarget.id,\n shortname: relatedTarget.shortname,\n idnumber: relatedTarget.idnumber,\n description: relatedTarget.description,\n descriptionformat: relatedTarget.descriptionformat,\n ruletype: config.ruletype,\n ruleoutcome: config.ruleoutcome,\n ruleconfig: config.ruleconfig\n };\n var promise = ajax.call([{\n methodname: 'core_competency_update_competency',\n args: {competency: update}\n }]);\n promise[0].then(function(result) {\n if (result) {\n relatedTarget.ruletype = config.ruletype;\n relatedTarget.ruleoutcome = config.ruleoutcome;\n relatedTarget.ruleconfig = config.ruleconfig;\n renderCompetencySummary(relatedTarget);\n }\n return;\n }).catch(notification.exception);\n };\n\n /**\n * Delete a competency.\n * @method doDelete\n */\n var doDelete = function() {\n // We are chaining ajax requests here.\n var competency = $('[data-region=\"competencyactions\"]').data('competency');\n var requests = ajax.call([{\n methodname: 'core_competency_delete_competency',\n args: {id: competency.id}\n }, {\n methodname: 'tool_lp_data_for_competencies_manage_page',\n args: {competencyframeworkid: competency.competencyframeworkid,\n search: $('[data-region=\"filtercompetencies\"] input').val()}\n }]);\n requests[0].done(function(success) {\n if (success === false) {\n str.get_strings([\n {key: 'competencycannotbedeleted', component: 'tool_lp', param: competency.shortname},\n {key: 'cancel', component: 'moodle'}\n ]).done(function(strings) {\n notification.alert(\n null,\n strings[0]\n );\n }).fail(notification.exception);\n }\n }).fail(notification.exception);\n requests[1].done(reloadPage).fail(notification.exception);\n };\n\n /**\n * Show a confirm dialogue before deleting a competency.\n * @method deleteCompetencyHandler\n */\n var deleteCompetencyHandler = function() {\n var competency = $('[data-region=\"competencyactions\"]').data('competency'),\n confirmMessage = 'deletecompetency';\n\n if (treeModel.hasRule(competency.parentid)) {\n confirmMessage = 'deletecompetencyparenthasrule';\n }\n\n str.get_strings([\n {key: 'confirm', component: 'moodle'},\n {key: confirmMessage, component: 'tool_lp', param: competency.shortname},\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 competency X?\n strings[2], // Delete.\n strings[3], // Cancel.\n doDelete\n );\n }).fail(notification.exception);\n };\n\n /**\n * HTML5 implementation of drag/drop (there is an accesible alternative in the menus).\n * @method dragStart\n * @param {Event} e\n */\n var dragStart = function(e) {\n e.originalEvent.dataTransfer.setData('text', $(e.target).parent().data('id'));\n };\n\n /**\n * HTML5 implementation of drag/drop (there is an accesible alternative in the menus).\n * @method allowDrop\n * @param {Event} e\n */\n var allowDrop = function(e) {\n e.originalEvent.dataTransfer.dropEffect = 'move';\n e.preventDefault();\n };\n\n /**\n * HTML5 implementation of drag/drop (there is an accesible alternative in the menus).\n * @method dragEnter\n * @param {Event} e\n */\n var dragEnter = function(e) {\n e.preventDefault();\n $(this).addClass('currentdragtarget');\n };\n\n /**\n * HTML5 implementation of drag/drop (there is an accesible alternative in the menus).\n * @method dragLeave\n * @param {Event} e\n */\n var dragLeave = function(e) {\n e.preventDefault();\n $(this).removeClass('currentdragtarget');\n };\n\n /**\n * HTML5 implementation of drag/drop (there is an accesible alternative in the menus).\n * @method dropOver\n * @param {Event} e\n */\n var dropOver = function(e) {\n e.preventDefault();\n moveSource = e.originalEvent.dataTransfer.getData('text');\n moveTarget = $(e.target).parent().data('id');\n $(this).removeClass('currentdragtarget');\n\n confirmMove();\n };\n\n /**\n * Deletes a related competency without confirmation.\n *\n * @param {Event} e The event that triggered the action.\n * @method deleteRelatedHandler\n */\n var deleteRelatedHandler = function(e) {\n e.preventDefault();\n\n var relatedid = this.id.substr(11);\n var competency = $('[data-region=\"competencyactions\"]').data('competency');\n var removeRelated = ajax.call([\n {methodname: 'core_competency_remove_related_competency',\n args: {relatedcompetencyid: relatedid, competencyid: competency.id}},\n {methodname: 'tool_lp_data_for_related_competencies_section',\n args: {competencyid: competency.id}}\n ]);\n\n removeRelated[1].done(function(context) {\n templates.render('tool_lp/related_competencies', context).done(function(html) {\n $('[data-region=\"relatedcompetencies\"]').replaceWith(html);\n updatedRelatedCompetencies();\n }).fail(notification.exception);\n }).fail(notification.exception);\n };\n\n /**\n * Updates the competencies list (with relations) and add listeners.\n *\n * @method updatedRelatedCompetencies\n */\n var updatedRelatedCompetencies = function() {\n\n // Listeners to newly loaded related competencies.\n $('[data-action=\"deleterelation\"]').on('click', deleteRelatedHandler);\n\n };\n\n /**\n * Log the competency viewed event.\n *\n * @param {Object} competency The competency.\n * @method triggerCompetencyViewedEvent\n */\n var triggerCompetencyViewedEvent = function(competency) {\n if (competency.id !== selectedCompetencyId) {\n // Set the selected competency id.\n selectedCompetencyId = competency.id;\n ajax.call([{\n methodname: 'core_competency_competency_viewed',\n args: {id: competency.id}\n }]);\n }\n };\n\n /**\n * Return the taxonomy constant for a level.\n *\n * @param {Number} level The level.\n * @return {String}\n * @function getTaxonomyAtLevel\n */\n var getTaxonomyAtLevel = function(level) {\n var constant = taxonomiesConstants[level];\n if (!constant) {\n constant = 'competency';\n }\n return constant;\n };\n\n /**\n * Render the competency summary.\n *\n * @param {Object} competency The competency.\n */\n var renderCompetencySummary = function(competency) {\n var promise = $.Deferred().resolve().promise(),\n context = {};\n\n context.competency = competency;\n context.showdeleterelatedaction = true;\n context.showrelatedcompetencies = true;\n context.showrule = false;\n context.pluginbaseurl = url.relativeUrl('/admin/tool/lp');\n\n if (competency.ruleoutcome != Outcomes.NONE) {\n // Get the outcome and rule name.\n promise = Outcomes.getString(competency.ruleoutcome).then(function(str) {\n var name;\n $.each(rulesModules, function(index, modInfo) {\n if (modInfo.type == competency.ruletype) {\n name = modInfo.name;\n }\n });\n return [str, name];\n });\n }\n\n promise.then(function(strs) {\n if (typeof strs !== 'undefined') {\n context.showrule = true;\n context.rule = {\n outcome: strs[0],\n type: strs[1]\n };\n }\n return context;\n }).then(function(context) {\n return templates.render('tool_lp/competency_summary', context);\n }).then(function(html) {\n $('[data-region=\"competencyinfo\"]').html(html);\n $('[data-action=\"deleterelation\"]').on('click', deleteRelatedHandler);\n return templates.render('tool_lp/loading', {});\n }).then(function(html, js) {\n templates.replaceNodeContents('[data-region=\"relatedcompetencies\"]', html, js);\n return ajax.call([{\n methodname: 'tool_lp_data_for_related_competencies_section',\n args: {competencyid: competency.id}\n }])[0];\n }).then(function(context) {\n return templates.render('tool_lp/related_competencies', context);\n }).then(function(html, js) {\n $('[data-region=\"relatedcompetencies\"]').replaceWith(html);\n templates.runTemplateJS(js);\n updatedRelatedCompetencies();\n return;\n }).catch(notification.exception);\n };\n\n /**\n * Return the string \"Add <taxonomy>\".\n *\n * @param {Number} level The level.\n * @return {String}\n * @function strAddTaxonomy\n */\n var strAddTaxonomy = function(level) {\n return str.get_string('taxonomy_add_' + getTaxonomyAtLevel(level), 'tool_lp');\n };\n\n /**\n * Return the string \"Selected <taxonomy>\".\n *\n * @param {Number} level The level.\n * @return {String}\n * @function strSelectedTaxonomy\n */\n var strSelectedTaxonomy = function(level) {\n return str.get_string('taxonomy_selected_' + getTaxonomyAtLevel(level), 'tool_lp');\n };\n\n /**\n * Handler when a node in the aria tree is selected.\n * @method selectionChanged\n * @param {Event} evt The event that triggered the selection change.\n * @param {Object} params The parameters for the event. Contains a list of selected nodes.\n * @return {Boolean}\n */\n var selectionChanged = function(evt, params) {\n var node = params.selected,\n id = $(node).data('id'),\n btn = $('[data-region=\"competencyactions\"] [data-action=\"add\"]'),\n actionMenu = $('[data-region=\"competencyactionsmenu\"]'),\n selectedTitle = $('[data-region=\"selected-competency\"]'),\n level = 0,\n sublevel = 1;\n\n menubar.closeAll();\n\n if (typeof id === \"undefined\") {\n // Assume this is the root of the tree.\n // Here we are only getting the text from the top of the tree, to do it we clone the tree,\n // remove all children and then call text on the result.\n $('[data-region=\"competencyinfo\"]').html(node.clone().children().remove().end().text());\n $('[data-region=\"competencyactions\"]').data('competency', null);\n actionMenu.hide();\n\n } else {\n var competency = treeModel.getCompetency(id);\n\n level = treeModel.getCompetencyLevel(id);\n sublevel = level + 1;\n\n actionMenu.show();\n $('[data-region=\"competencyactions\"]').data('competency', competency);\n renderCompetencySummary(competency);\n // Log Competency viewed event.\n triggerCompetencyViewedEvent(competency);\n }\n strSelectedTaxonomy(level).then(function(str) {\n selectedTitle.text(str);\n return;\n }).catch(notification.exception);\n\n strAddTaxonomy(sublevel).then(function(str) {\n btn.show()\n .find('[data-region=\"term\"]')\n .text(str);\n return;\n }).catch(notification.exception);\n\n // We handled this event so consume it.\n evt.preventDefault();\n return false;\n };\n\n /**\n * Return the string \"Selected <taxonomy>\".\n *\n * @function parseTaxonomies\n * @param {String} taxonomiesstr Comma separated list of taxonomies.\n * @return {Array} of level => taxonomystr\n */\n var parseTaxonomies = function(taxonomiesstr) {\n var all = taxonomiesstr.split(',');\n all.unshift(\"\");\n delete all[0];\n\n // Note we don't need to fill holes, because other functions check for empty anyway.\n return all;\n };\n\n return {\n /**\n * Initialise this page (attach event handlers etc).\n *\n * @method init\n * @param {Object} model The tree model provides some useful functions for loading and searching competencies.\n * @param {Number} pagectxid The page context ID.\n * @param {Object} taxonomies Constants indexed by level.\n * @param {Object} rulesMods The modules of the rules.\n */\n init: function(model, pagectxid, taxonomies, rulesMods) {\n treeModel = model;\n pageContextId = pagectxid;\n taxonomiesConstants = parseTaxonomies(taxonomies);\n rulesModules = rulesMods;\n\n $('[data-region=\"competencyactions\"] [data-action=\"add\"]').on('click', addHandler);\n\n menubar.enhance('.competencyactionsmenu', {\n '[data-action=\"edit\"]': editHandler,\n '[data-action=\"delete\"]': deleteCompetencyHandler,\n '[data-action=\"move\"]': moveHandler,\n '[data-action=\"moveup\"]': moveUpHandler,\n '[data-action=\"movedown\"]': moveDownHandler,\n '[data-action=\"linkedcourses\"]': seeCoursesHandler,\n '[data-action=\"relatedcompetencies\"]': relateCompetenciesHandler.bind(this),\n '[data-action=\"competencyrules\"]': ruleConfigHandler.bind(this)\n });\n $('[data-region=\"competencyactionsmenu\"]').hide();\n $('[data-region=\"competencyactions\"] [data-action=\"add\"]').hide();\n\n $('[data-region=\"filtercompetencies\"]').on('submit', updateSearchHandler);\n // Simple html5 drag drop because we already added an accessible alternative.\n var top = $('[data-region=\"managecompetencies\"] [data-enhance=\"tree\"]');\n top.on('dragstart', 'li>span', dragStart)\n .on('dragover', 'li>span', allowDrop)\n .on('dragenter', 'li>span', dragEnter)\n .on('dragleave', 'li>span', dragLeave)\n .on('drop', 'li>span', dropOver);\n\n model.on('selectionchanged', selectionChanged);\n\n // Prepare the configuration tool.\n ruleConfigInstance = new RuleConfig(treeModel, rulesModules);\n ruleConfigInstance.on('save', ruleConfigSaveHandler.bind(this));\n }\n };\n});\n"],"file":"competencyactions.min.js"}