mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
MDL-57608 media_videojs: load youtube module only when requested
This commit is contained in:
parent
8ed0851a5e
commit
357e9654ba
2
media/player/videojs/amd/build/loader.min.js
vendored
2
media/player/videojs/amd/build/loader.min.js
vendored
@ -1 +1 @@
|
||||
define(["jquery","media_videojs/video","core/event"],function(a,b,c){var d=function(){c.getLegacyEvents().done(function(b){a(document).on(b.FILTER_CONTENT_UPDATED,e)})},e=function(c,d){var e=".mediaplugin_videojs";d.find(e).addBack(e).find("audio, video").each(function(){var c=a(this).attr("id"),d=a(this).data("setup");b(c,d)})};return{setUp:d}});
|
||||
define(["jquery","core/event"],function(a,b){var c,d=function(d){c=d,e(null,a("body")),b.getLegacyEvents().done(function(b){a(document).on(b.FILTER_CONTENT_UPDATED,e)})},e=function(b,d){var e=".mediaplugin_videojs";d.find(e).addBack(e).find("audio, video").each(function(){var b=a(this).attr("id"),d=a(this).data("setup"),e=["media_videojs/video"];d.techOrder&&d.techOrder.indexOf("youtube")!==-1&&e.push("media_videojs/Youtube"),require(e,function(a){c&&(c(a),c=null),a(b,d)})})};return{setUp:d}});
|
@ -22,14 +22,23 @@
|
||||
* @copyright 2016 Frédéric Massart - FMCorz.net
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
define(['jquery', 'media_videojs/video', 'core/event'], function($, videojs, Event) {
|
||||
define(['jquery', 'core/event'], function($, Event) {
|
||||
|
||||
/**
|
||||
* Stores the method we need to execute on the first load of videojs module.
|
||||
*/
|
||||
var onload;
|
||||
|
||||
/**
|
||||
* Set-up.
|
||||
*
|
||||
* Adds the listener for the event to then notify video.js.
|
||||
* @param {Function} executeonload function to execute when media_videojs/video is loaded
|
||||
*/
|
||||
var setUp = function() {
|
||||
var setUp = function(executeonload) {
|
||||
onload = executeonload;
|
||||
// Notify Video.js about the nodes already present on the page.
|
||||
notifyVideoJS(null, $('body'));
|
||||
// We need to call popover automatically if nodes are added to the page later.
|
||||
Event.getLegacyEvents().done(function(events) {
|
||||
$(document).on(events.FILTER_CONTENT_UPDATED, notifyVideoJS);
|
||||
@ -53,9 +62,20 @@ define(['jquery', 'media_videojs/video', 'core/event'], function($, videojs, Eve
|
||||
.addBack(selector)
|
||||
.find('audio, video').each(function() {
|
||||
var id = $(this).attr('id'),
|
||||
config = $(this).data('setup');
|
||||
config = $(this).data('setup'),
|
||||
modules = ['media_videojs/video'];
|
||||
|
||||
videojs(id, config);
|
||||
if (config.techOrder && config.techOrder.indexOf('youtube') !== -1) {
|
||||
// Add YouTube to the list of modules we require.
|
||||
modules.push('media_videojs/Youtube');
|
||||
}
|
||||
require(modules, function(videojs) {
|
||||
if (onload) {
|
||||
onload(videojs);
|
||||
onload = null;
|
||||
}
|
||||
videojs(id, config);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -334,21 +334,19 @@ class media_videojs_plugin extends core_media_player_native {
|
||||
*/
|
||||
public function setup($page) {
|
||||
|
||||
// Load core video JS.
|
||||
// Load dynamic loader. It will scan page for videojs media and load necessary modules.
|
||||
// Loader will be loaded on absolutely every page, however the videojs will only be loaded
|
||||
// when video is present on the page or added later to it in AJAX.
|
||||
$path = new moodle_url('/media/player/videojs/videojs/video-js.swf');
|
||||
$contents = 'videojs.options.flash.swf = "' . $path . '";' . "\n";
|
||||
$contents .= $this->find_language(current_language());
|
||||
$page->requires->js_amd_inline(<<<EOT
|
||||
require(["media_videojs/video"], function(videojs) {
|
||||
$contents
|
||||
require(["media_videojs/loader"], function(loader) {
|
||||
loader.setUp(function(videojs) {
|
||||
$contents
|
||||
});
|
||||
});
|
||||
EOT
|
||||
);
|
||||
|
||||
// Load Youtube JS.
|
||||
$page->requires->js_amd_inline('require(["media_videojs/Youtube"])');
|
||||
|
||||
// Load dynamic loader.
|
||||
$page->requires->js_call_amd('media_videojs/loader', 'setUp');
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user