diff -r 03967b6ada7c -r 4c7b33bf2795 src/widgets/Annotation.js --- a/src/widgets/Annotation.js Tue Apr 24 20:25:40 2012 +0200 +++ b/src/widgets/Annotation.js Thu Apr 26 19:18:57 2012 +0200 @@ -1,4 +1,4 @@ -// TODO: Open share links in a small window +// TODO: Open share links in a small window - Migrate Timeupdate functions to Extract IriSP.Widgets.Annotation = function(player, config) { IriSP.Widgets.Widget.call(this, player, config); @@ -24,7 +24,14 @@ IriSP.Widgets.Annotation.prototype.template = '
' - + '
'; + + '
' + + '' + + '' + + '' + + '

' + + '( - )

' + + '

' + + '
{{l10n.tags}}
'; IriSP.Widgets.Annotation.prototype.defaults = { annotation_type : "chap", @@ -35,6 +42,10 @@ IriSP.Widgets.Annotation.prototype.draw = function() { this.renderTemplate(); this.bindPopcorn("timeupdate","onTimeupdate"); + this.bindPopcorn("IriSP.Annotation.hide","hide"); + this.bindPopcorn("IriSP.Annotation.show","show"); + this.bindPopcorn("IriSP.Annotation.minimize","minimize"); + this.bindPopcorn("IriSP.Annotation.maximize","maximize"); this.onTimeupdate(); } @@ -46,38 +57,56 @@ if (_list.length) { if (_list[0].id !== this.lastAnnotation) { this.drawAnnotation(_list[0]); + this.player.popcorn.trigger("IriSP.Annotation.boundsChanged",[ _list[0].begin.valueOf(), _list[0].end.valueOf() ]); } + this.player.popcorn.trigger("IriSP.Arrow.updatePosition",{widget: this.type, time: ( _list[0].begin + _list[0].end ) / 2}); } else { - this.$.find('.Ldt-Annotation-Inner').html(''); + this.lastAnnotation = false; + this.$.find(".Ldt-Annotation-Inner").addClass("Ldt-Annotation-Empty"); + this.player.popcorn.trigger("IriSP.Arrow.updatePosition",{widget: this.type, time: _time}); + this.player.popcorn.trigger("IriSP.Annotation.boundsChanged",[ _time, _time ]); } } IriSP.Widgets.Annotation.prototype.drawAnnotation = function(_annotation) { this.lastAnnotation = _annotation.id; - console.log(_annotation); var _url = (typeof _annotation.url !== "undefined" ? _annotation.url - : (document.location.href.replace(/#.*$/,'') + '#id=' + _annotation.namespacedId.name)), - _text = this.l10n.watching + _annotation.title + (this.site_name ? this.l10n.on_site + this.site_name : ''), - _tmpl = '
' - + '' - + '' - + '' - + '
' - + '

{{title}} ( {{begin}} - {{end}} )

' - + '

{{description}}

' - + '{{#tags.length}}{{/tags.length}}', - _attr = { - title: _annotation.title, - description: _annotation.description, - begin: _annotation.begin.toString(), - end: _annotation.end.toString(), - tags: _annotation.getTagTexts(), - l10n: this.l10n - } - _attr.fb_url = "http://www.facebook.com/share.php?" + IriSP.jQuery.param({ u: _url, t: _text }); - _attr.twitter_url = "https://twitter.com/intent/tweet?" + IriSP.jQuery.param({ url: _url, text: _text }); - _attr.gplus_url = "https://plusone.google.com/_/+1/confirm?" + IriSP.jQuery.param({ url: _url, title: _text }); - this.$.find('.Ldt-Annotation-Inner').html(Mustache.to_html(_tmpl, _attr)); + : (document.location.href.replace(/#.*$/,'') + '#id=' + _annotation.namespacedId.name)); + var _text = this.l10n.watching + _annotation.title + (this.site_name ? this.l10n.on_site + this.site_name : ''); + var _tags = _annotation.getTagTexts(); + if (_tags.length) { + var _html = IriSP._(_tags).map(function(_tag) { + return '
  • ' + _tag + '
  • '; + }).join(""); + this.$.find(".Ldt-Annotation-Tags").html(_html); + this.$.find(".Ldt-Annotation-Tags-Block").removeClass("Ldt-Annotation-NoTags"); + } else { + this.$.find(".Ldt-Annotation-Tags-Block").addClass("Ldt-Annotation-NoTags"); + } + this.$.find(".Ldt-Annotation-Title").html(_annotation.title); + this.$.find(".Ldt-Annotation-Description").html(_annotation.description); + this.$.find(".Ldt-Annotation-Begin").html(_annotation.begin.toString()); + this.$.find(".Ldt-Annotation-End").html(_annotation.end.toString()); + this.$.find(".Ldt-Annotation-Fb").attr("href", "http://www.facebook.com/share.php?" + IriSP.jQuery.param({ u: _url, t: _text })); + this.$.find(".Ldt-Annotation-Twitter").attr("href", "https://twitter.com/intent/tweet?" + IriSP.jQuery.param({ url: _url, text: _text })); + this.$.find(".Ldt-Annotation-Gplus").attr("href", "https://plusone.google.com/_/+1/confirm?" + IriSP.jQuery.param({ url: _url, title: _text })); + this.$.find(".Ldt-Annotation-Inner").removeClass("Ldt-Annotation-Empty"); } + +IriSP.Widgets.Annotation.prototype.hide = function() { + this.$.slideUp(); +} + +IriSP.Widgets.Annotation.prototype.show = function() { + this.$.slideDown(); +} + +IriSP.Widgets.Annotation.prototype.minimize = function() { + this.$.find('.Ldt-Annotation-Inner').addClass("Ldt-Annotation-Minimized"); +} + +IriSP.Widgets.Annotation.prototype.maximize = function() { + this.$.find('.Ldt-Annotation-Inner').removeClass("Ldt-Annotation-Minimized"); +} \ No newline at end of file