1 // TODO: Open share links in a small window |
1 // TODO: Open share links in a small window |
2 |
2 |
3 IriSP.Widgets.Social = function(player, config) { |
3 IriSP.Widgets.Social = function(player, config) { |
4 IriSP.Widgets.Widget.call(this, player, config); |
4 IriSP.Widgets.Widget.call(this, player, config); |
5 ZeroClipboard.setMoviePath( IriSP.getLib('zeroClipboardSwf') ); |
5 ZeroClipboard.setMoviePath( IriSP.getLib('zeroClipboardSwf') ); |
6 } |
6 }; |
7 |
7 |
8 IriSP.Widgets.Social.prototype = new IriSP.Widgets.Widget(); |
8 IriSP.Widgets.Social.prototype = new IriSP.Widgets.Widget(); |
9 |
9 |
10 IriSP.Widgets.Social.prototype.defaults = { |
10 IriSP.Widgets.Social.prototype.defaults = { |
11 text: "", |
11 text: "", |
13 show_url: true, |
13 show_url: true, |
14 show_twitter: true, |
14 show_twitter: true, |
15 show_fb: true, |
15 show_fb: true, |
16 show_gplus: true, |
16 show_gplus: true, |
17 show_mail: true |
17 show_mail: true |
18 } |
18 }; |
19 |
19 |
20 IriSP.Widgets.Social.prototype.template = |
20 IriSP.Widgets.Social.prototype.template = |
21 '<span class="Ldt-Social">{{#show_url}}<div class="Ldt-Social-Url-Container"><a href="#" target="_blank" class="Ldt-Social-Square Ldt-Social-Url Ldt-TraceMe" title="{{l10n.share_link}}">' |
21 '<span class="Ldt-Social">{{#show_url}}<div class="Ldt-Social-Url-Container"><a href="#" draggable="true" target="_blank" class="Ldt-Social-Square Ldt-Social-Url Ldt-TraceMe" title="{{l10n.share_link}}">' |
22 + '</a><div class="Ldt-Social-UrlPop"><input class="Ldt-Social-Input"/><div class="Ldt-Social-CopyBtn">{{l10n.copy}}</div></div></div>{{/show_url}}' |
22 + '</a><div class="Ldt-Social-UrlPop"><input class="Ldt-Social-Input"/><div class="Ldt-Social-CopyBtn">{{l10n.copy}}</div></div></div>{{/show_url}}' |
23 + '{{#show_fb}}<a href="#" target="_blank" class="Ldt-Social-Fb Ldt-TraceMe" title="{{l10n.share_on}} Facebook"></a>{{/show_fb}}' |
23 + '{{#show_fb}}<a href="#" target="_blank" class="Ldt-Social-Fb Ldt-Social-Ext Ldt-TraceMe" title="{{l10n.share_on}} Facebook"></a>{{/show_fb}}' |
24 + '{{#show_twitter}}<a href="#" target="_blank" class="Ldt-Social-Twitter Ldt-TraceMe" title="{{l10n.share_on}} Twitter"></a>{{/show_twitter}}' |
24 + '{{#show_twitter}}<a href="#" target="_blank" class="Ldt-Social-Twitter Ldt-Social-Ext Ldt-TraceMe" title="{{l10n.share_on}} Twitter"></a>{{/show_twitter}}' |
25 + '{{#show_gplus}}<a href="#" target="_blank" class="Ldt-Social-Gplus Ldt-TraceMe" title="{{l10n.share_on}} Google+"></a>{{/show_gplus}}' |
25 + '{{#show_gplus}}<a href="#" target="_blank" class="Ldt-Social-Gplus Ldt-Social-Ext Ldt-TraceMe" title="{{l10n.share_on}} Google+"></a>{{/show_gplus}}' |
26 + '{{#show_mail}}<a href="#" target="_blank" class="Ldt-Social-Mail Ldt-TraceMe" title="{{l10n.share_mail}}"></a>{{/show_mail}}</span>'; |
26 + '{{#show_mail}}<a href="#" target="_blank" class="Ldt-Social-Mail Ldt-TraceMe" title="{{l10n.share_mail}}"></a>{{/show_mail}}</span>'; |
27 |
27 |
28 IriSP.Widgets.Social.prototype.messages = { |
28 IriSP.Widgets.Social.prototype.messages = { |
29 "fr": { |
29 "fr": { |
30 share_on: "Partager sur", |
30 share_on: "Partager sur", |
36 share_on: "Share on", |
36 share_on: "Share on", |
37 share_mail: "Share by e-mail", |
37 share_mail: "Share by e-mail", |
38 share_link: "Share hypertext link", |
38 share_link: "Share hypertext link", |
39 copy: "Copy" |
39 copy: "Copy" |
40 } |
40 } |
41 } |
41 }; |
42 |
42 |
43 IriSP.Widgets.Social.prototype.draw = function() { |
43 IriSP.Widgets.Social.prototype.draw = function() { |
44 this.renderTemplate(); |
44 this.renderTemplate(); |
45 this.clipId = IriSP._.uniqueId("Ldt-Social-CopyBtn-"); |
45 this.clipId = IriSP._.uniqueId("Ldt-Social-CopyBtn-"); |
46 this.$.find(".Ldt-Social-CopyBtn").attr("id", this.clipId); |
46 this.$.find(".Ldt-Social-CopyBtn").attr("id", this.clipId); |
47 var _this = this; |
47 var _this = this; |
48 this.$.find(".Ldt-Social-Url").click(function() { |
48 this.$.find(".Ldt-Social-Url").click(function() { |
49 _this.toggleCopy(); |
49 _this.toggleCopy(); |
50 return false; |
50 return false; |
|
51 }).on("dragstart", function(e) { |
|
52 e.originalEvent.dataTransfer.setData("text/x-iri-title",_this.text); |
|
53 e.originalEvent.dataTransfer.setData("text/x-iri-uri",_this.url); |
51 }); |
54 }); |
52 this.$.find(".Ldt-Social-Input").focus(function() { |
55 this.$.find(".Ldt-Social-Input").focus(function() { |
53 this.select(); |
56 this.select(); |
54 }); |
57 }); |
|
58 this.$.find(".Ldt-Social-Ext").click(function() { |
|
59 window.open( |
|
60 IriSP.jQuery(this).attr("href"), |
|
61 "_blank", |
|
62 "height=300,width=450,left=100,top=100,toolbar=0,menubar=0,status=0,location=0"); |
|
63 return false; |
|
64 }); |
55 this.updateUrls(this.url, this.text); |
65 this.updateUrls(this.url, this.text); |
56 } |
66 }; |
57 |
67 |
58 IriSP.Widgets.Social.prototype.toggleCopy = function() { |
68 IriSP.Widgets.Social.prototype.toggleCopy = function() { |
59 var _pop = this.$.find(".Ldt-Social-UrlPop"); |
69 var _pop = this.$.find(".Ldt-Social-UrlPop"); |
60 _pop.toggle(); |
70 _pop.toggle(); |
61 if (_pop.is(":visible")) { |
71 if (_pop.is(":visible")) { |
73 this.clip.setText( this.url ); |
83 this.clip.setText( this.url ); |
74 this.$.find(".Ldt-Social-Input").val(this.url).focus(); |
84 this.$.find(".Ldt-Social-Input").val(this.url).focus(); |
75 } else { |
85 } else { |
76 this.clip.hide(); |
86 this.clip.hide(); |
77 } |
87 } |
78 } |
88 }; |
79 |
89 |
80 IriSP.Widgets.Social.prototype.updateUrls = function(_url, _text) { |
90 IriSP.Widgets.Social.prototype.updateUrls = function(_url, _text) { |
81 this.url = _url; |
91 this.url = _url; |
82 this.text = _text; |
92 this.text = _text; |
83 this.$.find(".Ldt-Social-Fb").attr("href", "http://www.facebook.com/share.php?" + IriSP.jQuery.param({ u: _url, t: _text })); |
93 this.$.find(".Ldt-Social-Fb").attr("href", "http://www.facebook.com/share.php?" + IriSP.jQuery.param({ u: _url, t: _text })); |
84 this.$.find(".Ldt-Social-Twitter").attr("href", "https://twitter.com/intent/tweet?" + IriSP.jQuery.param({ url: _url, text: _text })); |
94 this.$.find(".Ldt-Social-Twitter").attr("href", "https://twitter.com/intent/tweet?" + IriSP.jQuery.param({ url: _url, text: _text })); |
85 this.$.find(".Ldt-Social-Gplus").attr("href", "https://plusone.google.com/_/+1/confirm?" + IriSP.jQuery.param({ url: _url, title: _text })); |
95 this.$.find(".Ldt-Social-Gplus").attr("href", "https://plus.google.com/share?" + IriSP.jQuery.param({ url: _url, title: _text })); |
86 this.$.find(".Ldt-Social-Mail").attr("href", "mailto:?" + IriSP.jQuery.param({ subject: _text, body: _text + ": " + _url })); |
96 this.$.find(".Ldt-Social-Mail").attr("href", "mailto:?" + IriSP.jQuery.param({ subject: _text, body: _text + ": " + _url })); |
87 } |
97 }; |