Current Path : /var/www/ljmtc/cbt/mod/lti/amd/build/ |
Current File : /var/www/ljmtc/cbt/mod/lti/amd/build/tool_configure_controller.min.js.map |
{"version":3,"sources":["../src/tool_configure_controller.js"],"names":["define","$","ajax","notification","templates","ltiEvents","KEYS","toolType","toolProxy","str","SELECTORS","EXTERNAL_REGISTRATION_CONTAINER","EXTERNAL_REGISTRATION_PAGE_CONTAINER","EXTERNAL_REGISTRATION_TEMPLATE_CONTAINER","CARTRIDGE_REGISTRATION_CONTAINER","CARTRIDGE_REGISTRATION_FORM","ADD_TOOL_FORM","TOOL_LIST_CONTAINER","TOOL_CREATE_BUTTON","TOOL_CREATE_LTILEGACY_BUTTON","REGISTRATION_CHOICE_CONTAINER","TOOL_URL","getToolListContainer","getExternalRegistrationContainer","getCartridgeRegistrationContainer","getRegistrationChoiceContainer","closeLTIAdvRegistration","e","data","subject","empty","hideExternalRegistration","showRegistrationChoices","showToolList","reloadToolList","initiateRegistration","url","removeClass","container","append","encodeURIComponent","showExternalRegistration","window","addEventListener","getToolURL","val","addClass","hideCartridgeRegistration","hideRegistrationChoices","screenReaderAnnounce","showCartridgeRegistration","find","attr","element","children","detach","appendTo","hideToolList","showRegistrationFeedback","type","error","addNotification","message","startLoading","stopLoading","promise","Deferred","when","query","done","types","proxies","render","tools","html","js","runTemplateJS","resolve","fail","reject","exception","always","addLTIAdvTool","trim","addLTILegacyTool","toolButton","isCartridge","result","iscartridge","document","trigger","START_CARTRIDGE_REGISTRATION","START_EXTERNAL_REGISTRATION","get_string","s","REGISTRATION_FEEDBACK","registerEventListeners","on","NEW_TOOL_TYPE","STOP_EXTERNAL_REGISTRATION","event","STOP_CARTRIDGE_REGISTRATION","removeAttr","addLegacyButton","click","preventDefault","addLTIButton","init"],"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 * Standard Ajax wrapper for Moodle. It calls the central Ajax script,\n * which can call any existing webservice using the current session.\n * In addition, it can batch multiple requests and return multiple responses.\n *\n * @module mod_lti/tool_configure_controller\n * @class tool_configure_controller\n * @package mod_lti\n * @copyright 2015 Ryan Wyllie <ryan@moodle.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since 3.1\n */\ndefine(['jquery', 'core/ajax', 'core/notification', 'core/templates', 'mod_lti/events', 'mod_lti/keys', 'mod_lti/tool_type',\n 'mod_lti/tool_proxy', 'core/str'],\n function($, ajax, notification, templates, ltiEvents, KEYS, toolType, toolProxy, str) {\n\n var SELECTORS = {\n EXTERNAL_REGISTRATION_CONTAINER: '#external-registration-container',\n EXTERNAL_REGISTRATION_PAGE_CONTAINER: '#external-registration-page-container',\n EXTERNAL_REGISTRATION_TEMPLATE_CONTAINER: '#external-registration-template-container',\n CARTRIDGE_REGISTRATION_CONTAINER: '#cartridge-registration-container',\n CARTRIDGE_REGISTRATION_FORM: '#cartridge-registration-form',\n ADD_TOOL_FORM: '#add-tool-form',\n TOOL_LIST_CONTAINER: '#tool-list-container',\n TOOL_CREATE_BUTTON: '#tool-create-button',\n TOOL_CREATE_LTILEGACY_BUTTON: '#tool-createltilegacy-button',\n REGISTRATION_CHOICE_CONTAINER: '#registration-choice-container',\n TOOL_URL: '#tool-url'\n };\n\n /**\n * Get the tool list container element.\n *\n * @method getToolListContainer\n * @private\n * @return {Object} jQuery object\n */\n var getToolListContainer = function() {\n return $(SELECTORS.TOOL_LIST_CONTAINER);\n };\n\n /**\n * Get the external registration container element.\n *\n * @method getExternalRegistrationContainer\n * @private\n * @return {Object} jQuery object\n */\n var getExternalRegistrationContainer = function() {\n return $(SELECTORS.EXTERNAL_REGISTRATION_CONTAINER);\n };\n\n /**\n * Get the cartridge registration container element.\n *\n * @method getCartridgeRegistrationContainer\n * @private\n * @return {Object} jQuery object\n */\n var getCartridgeRegistrationContainer = function() {\n return $(SELECTORS.CARTRIDGE_REGISTRATION_CONTAINER);\n };\n\n /**\n * Get the registration choice container element.\n *\n * @method getRegistrationChoiceContainer\n * @private\n * @return {Object} jQuery object\n */\n var getRegistrationChoiceContainer = function() {\n return $(SELECTORS.REGISTRATION_CHOICE_CONTAINER);\n };\n\n /**\n * Close the LTI Advantage Registration IFrame.\n *\n * @private\n * @param {Object} e post message event sent from the registration frame.\n */\n var closeLTIAdvRegistration = function(e) {\n if (e.data && 'org.imsglobal.lti.close' === e.data.subject) {\n $(SELECTORS.EXTERNAL_REGISTRATION_TEMPLATE_CONTAINER).empty();\n hideExternalRegistration();\n showRegistrationChoices();\n showToolList();\n showRegistrationChoices();\n reloadToolList();\n }\n };\n\n /**\n * Load the external registration template and render it in the DOM and display it.\n *\n * @method initiateRegistration\n * @private\n * @param {String} url where to send the registration request\n */\n var initiateRegistration = function(url) {\n // Show the external registration page in an iframe.\n $(SELECTORS.EXTERNAL_REGISTRATION_PAGE_CONTAINER).removeClass('hidden');\n var container = $(SELECTORS.EXTERNAL_REGISTRATION_TEMPLATE_CONTAINER);\n container.append($(\"<iframe src='startltiadvregistration.php?url=\"\n + encodeURIComponent(url) + \"'></iframe>\"));\n showExternalRegistration();\n window.addEventListener(\"message\", closeLTIAdvRegistration, false);\n };\n\n /**\n * Get the tool type URL.\n *\n * @method getToolURL\n * @private\n * @return {String} the tool type url\n */\n var getToolURL = function() {\n return $(SELECTORS.TOOL_URL).val();\n };\n\n /**\n * Hide the external registration container.\n *\n * @method hideExternalRegistration\n * @private\n */\n var hideExternalRegistration = function() {\n getExternalRegistrationContainer().addClass('hidden');\n };\n\n /**\n * Hide the cartridge registration container.\n *\n * @method hideCartridgeRegistration\n * @private\n */\n var hideCartridgeRegistration = function() {\n getCartridgeRegistrationContainer().addClass('hidden');\n };\n\n /**\n * Hide the registration choice container.\n *\n * @method hideRegistrationChoices\n * @private\n */\n var hideRegistrationChoices = function() {\n getRegistrationChoiceContainer().addClass('hidden');\n };\n\n /**\n * Display the external registration panel and hides the other\n * panels.\n *\n * @method showExternalRegistration\n * @private\n */\n var showExternalRegistration = function() {\n hideCartridgeRegistration();\n hideRegistrationChoices();\n getExternalRegistrationContainer().removeClass('hidden');\n screenReaderAnnounce(getExternalRegistrationContainer());\n };\n\n /**\n * Display the cartridge registration panel and hides the other\n * panels.\n *\n * @method showCartridgeRegistration\n * @param {String} url\n * @private\n */\n var showCartridgeRegistration = function(url) {\n hideExternalRegistration();\n hideRegistrationChoices();\n // Don't save the key and secret from the last tool.\n var container = getCartridgeRegistrationContainer();\n container.find('input').val('');\n container.removeClass('hidden');\n container.find(SELECTORS.CARTRIDGE_REGISTRATION_FORM).attr('data-cartridge-url', url);\n screenReaderAnnounce(container);\n };\n\n /**\n * Display the registration choices panel and hides the other\n * panels.\n *\n * @method showRegistrationChoices\n * @private\n */\n var showRegistrationChoices = function() {\n hideExternalRegistration();\n hideCartridgeRegistration();\n getRegistrationChoiceContainer().removeClass('hidden');\n screenReaderAnnounce(getRegistrationChoiceContainer());\n };\n\n /**\n * JAWS does not notice visibility changes with aria-live.\n * Remove and add the content back to force it to read it out.\n * This function can be removed once JAWS supports visibility.\n *\n * @method screenReaderAnnounce\n * @param {Object} element\n * @private\n */\n var screenReaderAnnounce = function(element) {\n var children = element.children().detach();\n children.appendTo(element);\n };\n\n /**\n * Hides the list of tool types.\n *\n * @method hideToolList\n * @private\n */\n var hideToolList = function() {\n getToolListContainer().addClass('hidden');\n };\n\n /**\n * Display the list of tool types.\n *\n * @method hideToolList\n * @private\n */\n var showToolList = function() {\n getToolListContainer().removeClass('hidden');\n };\n\n /**\n * Display the registration feedback alert and hide the other panels.\n *\n * @method showRegistrationFeedback\n * @param {Object} data\n * @private\n */\n var showRegistrationFeedback = function(data) {\n var type = data.error ? 'error' : 'success';\n notification.addNotification({\n message: data.message,\n type: type\n });\n };\n\n /**\n * Show the loading animation\n *\n * @method startLoading\n * @private\n * @param {Object} element jQuery object\n */\n var startLoading = function(element) {\n element.addClass(\"loading\");\n };\n\n /**\n * Hide the loading animation\n *\n * @method stopLoading\n * @private\n * @param {Object} element jQuery object\n */\n var stopLoading = function(element) {\n element.removeClass(\"loading\");\n };\n\n /**\n * Refresh the list of tool types and render the new ones.\n *\n * @method reloadToolList\n * @private\n */\n var reloadToolList = function() {\n var promise = $.Deferred();\n var container = getToolListContainer();\n startLoading(container);\n\n $.when(\n toolType.query(),\n toolProxy.query({'orphanedonly': true})\n )\n .done(function(types, proxies) {\n templates.render('mod_lti/tool_list', {tools: types, proxies: proxies})\n .done(function(html, js) {\n container.empty();\n container.append(html);\n templates.runTemplateJS(js);\n promise.resolve();\n }).fail(promise.reject);\n })\n .fail(promise.reject);\n\n promise.fail(notification.exception)\n .always(function() {\n stopLoading(container);\n });\n };\n\n /**\n * Start the LTI Advantage registration.\n *\n * @method addLTIAdvTool\n * @private\n */\n var addLTIAdvTool = function() {\n var url = getToolURL().trim();\n\n if (url) {\n $(SELECTORS.TOOL_URL).val('');\n hideToolList();\n initiateRegistration(url);\n }\n\n };\n\n /**\n * Trigger appropriate registration process process for the user input\n * URL. It can either be a cartridge or a registration url.\n *\n * @method addLTILegacyTool\n * @private\n * @return {Promise} jQuery Deferred object\n */\n var addLTILegacyTool = function() {\n var url = getToolURL().trim();\n\n if (url === \"\") {\n return $.Deferred().resolve();\n }\n var toolButton = $(SELECTORS.TOOL_CREATE_LTILEGACY_BUTTON);\n startLoading(toolButton);\n\n var promise = toolType.isCartridge(url);\n\n promise.always(function() {\n stopLoading(toolButton);\n });\n\n promise.done(function(result) {\n if (result.iscartridge) {\n $(SELECTORS.TOOL_URL).val('');\n $(document).trigger(ltiEvents.START_CARTRIDGE_REGISTRATION, url);\n } else {\n $(document).trigger(ltiEvents.START_EXTERNAL_REGISTRATION, {url: url});\n }\n });\n\n promise.fail(function() {\n str.get_string('errorbadurl', 'mod_lti')\n .done(function(s) {\n $(document).trigger(ltiEvents.REGISTRATION_FEEDBACK, {\n message: s,\n error: true\n });\n })\n .fail(notification.exception);\n });\n\n return promise;\n };\n\n /**\n * Sets up the listeners for user interaction on the page.\n *\n * @method registerEventListeners\n * @private\n */\n var registerEventListeners = function() {\n\n // These are events fired by the registration processes. Either\n // the cartridge registration or the external registration url.\n $(document).on(ltiEvents.NEW_TOOL_TYPE, function() {\n reloadToolList();\n });\n\n $(document).on(ltiEvents.START_EXTERNAL_REGISTRATION, function() {\n showExternalRegistration();\n $(SELECTORS.TOOL_URL).val('');\n hideToolList();\n });\n\n $(document).on(ltiEvents.STOP_EXTERNAL_REGISTRATION, function() {\n showToolList();\n showRegistrationChoices();\n });\n\n $(document).on(ltiEvents.START_CARTRIDGE_REGISTRATION, function(event, url) {\n showCartridgeRegistration(url);\n });\n\n $(document).on(ltiEvents.STOP_CARTRIDGE_REGISTRATION, function() {\n getCartridgeRegistrationContainer().find(SELECTORS.CARTRIDGE_REGISTRATION_FORM).removeAttr('data-cartridge-url');\n showRegistrationChoices();\n });\n\n $(document).on(ltiEvents.REGISTRATION_FEEDBACK, function(event, data) {\n showRegistrationFeedback(data);\n });\n\n var addLegacyButton = $(SELECTORS.TOOL_CREATE_LTILEGACY_BUTTON);\n addLegacyButton.click(function(e) {\n e.preventDefault();\n addLTILegacyTool();\n });\n\n var addLTIButton = $(SELECTORS.TOOL_CREATE_BUTTON);\n addLTIButton.click(function(e) {\n e.preventDefault();\n addLTIAdvTool();\n });\n\n };\n\n return /** @alias module:mod_lti/cartridge_registration_form */ {\n\n /**\n * Initialise this module.\n */\n init: function() {\n registerEventListeners();\n reloadToolList();\n }\n };\n});\n"],"file":"tool_configure_controller.min.js"}