| Server IP : 172.67.187.206 / Your IP : 172.71.28.156 Web Server : Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30 System : Windows NT WIN-ECQAAA40806 6.2 build 9200 (Windows Server 2012 Standard Edition) i586 User : SYSTEM ( 0) PHP Version : 5.6.30 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Inetpub/www/myschool/triamudom/tuprblearn/media/player/videojs/amd/src/ |
Upload File : |
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Video JS loader.
*
* This takes care of applying the filter on content which was dynamically loaded.
*
* @package media_videojs
* @copyright 2016 Frédéric Massart - FMCorz.net
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
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(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);
});
};
/**
* Notify video.js of new nodes.
*
* @param {Event} e The event.
* @param {NodeList} nodes List of new nodes.
*/
var notifyVideoJS = function(e, nodes) {
var selector = '.mediaplugin_videojs';
// Find the descendants matching the expected parent of the audio and video
// tags. Then also addBack the nodes matching the same selector. Finally,
// we find the audio and video tags contained in those parents. Kind thanks
// to jQuery for the simplicity.
nodes.find(selector)
.addBack(selector)
.find('audio, video').each(function() {
var id = $(this).attr('id'),
config = $(this).data('setup-lazy'),
modules = ['media_videojs/video-lazy'];
if (config.techOrder && config.techOrder.indexOf('youtube') !== -1) {
// Add YouTube to the list of modules we require.
modules.push('media_videojs/Youtube-lazy');
}
if (config.techOrder && config.techOrder.indexOf('flash') !== -1) {
// Add Flash to the list of modules we require.
modules.push('media_videojs/videojs-flash-lazy');
}
require(modules, function(videojs) {
if (onload) {
onload(videojs);
onload = null;
}
videojs(id, config);
});
});
};
return {
setUp: setUp
};
});