1 line
29 KiB
Plaintext
1 line
29 KiB
Plaintext
{"version":3,"sources":["../controller/DeliveryServer/index.js","../controller/routes.js","tpl!taoDelivery/tpl/fullscreen-modal-feedback","../controller/runtime/service/fullScreen.js","../controller/runtime/service/deliveryExecution.js","module-create.js"],"names":[],"mappings":"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","sourcesContent":["/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program 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 this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016-2019 (original work) Open Assessment Technologies SA ;\n *\n */\n\n/**\n * The DeliveryServer/index controller.\n *\n * @author Bertrand Chevrier <bertrand@taotesting.com>\n */\ndefine('taoDelivery/controller/DeliveryServer/index',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'module',\n 'core/router',\n 'ui/feedback',\n 'core/logger',\n 'layout/loading-bar',\n 'context',\n 'util/locale',\n 'url-polyfill'\n], function($, _, __, module, router, feedback, loggerFactory, loadingBar, context, locale){\n 'use strict';\n\n const logger = loggerFactory('deliveryServer');\n\n const accessibilityLaunchKeyCodes = [13, 32]; // \"enter\" or \"space\" - list of keys able to run delivery\n\n /**\n * Display a permanent message\n * @param {String} level - in supported feedbacks' levels\n * @param {String} content - the message to display\n */\n const displayPermanentMessage = (level, content) => {\n if(level && content){\n feedback($('.permanent-feedback'))[level](content, {\n timeout : -1,\n popup : false\n });\n }\n };\n\n /**\n * Extract standard LTI error parameters from query string\n * @returns {Object} LTI error parameters\n */\n const getLTIErrorParameters = () => {\n const { searchParams } = new URL(window.location.href);\n\n return ['lti_errormsg', 'lti_errorlog'].reduce((params, paramName) => {\n if (searchParams.has(paramName)) {\n params[paramName] = searchParams.get(paramName);\n }\n return params;\n }, {});\n };\n\n /**\n * The DeliveryServer/index controller\n */\n return {\n\n /**\n * Controller entry point\n * @param {Object} [parameters] - controller's data\n * @param {Object} [parameters.messages] - message data to display\n */\n start(parameters){\n let deliveryStarted = false;\n\n /**\n * Run/open the given delivery\n * @param {String} url - the delivery URL\n */\n const runDelivery = function runDelivery (url) {\n if(_.isString(url) && !_.isEmpty(url)){\n deliveryStarted = true;\n loadingBar.start();\n window.location.href = url;\n }\n };\n\n /**\n * improve UI to support rtl languages\n */\n const supportRTL = function supportRTL () {\n // adding attr for RTL languages\n $('.delivery-scope').attr({dir: locale.getLanguageDirection(context.locale)});\n };\n\n const config = module.config();\n\n // display as feedbacks any messages in parameters\n if (parameters && parameters.messages) {\n _.forEach(parameters.messages, message => {\n displayPermanentMessage(message.level, message.content);\n });\n }\n\n // display as feedbacks any LTI error messages from query string\n const { lti_errormsg: ltiErrorMsg, lti_errorlog: ltiErrorLog } = getLTIErrorParameters();\n\n if (ltiErrorMsg) {\n displayPermanentMessage('error', ltiErrorMsg.length ? ltiErrorMsg : __('An error occurred!'));\n };\n if (ltiErrorLog) {\n logger.error(ltiErrorLog);\n };\n\n const launchDelivery = function (e) {\n const $elt = $(e.currentTarget);\n\n e.preventDefault();\n e.stopPropagation();\n\n if(!deliveryStarted && !$elt.hasClass('disabled')){\n runDelivery($elt.data().launch_url);\n }\n };\n\n supportRTL();\n $('.entry-point').on('click', launchDelivery);\n $('.entry-point').on('keyup', (e) => {\n if(accessibilityLaunchKeyCodes.includes(e.which)) {\n launchDelivery(e);\n }\n });\n\n // dispatch any extra registered routes\n if (config && _.isArray(config.extraRoutes) && config.extraRoutes.length) {\n router.dispatch(config.extraRoutes);\n }\n }\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program 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 this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n * \n * \n */\n\n//@see http://forge.taotesting.com/projects/tao/wiki/Front_js\ndefine('taoDelivery/controller/routes',[],function(){\n 'use strict';\n\n return {\n };\n});\n\n","\ndefine('tpl!taoDelivery/tpl/fullscreen-modal-feedback', ['handlebars'], function(hb){ \nreturn hb.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, options, functionType=\"function\", escapeExpression=this.escapeExpression, helperMissing=helpers.helperMissing, self=this;\n\nfunction program1(depth0,data) {\n \n var buffer = \"\", stack1, helper;\n buffer += \"(\";\n if (helper = helpers.launchButton) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.launchButton); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \")\";\n return buffer;\n }\n\nfunction program3(depth0,data) {\n \n var buffer = \"\", helper, options;\n buffer += \"\\n <button class=\\\"btn-info small enter-full-screen\\\" type=\\\"button\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Enter full screen\", options) : helperMissing.call(depth0, \"__\", \"Enter full screen\", options)))\n + \"</button>\\n \";\n return buffer;\n }\n\nfunction program5(depth0,data) {\n \n var buffer = \"\", helper, options;\n buffer += \"\\n <button class=\\\"btn-info small close-full-screen-prompt\\\" type=\\\"button\\\">\"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"Close this prompt\", options) : helperMissing.call(depth0, \"__\", \"Close this prompt\", options)))\n + \"</button>\\n \";\n return buffer;\n }\n\n buffer += \"<div class=\\\"modal-feedback modal full-screen-modal\\\">\\n <div class=\\\"modal-body clearfix\\\">\\n <p class=\\\"message\\\">\\n \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"This test needs to be taken in full screen mode\", options) : helperMissing.call(depth0, \"__\", \"This test needs to be taken in full screen mode\", options)))\n + \"\\n \";\n stack1 = helpers.unless.call(depth0, (depth0 && depth0.fsSupported), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </p>\\n <div class=\\\"rgt\\\">\\n \";\n stack1 = helpers['if'].call(depth0, (depth0 && depth0.fsSupported), {hash:{},inverse:self.program(5, program5, data),fn:self.program(3, program3, data),data:data});\n if(stack1 || stack1 === 0) { buffer += stack1; }\n buffer += \"\\n </div>\\n </div>\\n</div>\";\n return buffer;\n });\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program 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 this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA;\n *\n */\n\n/**\n *\n * @author dieter <dieter@taotesting.com>\n */\ndefine('taoDelivery/controller/runtime/service/fullScreen',[\n 'jquery',\n 'lodash',\n 'i18n',\n 'ui/feedback',\n 'ui/modal',\n 'tpl!taoDelivery/tpl/fullscreen-modal-feedback'\n], function ($, _, __, feedback, modal, dialogTpl) {\n 'use strict';\n\n var $dialog;\n var $body;\n var d = document;\n var dElem = d.documentElement;\n\n var fs = {\n changeInterval: null,\n\n isSupported: !!(d.exitFullscreen ||\n d.msExitFullscreen ||\n d.mozCancelFullScreen ||\n d.webkitExitFullscreen),\n\n requestFullscreen: dElem.requestFullscreen ||\n dElem.msRequestFullscreen ||\n dElem.mozRequestFullScreen ||\n function() {\n dElem.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);\n },\n\n fullscreenchange: (function() {\n var prefixes = ['', 'ms', 'moz', 'webkit'],\n i = prefixes.length;\n while(i--) {\n if('on' + prefixes[i] + 'fullscreenchange' in dElem) {\n return prefixes[i] + 'fullscreenchange';\n }\n }\n return 'myfullscreenchange';\n }()),\n\n fullScreen: function() {\n return !!(d.fullscreenElement || d.mozFullScreen || d.webkitIsFullScreen ||\n (screen.availHeight || screen.height - 30) <= window.innerHeight);\n },\n\n // on older browsers wait for a full screen change to happen\n // and fire the change event manually\n awaitFsChange : function() {\n var event = d.createEvent('Event');\n event.initEvent(fs.fullscreenchange, true, true);\n clearInterval(fs.changeInterval);\n fs.changeInterval = setInterval(function() {\n if(!fs.fullScreen()) {\n d.dispatchEvent(event);\n }\n }, 2000);\n }\n };\n\n /**\n * React to user input on the prompt which is either\n * key press or click on the button\n *\n * @param evt\n */\n var handleUserInput = function handleUserInput (evt) {\n\n // full screen needs to be initiated by pressing\n // F11 (Windows/Linux) or Ctrl+Cmd+F (Mac)\n if(!fs.isSupported) {\n $dialog.modal('close');\n return;\n }\n\n // accept 'enter' as only valid key stroke\n if(evt.type === 'keydown' && (evt.keyCode || evt.which) !== 13) {\n return;\n }\n\n // in all other cases either 'enter' has been hit or the enter button has been clicked\n fs.requestFullscreen.call(dElem);\n dElem.className += ' fullscreen';\n $dialog.modal('close');\n };\n\n /**\n * Triggers a resize\n */\n var triggerResize = (function() {\n return _.throttle(function() {\n var frame = document.getElementById('iframeDeliveryExec');\n var frameWindow = frame && frame.contentWindow;\n var frame$ = frameWindow && frameWindow.$;\n var $win = frame$ && frame$(frameWindow) || $(window);\n $win.trigger('resize');\n }, 250);\n })();\n\n /**\n * Initialize full screen\n */\n var init = function init() {\n\n $body = $(document.body);\n\n // listen either to the native or the change event created in the observer above\n document.addEventListener(fs.fullscreenchange, function() {\n if(!fs.fullScreen()) {\n dElem.className = dElem.className.replace(/\\bfullscreen\\b/, '');\n $dialog.modal('open');\n } else {\n triggerResize();\n }\n });\n if (!fs.isSupported) {\n fs.awaitFsChange();\n }\n\n modal($body);\n $dialog = $(dialogTpl({\n fsSupported: fs.isSupported,\n // while this is vague chances that any Mac browser gets here are very little\n launchButton: navigator.platform.toLowerCase().indexOf('Mac') === 0 ? 'Ctrl+⌘+F' : 'F11'\n }));\n\n $dialog[0].querySelector('button').addEventListener('click', function(e) {\n handleUserInput(e);\n });\n\n document.addEventListener('keydown', function(e) {\n if(!fs.fullScreen()) {\n handleUserInput(e);\n }\n });\n\n $dialog.on('opened.modal', function() {\n clearInterval(fs.changeInterval);\n });\n\n $dialog.on('closed.modal', function() {\n if (!fs.isSupported) {\n fs.awaitFsChange();\n triggerResize();\n }\n });\n\n $body.append($dialog);\n \n $dialog.modal({\n width: 500,\n animate: false,\n disableClosing: true,\n startClosed: true\n });\n\n // Note that when a page is on full screen already on load (after F5 normally)\n // fullscreenElement and therefor fs.fullScreen() will report the wrong value!\n if(false === ((screen.availHeight || screen.height - 30) <= window.innerHeight)) {\n $dialog.modal('open');\n }\n };\n\n /**\n * @exports\n */\n return {\n init: init\n };\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program 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 this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2013 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n *\n */\ndefine('taoDelivery/controller/runtime/service/deliveryExecution',[\n 'lodash',\n 'jquery',\n 'taoDelivery/controller/runtime/service/fullScreen',\n 'layout/loading-bar',\n 'ui/dialog/alert',\n 'layout/logout-event'\n], function(_, $, fullScreen, loadingBar, dialogAlert, logoutEvent){\n 'use strict';\n\n var $frameContainer,\n $frame,\n $headerHeight,\n $footerHeight;\n\n /**\n * Forces a browser repaint\n * Solution from http://stackoverflow.com/questions/3485365/how-can-i-force-webkit-to-redraw-repaint-to-propagate-style-changes?answertab=votes#tab-top\n * @param {jQuery} $target\n */\n var forceRepaint = function($target) {\n var sel = $target[0];\n if (sel) {\n sel.style.display = 'none';\n sel.offsetHeight; // no need to store this anywhere, the reference is enough\n sel.style.display = '';\n }\n };\n\n function resizeMainFrame() {\n var height = $(window).outerHeight() - $headerHeight - $footerHeight;\n $frameContainer.height(height);\n $frame.height(height);\n forceRepaint($frameContainer);\n }\n\n return {\n start: function(options){\n var serviceApi = options.serviceApi;\n\n if(!!options.deliveryServerConfig.requireFullScreen){\n fullScreen.init();\n }\n\n $frameContainer = $('#outer-delivery-iframe-container');\n $frame = $frameContainer.find('iframe');\n $headerHeight = $('body > .content-wrap > header').outerHeight() || 0;\n $footerHeight = $('body > footer').outerHeight() || 0;\n\n $(document).on('serviceforbidden', function() {\n logoutEvent();\n });\n\n\n serviceApi.onFinish(function() {\n window.location = options.finishDeliveryExecution;\n }).onExit(function() {\n window.location = options.exitDeliveryExecution;\n });\n\n $(document)\n .on('loading', function(e){\n loadingBar.start();\n })\n .on('unloading', function(){\n setTimeout(function(){\n loadingBar.stop();\n }, 300);\n })\n .on('messagealert', function(e, data) {\n if (data) {\n dialogAlert(data.message, data.action);\n }\n })\n .on('shutdown-com', function(){\n //use when we want to stop all exchange between frames\n $(document).off('heightchange');\n $frame.off('load.eventHeight')\n .off('load.cors');\n });\n\n serviceApi.loadInto($frame.get(0));\n\n $(window).on('resize', _.throttle(function() {\n resizeMainFrame();\n }, 250));\n\n resizeMainFrame();\n }\n };\n});\n\n","\ndefine(\"taoDelivery/loader/taoDelivery.bundle\", function(){});\n"]} |