diff -r 4fddc765a716 -r be314c4ea4ac src/widgets/CurrentSegmentInfobox.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/widgets/CurrentSegmentInfobox.js Fri Jul 03 17:00:33 2015 +0200 @@ -0,0 +1,76 @@ +/* Widget displays info on the current segment, with possibility of config for editing description and tags */ + +IriSP.Widgets.CurrentSegmentInfobox = function(player, config){ + IriSP.Widgets.Widget.call(this, player, config); +}; + +IriSP.Widgets.CurrentSegmentInfobox.prototype = new IriSP.Widgets.Widget(); + +IriSP.Widgets.CurrentSegmentInfobox.prototype.defaults = { + annotation_type: "chap", + readonly: true, + empty_message: false +}; + +IriSP.Widgets.CurrentSegmentInfobox.prototype.template = + "
" + + "
{{title}}
" + + "
{{description}}
" + + "
" + + ' {{#tags.length}}' + + ' ' + + ' {{/tags.length}}' + + "
" + + "
" + +IriSP.Widgets.CurrentSegmentInfobox.prototype.messages = { + fr : { + empty : "Le player vidéo ne lit actuellement aucun segment" + }, + en: { + empty: "The player currently doesn't read any segment" + } +} + +IriSP.Widgets.CurrentSegmentInfobox.prototype.draw = function() { + var _this = this; + this.segments = this.getWidgetAnnotations(); + + this.renderTemplate(); + this.refresh(); + + this.onMediaEvent("timeupdate", "refresh"); +} + +IriSP.Widgets.CurrentSegmentInfobox.prototype.refresh = function() { + var _list = this.segments; + + _currentTime = this.media.getCurrentTime(); + _list = _list.filter(function(_segment){ + return (_segment.begin <= _currentTime && _segment.end >= _currentTime); + }) + if (_list.length > 0){ + _currentSegment = _list[0]; + _data = { + title: _currentSegment.title, + description : _currentSegment.description, + tags : _currentSegment.getTagTexts() + } + this.$.html(Mustache.to_html(this.template, _data)) + } + else { + var _empty_message = this.l10n.empty + if (this.empty_message) { + _empty_message = this.empty_message + } + this.$.find(".Ldt-CurrentSegmentInfobox").html("
"+_empty_message+"
"); + } +} \ No newline at end of file