diff -r 27b248a13355 -r 8a6c9e3d0158 src/widgets/Social.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/widgets/Social.js Thu Aug 30 13:16:33 2012 +0200 @@ -0,0 +1,87 @@ +// TODO: Open share links in a small window + +IriSP.Widgets.Social = function(player, config) { + IriSP.Widgets.Widget.call(this, player, config); + ZeroClipboard.setMoviePath( IriSP.getLib('zeroClipboardSwf') ); +} + +IriSP.Widgets.Social.prototype = new IriSP.Widgets.Widget(); + +IriSP.Widgets.Social.prototype.defaults = { + text: "", + url: "", + show_url: true, + show_twitter: true, + show_fb: true, + show_gplus: true, + show_mail: true +} + +IriSP.Widgets.Social.prototype.template = + '{{#show_url}}
' + + '
{{l10n.copy}}
{{/show_url}}' + + '{{#show_fb}}{{/show_fb}}' + + '{{#show_twitter}}{{/show_twitter}}' + + '{{#show_gplus}}{{/show_gplus}}' + + '{{#show_mail}}{{/show_mail}}
'; + +IriSP.Widgets.Social.prototype.messages = { + "fr": { + share_on: "Partager sur", + share_mail: "Envoyer par courriel", + share_link: "Partager le lien hypertexte", + copy: "Copier" + }, + "en" : { + share_on: "Share on", + share_mail: "Share by e-mail", + share_link: "Share hypertext link", + copy: "Copy" + } +} + +IriSP.Widgets.Social.prototype.draw = function() { + this.renderTemplate(); + this.clipId = IriSP._.uniqueId("Ldt-Social-CopyBtn-"); + this.$.find(".Ldt-Social-CopyBtn").attr("id", this.clipId); + var _this = this; + this.$.find(".Ldt-Social-Url").click(function() { + _this.toggleCopy(); + return false; + }); + this.$.find(".Ldt-Social-Input").focus(function() { + this.select(); + }); + this.updateUrls(this.url, this.text); +} + +IriSP.Widgets.Social.prototype.toggleCopy = function() { + var _pop = this.$.find(".Ldt-Social-UrlPop"); + _pop.toggle(); + if (_pop.is(":visible")) { + if (typeof this.clip == "undefined") { + this.clip = new ZeroClipboard.Client(); + this.clip.setHandCursor( true ); + this.clip.glue(this.clipId); + var _this = this; + this.clip.addEventListener( 'onMouseUp', function() { + _pop.hide(); + _this.clip.hide(); + }); + } + this.clip.show(); + this.clip.setText( this.url ); + this.$.find(".Ldt-Social-Input").val(this.url).focus(); + } else { + this.clip.hide(); + } +} + +IriSP.Widgets.Social.prototype.updateUrls = function(_url, _text) { + this.url = _url; + this.text = _text; + this.$.find(".Ldt-Social-Fb").attr("href", "http://www.facebook.com/share.php?" + IriSP.jQuery.param({ u: _url, t: _text })); + this.$.find(".Ldt-Social-Twitter").attr("href", "https://twitter.com/intent/tweet?" + IriSP.jQuery.param({ url: _url, text: _text })); + this.$.find(".Ldt-Social-Gplus").attr("href", "https://plusone.google.com/_/+1/confirm?" + IriSP.jQuery.param({ url: _url, title: _text })); + this.$.find(".Ldt-Social-Mail").attr("href", "mailto:?" + IriSP.jQuery.param({ subject: _text, body: _text + ": " + _url })); +}