| author | cavaliet |
| Thu, 02 Jan 2014 16:40:25 +0100 | |
| branch | new-model |
| changeset 1019 | 3ab36f402b0c |
| parent 927 | 977a39c4ee80 |
| child 1020 | 198c2b79f5e1 |
| permissions | -rw-r--r-- |
| 924 | 1 |
// TODO: Open share links in a small window |
2 |
||
3 |
IriSP.Widgets.Social = function(player, config) { |
|
4 |
IriSP.Widgets.Widget.call(this, player, config); |
|
| 927 | 5 |
ZeroClipboard.setMoviePath( IriSP.getLib('zeroClipboardSwf') ); |
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
6 |
}; |
| 924 | 7 |
|
8 |
IriSP.Widgets.Social.prototype = new IriSP.Widgets.Widget(); |
|
9 |
||
10 |
IriSP.Widgets.Social.prototype.defaults = { |
|
11 |
text: "", |
|
12 |
url: "", |
|
| 927 | 13 |
show_url: true, |
| 924 | 14 |
show_twitter: true, |
15 |
show_fb: true, |
|
16 |
show_gplus: true, |
|
17 |
show_mail: true |
|
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
18 |
}; |
| 924 | 19 |
|
20 |
IriSP.Widgets.Social.prototype.template = |
|
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
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}}">' |
| 927 | 22 |
+ '</a><div class="Ldt-Social-UrlPop"><input class="Ldt-Social-Input"/><div class="Ldt-Social-CopyBtn">{{l10n.copy}}</div></div></div>{{/show_url}}' |
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
23 |
+ '{{#show_fb}}<a href="#" target="_blank" class="Ldt-Social-Fb Ldt-Social-Ext Ldt-TraceMe" title="{{l10n.share_on}} Facebook"></a>{{/show_fb}}' |
|
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
24 |
+ '{{#show_twitter}}<a href="#" target="_blank" class="Ldt-Social-Twitter Ldt-Social-Ext Ldt-TraceMe" title="{{l10n.share_on}} Twitter"></a>{{/show_twitter}}' |
|
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
25 |
+ '{{#show_gplus}}<a href="#" target="_blank" class="Ldt-Social-Gplus Ldt-Social-Ext Ldt-TraceMe" title="{{l10n.share_on}} Google+"></a>{{/show_gplus}}' |
| 924 | 26 |
+ '{{#show_mail}}<a href="#" target="_blank" class="Ldt-Social-Mail Ldt-TraceMe" title="{{l10n.share_mail}}"></a>{{/show_mail}}</span>'; |
27 |
||
28 |
IriSP.Widgets.Social.prototype.messages = { |
|
29 |
"fr": { |
|
30 |
share_on: "Partager sur", |
|
| 927 | 31 |
share_mail: "Envoyer par courriel", |
32 |
share_link: "Partager le lien hypertexte", |
|
33 |
copy: "Copier" |
|
| 924 | 34 |
}, |
35 |
"en" : { |
|
36 |
share_on: "Share on", |
|
| 927 | 37 |
share_mail: "Share by e-mail", |
38 |
share_link: "Share hypertext link", |
|
39 |
copy: "Copy" |
|
| 924 | 40 |
} |
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
41 |
}; |
| 924 | 42 |
|
43 |
IriSP.Widgets.Social.prototype.draw = function() { |
|
44 |
this.renderTemplate(); |
|
| 927 | 45 |
this.clipId = IriSP._.uniqueId("Ldt-Social-CopyBtn-"); |
46 |
this.$.find(".Ldt-Social-CopyBtn").attr("id", this.clipId); |
|
47 |
var _this = this; |
|
48 |
this.$.find(".Ldt-Social-Url").click(function() { |
|
49 |
_this.toggleCopy(); |
|
50 |
return false; |
|
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
51 |
}).on("dragstart", function(e) { |
|
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
52 |
e.originalEvent.dataTransfer.setData("text/x-iri-title",_this.text); |
|
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
53 |
e.originalEvent.dataTransfer.setData("text/x-iri-uri",_this.url); |
| 927 | 54 |
}); |
55 |
this.$.find(".Ldt-Social-Input").focus(function() { |
|
56 |
this.select(); |
|
57 |
}); |
|
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
58 |
this.$.find(".Ldt-Social-Ext").click(function() { |
|
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
59 |
window.open( |
|
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
60 |
IriSP.jQuery(this).attr("href"), |
|
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
61 |
"_blank", |
|
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
62 |
"height=300,width=450,left=100,top=100,toolbar=0,menubar=0,status=0,location=0"); |
|
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
63 |
return false; |
|
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
64 |
}); |
| 924 | 65 |
this.updateUrls(this.url, this.text); |
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
66 |
}; |
| 924 | 67 |
|
| 927 | 68 |
IriSP.Widgets.Social.prototype.toggleCopy = function() { |
69 |
var _pop = this.$.find(".Ldt-Social-UrlPop"); |
|
70 |
_pop.toggle(); |
|
71 |
if (_pop.is(":visible")) { |
|
72 |
if (typeof this.clip == "undefined") { |
|
73 |
this.clip = new ZeroClipboard.Client(); |
|
74 |
this.clip.setHandCursor( true ); |
|
75 |
this.clip.glue(this.clipId); |
|
76 |
var _this = this; |
|
77 |
this.clip.addEventListener( 'onMouseUp', function() { |
|
78 |
_pop.hide(); |
|
79 |
_this.clip.hide(); |
|
80 |
}); |
|
81 |
} |
|
82 |
this.clip.show(); |
|
83 |
this.clip.setText( this.url ); |
|
84 |
this.$.find(".Ldt-Social-Input").val(this.url).focus(); |
|
85 |
} else { |
|
86 |
this.clip.hide(); |
|
87 |
} |
|
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
88 |
}; |
| 927 | 89 |
|
| 924 | 90 |
IriSP.Widgets.Social.prototype.updateUrls = function(_url, _text) { |
| 927 | 91 |
this.url = _url; |
92 |
this.text = _text; |
|
| 924 | 93 |
this.$.find(".Ldt-Social-Fb").attr("href", "http://www.facebook.com/share.php?" + IriSP.jQuery.param({ u: _url, t: _text })); |
94 |
this.$.find(".Ldt-Social-Twitter").attr("href", "https://twitter.com/intent/tweet?" + IriSP.jQuery.param({ url: _url, text: _text })); |
|
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
95 |
this.$.find(".Ldt-Social-Gplus").attr("href", "https://plus.google.com/share?" + IriSP.jQuery.param({ url: _url, title: _text })); |
| 924 | 96 |
this.$.find(".Ldt-Social-Mail").attr("href", "mailto:?" + IriSP.jQuery.param({ subject: _text, body: _text + ": " + _url })); |
|
1019
3ab36f402b0c
update widgets after enhance in annotation platform.
cavaliet
parents:
927
diff
changeset
|
97 |
}; |