--- a/web/res/metadataplayer/LdtPlayer-core.js Tue Jul 03 18:19:39 2012 +0200
+++ b/web/res/metadataplayer/LdtPlayer-core.js Fri Jul 06 18:22:13 2012 +0200
@@ -152,9 +152,9 @@
IriSP.Metadataplayer.prototype.onVideoDataLoaded = function() {
- /* Getting video URL from metadata if it's not in the player config options */
+ /* Setting default media from metadata */
- if (typeof this.videoData !== "undefined" && typeof this.config.player.video === "undefined") {
+ if (typeof this.videoData !== "undefined") {
var _media;
@@ -180,11 +180,12 @@
this.videoData.currentMedia = _media;
- if (typeof _media !== "undefined" && typeof _media.video !== "undefined") {
+ /* Getting video URL from metadata if it's not in the player config options */
+
+ if (typeof _media !== "undefined" && typeof _media.video !== "undefined" && typeof this.config.player.video === "undefined") {
this.config.player.video = _media.video;
- if (typeof _media.streamer !== "undefined") {
+ if (typeof this.config.player.streamer == "undefined" && typeof _media.streamer !== "undefined") {
this.config.player.streamer = _media.streamer;
- this.config.player.video = _media.video.replace(_media.streamer,'');
}
}
@@ -257,8 +258,12 @@
var opts = IriSP.jQuery.extend({}, this.config.player);
delete opts.container;
delete opts.type;
+ if (typeof opts.streamer !== "undefined") {
+ opts.video = opts.video.replace(opts.streamer,"");
+ }
opts.file = opts.video;
delete opts.video;
+ delete opts.metadata;
if(!opts.hasOwnProperty("flashplayer")) {
opts.flashplayer = IriSP.getLib("jwPlayerSWF");
@@ -595,19 +600,20 @@
}
return "autoid-" + this._ID_BASE + '-' + _n;
},
- regexpFromTextOrArray : function(_textOrArray) {
+ regexpFromTextOrArray : function(_textOrArray, _testOnly) {
+ var _testOnly = _testOnly || false;
function escapeText(_text) {
return _text.replace(/([\\\*\+\?\|\{\[\}\]\(\)\^\$\.\#\/])/gm, '\\$1');
}
- return new RegExp( '('
- + (
- typeof _textOrArray === "string"
- ? escapeText(_textOrArray)
- : IriSP._(_textOrArray).map(escapeText).join("|")
- )
- + ')',
- 'gim'
- );
+ var _source =
+ typeof _textOrArray === "string"
+ ? escapeText(_textOrArray)
+ : IriSP._(_textOrArray).map(escapeText).join("|");
+ if (_testOnly) {
+ return new RegExp( _source, 'im');
+ } else {
+ return new RegExp( '(' + _source + ')', 'gim');
+ }
},
isoToDate : function(_str) {
// http://delete.me.uk/2005/03/iso8601.html
@@ -735,21 +741,21 @@
* here we can search by these criteria
*/
IriSP.Model.List.prototype.searchByTitle = function(_text) {
- var _rgxp = IriSP.Model.regexpFromTextOrArray(_text);
+ var _rgxp = IriSP.Model.regexpFromTextOrArray(_text, true);
return this.filter(function(_element) {
return _rgxp.test(_element.title);
});
}
IriSP.Model.List.prototype.searchByDescription = function(_text) {
- var _rgxp = IriSP.Model.regexpFromTextOrArray(_text);
+ var _rgxp = IriSP.Model.regexpFromTextOrArray(_text, true);
return this.filter(function(_element) {
return _rgxp.test(_element.description);
});
}
IriSP.Model.List.prototype.searchByTextFields = function(_text) {
- var _rgxp = IriSP.Model.regexpFromTextOrArray(_text);
+ var _rgxp = IriSP.Model.regexpFromTextOrArray(_text, true);
return this.filter(function(_element) {
return _rgxp.test(_element.description) || _rgxp.test(_element.title);
});
@@ -1477,18 +1483,6 @@
this.$ = IriSP.jQuery('#' + this.container);
this.$.addClass("Ldt-TraceMe Ldt-Widget").attr("widget-type", _type);
- /* Does the widget require other widgets ? */
- if (typeof this.requires !== "undefined") {
- for (var _i = 0; _i < this.requires.length; _i++) {
- var _subconfig = this.requires[_i];
- _subconfig.container = IriSP._.uniqueId(this.container + '_' + _subconfig.type + '_');
- this.$.append(IriSP.jQuery('<div>').attr("id",_subconfig.container));
- this.player.loadWidget(_subconfig, function(_widget) {
- _this[_subconfig.type.replace(/^./,function(_s){return _s.toLowerCase();})] = _widget
- });
- }
- }
-
this.l10n = (
typeof this.messages[IriSP.language] !== "undefined"
? this.messages[IriSP.language]
@@ -1543,6 +1537,19 @@
});
}
+IriSP.Widgets.Widget.prototype.insertSubwidget = function(_selector, _propname, _widgetoptions) {
+ var _id = _selector.attr("id"),
+ _this = this;
+ if (typeof _id == "undefined") {
+ _id = IriSP._.uniqueId(this.container + '_sub_widget_' + _widgetoptions.type);
+ _selector.attr("id", _id);
+ }
+ _widgetoptions.container = _id;
+ _this.player.loadWidget(_widgetoptions, function(_widget) {
+ _this[_propname] = _widget;
+ });
+}
+
/**
* This method responsible of drawing a widget on screen.
*/
@@ -1808,18 +1815,25 @@
IriSP.PopcornReplacement.jwplayer = function(container, options) {
/* appel du parent pour initialiser les structures communes à tous les players */
IriSP.PopcornReplacement.player.call(this, container, options);
-
- this.media.duration = options.duration; /* optional */
+
+ if (options.autostart) {
+ this.media.paused = false;
+ this.trigger("play");
+ }
var _player = jwplayer(this.container),
- _this = this;
+ _this = this,
+ _seekPause = false;
/* Définition des fonctions de l'API - */
this.playerFns = {
play: function() { return _player.play(true); },
pause: function() { return _player.pause(true); },
getPosition: function() { return _player.getPosition(); },
- seek: function(pos) { return _player.seek(pos); },
+ seek: function(pos) {
+ _seekPause = _this.media.paused;
+ return _player.seek(pos);
+ },
getMute: function() { return _player.getMute() },
setMute: function(p) { return _player.setMute(p); },
getVolume: function() { return _player.getVolume() / 100; },
@@ -1831,15 +1845,22 @@
_this.trigger("loadedmetadata");
},
onTime: function() {
- if (_this.media.paused && _player.getState() === "PLAYING") {
- _this.media.paused = false;
- _this.trigger("play");
+ if (_seekPause) {
+ _player.pause(true);
+ _seekPause = false;
+ } else {
+ if (_this.media.paused && _player.getState() === "PLAYING") {
+ _this.media.paused = false;
+ _this.trigger("play");
+ }
}
_this.trigger("timeupdate");
},
onPlay: function() {
- _this.media.paused = false;
- _this.trigger("play");
+ if (!_seekPause) {
+ _this.media.paused = false;
+ _this.trigger("play");
+ }
},
onPause: function() {
_this.media.paused = true;
@@ -2438,7 +2459,7 @@
var _anndata = _data.annotations[0],
_ann = new IriSP.Model.Annotation(_anndata.id, _source);
_ann.description = _anndata.content.data || "";
- _ann.title = _data.creator;
+ _ann.title = _data.creator || "";
_ann.created = new Date(_data.meta.created);
_ann.setMedia(_anndata.media, _source);
var _anntypes = _source.getAnnotationTypes(true).searchByTitle(_anndata.type_title);