Your IP : 216.73.216.95


Current Path : /var/www/ljmtc/cbt/mod/lti/amd/build/
Upload File :
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"}