[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 // This file is part of Moodle - http://moodle.org/ 2 // 3 // Moodle is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU General Public License as published by 5 // the Free Software Foundation, either version 3 of the License, or 6 // (at your option) any later version. 7 // 8 // Moodle is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU General Public License for more details. 12 // 13 // You should have received a copy of the GNU General Public License 14 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 15 16 /** 17 * Handle selecting parent competency in competency form. 18 * 19 * @module tool_lp/parentcompetency_form 20 * @package tool_lp 21 * @copyright 2015 Issam Taboubi <issam.taboubi@umontreal.ca> 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 define(['jquery', 'core/ajax', 'core/str', 'tool_lp/competencypicker', 'core/templates', 'core/notification'], 25 function($, ajax, Str, Picker, Templates, Notification) { 26 27 /** 28 * Parent Competency Form object. 29 * @param {String} buttonSelector The parent competency button selector. 30 * @param {String} inputHiddenSelector The hidden input field selector. 31 * @param {String} staticElementSelector The static element displaying the parent competency. 32 * @param {Number} frameworkId The competency framework ID. 33 * @param {Number} pageContextId The page context ID. 34 */ 35 var ParentCompetencyForm = function(buttonSelector, 36 inputHiddenSelector, 37 staticElementSelector, 38 frameworkId, 39 pageContextId) { 40 this.buttonSelector = buttonSelector; 41 this.inputHiddenSelector = inputHiddenSelector; 42 this.staticElementSelector = staticElementSelector; 43 this.frameworkId = frameworkId; 44 this.pageContextId = pageContextId; 45 46 // Register the events. 47 this.registerEvents(); 48 }; 49 50 /** @var {String} The parent competency button selector. */ 51 ParentCompetencyForm.prototype.buttonSelector = null; 52 /** @var {String} The hidden input field selector. */ 53 ParentCompetencyForm.prototype.inputHiddenSelector = null; 54 /** @var {String} The static element displaying the parent competency. */ 55 ParentCompetencyForm.prototype.staticElementSelector = null; 56 /** @var {Number} The competency framework ID. */ 57 ParentCompetencyForm.prototype.frameworkId = null; 58 /** @var {Number} The page context ID. */ 59 ParentCompetencyForm.prototype.pageContextId = null; 60 61 /** 62 * Set the parent competency in the competency form. 63 * 64 * @param {Object} data Data containing selected competency. 65 * @method setParent 66 */ 67 ParentCompetencyForm.prototype.setParent = function(data) { 68 var self = this; 69 70 if (data.competencyId !== 0) { 71 ajax.call([ 72 {methodname: 'core_competency_read_competency', args: { 73 id: data.competencyId 74 }} 75 ])[0].done(function(competency) { 76 $(self.staticElementSelector).html(competency.shortname); 77 $(self.inputHiddenSelector).val(competency.id); 78 }).fail(Notification.exception); 79 } else { 80 // Root of competency framework selected. 81 Str.get_string('competencyframeworkroot', 'tool_lp').then(function(rootframework) { 82 $(self.staticElementSelector).html(rootframework); 83 $(self.inputHiddenSelector).val(data.competencyId); 84 }).fail(Notification.exception); 85 } 86 }; 87 88 /** 89 * Register the events of parent competency button click. 90 * 91 * @method registerEvents 92 */ 93 ParentCompetencyForm.prototype.registerEvents = function() { 94 var self = this; 95 96 // Event on edit parent button. 97 $(self.buttonSelector).on('click', function(e) { 98 e.preventDefault(); 99 100 var picker = new Picker(self.pageContextId, self.frameworkId, 'self', false); 101 102 // Override the render method to make framework selectable. 103 picker._render = function() { 104 var self = this; 105 return self._preRender().then(function() { 106 var context = { 107 competencies: self._competencies, 108 framework: self._getFramework(self._frameworkId), 109 frameworks: self._frameworks, 110 search: self._searchText, 111 singleFramework: self._singleFramework, 112 }; 113 114 return Templates.render('tool_lp/competency_picker_competencyform', context); 115 }); 116 }; 117 118 // On selected competency. 119 picker.on('save', function(e, data) { 120 self.setParent(data); 121 }); 122 123 picker.display(); 124 }); 125 }; 126 127 return { 128 129 /** 130 * Main initialisation. 131 * @param {String} buttonSelector The parent competency button selector. 132 * @param {String} inputSelector The hidden input field selector. 133 * @param {String} staticElementSelector The static element displaying the parent competency. 134 * @param {Number} frameworkId The competency framework ID. 135 * @param {Number} pageContextId The page context ID. 136 * @method init 137 */ 138 init: function(buttonSelector, 139 inputSelector, 140 staticElementSelector, 141 frameworkId, 142 pageContextId) { 143 // Create instance. 144 new ParentCompetencyForm(buttonSelector, 145 inputSelector, 146 staticElementSelector, 147 frameworkId, 148 pageContextId); 149 } 150 }; 151 });
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |