diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-07-15 15:33:36 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-07-15 15:33:36 -0300 |
commit | a5f917bbc55e295896b8084f6657eb8b6abaf8a8 (patch) | |
tree | 83dca14378e45b11fe6bbf1d17e64505dff43cbd /extensions/TimedMediaHandler/MwEmbedModules/TimedText/TimedText.loader.js | |
parent | a1d705e541e0d10baa6bb03935ffd38d9478d0e6 (diff) |
Add TimedMediaHandler extension that allows display audio and video files in wiki pages, using the same syntax as for image files
Diffstat (limited to 'extensions/TimedMediaHandler/MwEmbedModules/TimedText/TimedText.loader.js')
-rw-r--r-- | extensions/TimedMediaHandler/MwEmbedModules/TimedText/TimedText.loader.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/extensions/TimedMediaHandler/MwEmbedModules/TimedText/TimedText.loader.js b/extensions/TimedMediaHandler/MwEmbedModules/TimedText/TimedText.loader.js new file mode 100644 index 00000000..bbd62d0e --- /dev/null +++ b/extensions/TimedMediaHandler/MwEmbedModules/TimedText/TimedText.loader.js @@ -0,0 +1,52 @@ +/** +* TimedText loader. +*/ +// Scope everything in "mw" ( keeps the global namespace clean ) +( function( mw, $ ) { + + /** + * Check if the video tags in the page support timed text + * this way we can add our timed text libraries to the player + * library request. + */ + // Update the player loader request with timedText library if the embedPlayer + // includes timedText tracks. + $( mw ).bind( 'EmbedPlayerUpdateDependencies', function( event, playerElement, classRequest ) { + if( mw.isTimedTextSupported( playerElement ) ) { + classRequest = $.merge( classRequest, ['mw.TimedText'] ); + } + } ); + // On new embed player check if we need to add timedText + $( mw ).bind( 'EmbedPlayerNewPlayer', function( event, embedPlayer ){ + if( mw.isTimedTextSupported( embedPlayer ) ){ + embedPlayer.timedText = new mw.TimedText( embedPlayer ); + } + }); + + /** + * Check timedText is active for a given embedPlayer + * @param {object} embedPlayer The player to be checked for timedText properties + */ + mw.isTimedTextSupported = function( embedPlayer ) { + //EmbedPlayerNewPlayer passes a div with data-mwprovider set, + //EmbedPlayerUpdateDependencies passes video element with data attribute + //catch both + var mwprovider = embedPlayer['data-mwprovider'] || $( embedPlayer ).data('mwprovider'); + var showInterface = mw.config.get( 'TimedText.ShowInterface.' + mwprovider ) || + mw.config.get( 'TimedText.ShowInterface' ); + + if ( showInterface == 'always' ) { + return true; + } else if ( showInterface == 'off' ) { + return false; + } + + // Check for standard 'track' attribute: + if ( $( embedPlayer ).find( 'track' ).length != 0 ) { + return true; + } else { + return false; + } + }; + +} )( mediaWiki, jQuery ); |