Sindbad~EG File Manager
{"version":3,"file":"tool_configure_controller.min.js","sources":["../src/tool_configure_controller.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 * 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 * @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', 'core/config'],\n function($, ajax, notification, templates, ltiEvents, KEYS, toolType, toolProxy, str, config) {\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) + \"&sesskey=\" + config.sesskey + \"'></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"],"names":["define","$","ajax","notification","templates","ltiEvents","KEYS","toolType","toolProxy","str","config","SELECTORS","getToolListContainer","getExternalRegistrationContainer","getCartridgeRegistrationContainer","getRegistrationChoiceContainer","closeLTIAdvRegistration","e","data","subject","empty","hideExternalRegistration","showRegistrationChoices","showToolList","reloadToolList","getToolURL","val","addClass","hideCartridgeRegistration","hideRegistrationChoices","showExternalRegistration","removeClass","screenReaderAnnounce","element","children","detach","appendTo","hideToolList","startLoading","stopLoading","promise","Deferred","container","when","query","done","types","proxies","render","tools","html","js","append","runTemplateJS","resolve","fail","reject","exception","always","addLTIAdvTool","url","trim","encodeURIComponent","sesskey","window","addEventListener","initiateRegistration","registerEventListeners","document","on","NEW_TOOL_TYPE","START_EXTERNAL_REGISTRATION","STOP_EXTERNAL_REGISTRATION","START_CARTRIDGE_REGISTRATION","event","find","attr","showCartridgeRegistration","STOP_CARTRIDGE_REGISTRATION","removeAttr","REGISTRATION_FEEDBACK","type","error","addNotification","message","showRegistrationFeedback","click","preventDefault","toolButton","isCartridge","result","iscartridge","trigger","get_string","s","addLTILegacyTool","init"],"mappings":"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"}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists