diff -r 38b65761a7d5 -r 43629caa77bc src/js/init.js
--- a/src/js/init.js Fri Apr 20 19:13:11 2012 +0200
+++ b/src/js/init.js Mon Apr 23 19:11:08 2012 +0200
@@ -5,9 +5,13 @@
/* The Metadataplayer Object, single point of entry, replaces IriSP.init_player */
IriSP.Metadataplayer = function(config, video_metadata) {
- IriSP._.defaults(config.gui, IriSP.guiDefaults);
+ for (var key in IriSP.guiDefaults) {
+ if (IriSP.guiDefaults.hasOwnProperty(key) && !config.gui.hasOwnProperty('key')) {
+ config.gui[key] = IriSP.guiDefaults[key]
+ }
+ }
var _container = document.getElementById(config.gui.container);
- _container.innerHTML = IriSP.templToHTML(IriSP.loading_template, config.gui);
+ _container.innerHTML = '
Loading... Chargement...
';
this.video_metadata = video_metadata;
this.sourceManager = new IriSP.Model.Directory();
this.config = config;
@@ -21,7 +25,7 @@
IriSP.Metadataplayer.prototype.loadLibs = function() {
// Localize jQuery variable
IriSP.jQuery = null;
- var $L = $LAB.script(IriSP.getLib("jQuery")).script(IriSP.getLib("swfObject")).wait().script(IriSP.getLib("jQueryUI"));
+ var $L = $LAB.script(IriSP.getLib("underscore")).script(IriSP.getLib("Mustache")).script(IriSP.getLib("jQuery")).script(IriSP.getLib("swfObject")).wait().script(IriSP.getLib("jQueryUI"));
if(this.config.player.type === "jwplayer" || this.config.player.type === "allocine" || this.config.player.type === "dailymotion") {
// load our popcorn.js lookalike
@@ -40,7 +44,7 @@
/* widget specific requirements */
for(var _i = 0; _i < this.config.gui.widgets.length; _i++) {
- if(this.config.gui.widgets[_i].type === "StackGraphWidget" || this.config.gui.widgets[_i].type === "SparklineWidget") {
+ if(this.config.gui.widgets[_i].type === "Sparkline") {
$L.script(IriSP.getLib("raphael"));
}
if(this.config.gui.widgets[_i].type === "TraceWidget") {
@@ -52,26 +56,34 @@
$L.wait(function() {
IriSP.jQuery = window.jQuery.noConflict(true);
-
- var css_link_jquery = IriSP.jQuery("", {
- rel : "stylesheet",
- type : "text/css",
- href : IriSP.getLib("cssjQueryUI")
- });
- var css_link_custom = IriSP.jQuery("", {
- rel : "stylesheet",
- type : "text/css",
- href : _this.config.gui.css
- });
-
- css_link_jquery.appendTo('head');
- css_link_custom.appendTo('head');
+ IriSP._ = window._.noConflict();
+
+ IriSP.loadCss(IriSP.getLib("cssjQueryUI"))
+ IriSP.loadCss(_this.config.gui.css);
_this.onLibsLoaded();
});
}
+IriSP.Metadataplayer.prototype.onLibsLoaded = function() {
+ console.log('OnLibsLoaded');
+ this.videoData = this.loadMetadata(this.video_metadata);
+ this.$ = IriSP.jQuery('#' + this.config.gui.container);
+ this.$.css({
+ "width": this.config.gui.width,
+ "clear": "both"
+ });
+ if (typeof this.config.gui.height !== "undefined") {
+ this.$.css("height", this.config.gui.height);
+ }
+
+ var _this = this;
+ this.videoData.onLoad(function() {
+ _this.onVideoDataLoaded();
+ });
+}
+
IriSP.Metadataplayer.prototype.loadMetadata = function(_metadataInfo) {
if (typeof _metadataInfo.serializer === "undefined" && typeof _metadataInfo.format !== "undefined") {
_metadataInfo.serializer = IriSP.serializers[_metadataInfo.format];
@@ -86,23 +98,6 @@
}
}
-IriSP.Metadataplayer.prototype.onLibsLoaded = function() {
- this.videoData = this.loadMetadata(this.video_metadata);
- this.$ = IriSP.jQuery('#' + this.config.gui.container);
- this.$.css({
- "width": this.config.gui.width,
- "clear": "both"
- });
- if (typeof this.config.gui.height !== "undefined") {
- this.$.css("height", this.config.gui.height);
- }
-
- var _this = this;
- this.videoData.onLoad(function() {
- _this.onVideoDataLoaded();
- });
-}
-
IriSP.Metadataplayer.prototype.onVideoDataLoaded = function() {
if (typeof this.videoData !== "undefined" && typeof this.config.player.video === "undefined") {
var _media = this.videoData.currentMedia;
@@ -117,15 +112,36 @@
}
this.configurePopcorn();
this.widgets = [];
+ var _this = this;
for(var i = 0; i < this.config.gui.widgets.length; i++) {
- var _widget = this.config.gui.widgets[i];
- if (typeof IriSP[_widget.type] !== "undefined") {
- this.widgets.push(new IriSP[_widget.type](this, _widget));
- } else {
- console.log("Error, Call to Undefined Widget Type : "+_widget.type);
- }
+ this.loadWidget(this.config.gui.widgets[i], function(_widget) {
+ _this.widgets.push(_widget)
+ });
};
- this.$.find('.Ldt-loader').detach();
+ this.$.find('.Ldt-Loader').detach();
+}
+
+IriSP.Metadataplayer.prototype.loadWidget = function(_widgetConfig, _callback) {
+ /* Creating containers if needed */
+ if (typeof _widgetConfig.container === "undefined") {
+ var _divs = this.layoutDivs(_widgetConfig.type);
+ _widgetConfig.container = _divs[0];
+ }
+
+ var _this = this;
+
+ if (typeof IriSP.Widgets[_widgetConfig.type] !== "undefined") {
+ IriSP._.defer(function() {
+ _callback(new IriSP.Widgets[_widgetConfig.type](_this, _widgetConfig));
+ });
+ } else {
+ /* Loading Widget CSS */
+ IriSP.loadCss(IriSP.widgetsDir + '/' + _widgetConfig.type + '.css');
+ /* Loading Widget JS */
+ $LAB.script(IriSP.widgetsDir + '/' + _widgetConfig.type + '.js').wait(function() {
+ _callback(new IriSP.Widgets[_widgetConfig.type](_this, _widgetConfig));
+ });
+ }
}
IriSP.Metadataplayer.prototype.configurePopcorn = function() {