Fix issues with clones, re-add auto-embed

This commit is contained in:
Zixaphir 2013-08-06 20:10:50 -07:00
parent b47aea7055
commit 4ff97f9435
3 changed files with 60 additions and 60 deletions

View File

@ -4335,21 +4335,22 @@
});
},
node: function() {
var data, embedder, i, len, node, range, snapshot, _i, _j, _len, _len1, _ref, _ref1;
var data, el, i, items, node, range, snapshot, _i, _len, _ref;
if (this.isClone && Conf['Embedding']) {
_ref = $$('.embedder', this.nodes.comment);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
embedder = _ref[_i];
$.on(embedder, "click", Linkify.cb.toggle);
if (this.isClone) {
if (Conf['Embedding']) {
i = 0;
items = $$('.embedded', this.nodes.comment);
while (el = items[i++]) {
$.on(el, "click", Linkify.cb.toggle);
Linkify.cb.toggle.call(el);
}
}
return;
}
snapshot = $.X('.//text()', this.nodes.comment);
i = -1;
len = snapshot.snapshotLength;
while (++i < len) {
node = snapshot.snapshotItem(i);
i = 0;
while (node = snapshot.snapshotItem(i++)) {
if (node.parentElement.nodeName === "A") {
continue;
}
@ -4362,9 +4363,9 @@
if (!(Conf['Embedding'] || Conf['Link Title'])) {
return;
}
_ref1 = this.nodes.links;
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
range = _ref1[_j];
_ref = this.nodes.links;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
range = _ref[_i];
if (data = Linkify.services(range)) {
if (Conf['Embedding']) {
Linkify.embed(data);
@ -4473,6 +4474,9 @@
$.addClass(link, "" + embed.dataset.key);
$.on(embed, 'click', Linkify.cb.toggle);
$.after(link, [$.tn(' '), embed]);
if (Conf['Auto-embed']) {
Linkify.cb.toggle.call(embed);
}
},
title: function(data) {
var err, key, link, options, service, title, titles, uid;
@ -4508,11 +4512,10 @@
},
cb: {
toggle: function() {
var el, embed;
var string, _ref;
embed = this.previousElementSibling;
el = !this.className.contains("embedded") ? Linkify.cb.embed(this) : Linkify.cb.unembed(this);
$.replace(embed, el);
_ref = $.hasClass(this, "embedded") ? ['unembed', '(embed)'] : ['embed', '(unembed)'], string = _ref[0], this.textContent = _ref[1];
$.replace(this.previousElementSibling, Linkify.cb[string](this));
return $.toggleClass(this, 'embedded');
},
embed: function(a) {
@ -4520,7 +4523,6 @@
el = (type = Linkify.types[a.dataset.key]).el.call(a);
el.style.cssText = (style = type.style) ? style : "border: 0; width: 640px; height: 390px";
a.textContent = '(unembed)';
return el;
},
unembed: function(a) {
@ -4533,7 +4535,6 @@
href: a.dataset.href,
innerHTML: a.dataset.title || a.dataset.nodedata
});
a.textContent = '(embed)';
$.addClass(el, a.dataset.key);
return el;
},

View File

@ -4340,21 +4340,22 @@
});
},
node: function() {
var data, embedder, i, len, node, range, snapshot, _i, _j, _len, _len1, _ref, _ref1;
var data, el, i, items, node, range, snapshot, _i, _len, _ref;
if (this.isClone && Conf['Embedding']) {
_ref = $$('.embedder', this.nodes.comment);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
embedder = _ref[_i];
$.on(embedder, "click", Linkify.cb.toggle);
if (this.isClone) {
if (Conf['Embedding']) {
i = 0;
items = $$('.embedded', this.nodes.comment);
while (el = items[i++]) {
$.on(el, "click", Linkify.cb.toggle);
Linkify.cb.toggle.call(el);
}
}
return;
}
snapshot = $.X('.//text()', this.nodes.comment);
i = -1;
len = snapshot.snapshotLength;
while (++i < len) {
node = snapshot.snapshotItem(i);
i = 0;
while (node = snapshot.snapshotItem(i++)) {
if (node.parentElement.nodeName === "A") {
continue;
}
@ -4367,9 +4368,9 @@
if (!(Conf['Embedding'] || Conf['Link Title'])) {
return;
}
_ref1 = this.nodes.links;
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
range = _ref1[_j];
_ref = this.nodes.links;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
range = _ref[_i];
if (data = Linkify.services(range)) {
if (Conf['Embedding']) {
Linkify.embed(data);
@ -4478,6 +4479,9 @@
$.addClass(link, "" + embed.dataset.key);
$.on(embed, 'click', Linkify.cb.toggle);
$.after(link, [$.tn(' '), embed]);
if (Conf['Auto-embed']) {
Linkify.cb.toggle.call(embed);
}
},
title: function(data) {
var err, key, link, options, service, title, titles, uid;
@ -4513,11 +4517,10 @@
},
cb: {
toggle: function() {
var el, embed;
var string, _ref;
embed = this.previousElementSibling;
el = !this.className.contains("embedded") ? Linkify.cb.embed(this) : Linkify.cb.unembed(this);
$.replace(embed, el);
_ref = $.hasClass(this, "embedded") ? ['unembed', '(embed)'] : ['embed', '(unembed)'], string = _ref[0], this.textContent = _ref[1];
$.replace(this.previousElementSibling, Linkify.cb[string](this));
return $.toggleClass(this, 'embedded');
},
embed: function(a) {
@ -4525,7 +4528,6 @@
el = (type = Linkify.types[a.dataset.key]).el.call(a);
el.style.cssText = (style = type.style) ? style : "border: 0; width: 640px; height: 390px";
a.textContent = '(unembed)';
return el;
},
unembed: function(a) {
@ -4538,7 +4540,6 @@
href: a.dataset.href,
innerHTML: a.dataset.title || a.dataset.nodedata
});
a.textContent = '(embed)';
$.addClass(el, a.dataset.key);
return el;
},

View File

@ -33,20 +33,22 @@ Linkify =
cb: @node
node: ->
if @isClone and Conf['Embedding']
for embedder in $$ '.embedder', @nodes.comment
$.on embedder, "click", Linkify.cb.toggle
if @isClone
if Conf['Embedding']
i = 0
items = $$ '.embedded', @nodes.comment
while el = items[i++]
$.on el, "click", Linkify.cb.toggle
Linkify.cb.toggle.call el
return
snapshot = $.X './/text()', @nodes.comment
i = -1
len = snapshot.snapshotLength
i = 0
while node = snapshot.snapshotItem i++
while ++i < len
node = snapshot.snapshotItem i
continue if node.parentElement.nodeName is "A"
data = node.data
if Linkify.regString.test data
@ -146,13 +148,17 @@ Linkify =
for name, value of {key, href, uid, options}
embed.dataset[name] = value
embed.dataset.nodedata = link.innerHTML
$.addClass link, "#{embed.dataset.key}"
$.on embed, 'click', Linkify.cb.toggle
$.after link, [$.tn(' '), embed]
if Conf['Auto-embed']
Linkify.cb.toggle.call embed
return
title: (data) ->
@ -179,16 +185,11 @@ Linkify =
cb:
toggle: ->
# We setup the link to be replaced by the embedded video
embed = @previousElementSibling
# Unembed.
el = unless @className.contains "embedded"
Linkify.cb.embed @
[string, @textContent] = if $.hasClass @, "embedded"
['unembed', '(embed)']
else
Linkify.cb.unembed @
$.replace embed, el
['embed', '(unembed)']
$.replace @previousElementSibling, Linkify.cb[string] @
$.toggleClass @, 'embedded'
embed: (a) ->
@ -201,8 +202,6 @@ Linkify =
else
"border: 0; width: 640px; height: 390px"
a.textContent = '(unembed)'
return el
unembed: (a) ->
@ -214,7 +213,6 @@ Linkify =
href: a.dataset.href
innerHTML: a.dataset.title or a.dataset.nodedata
a.textContent = '(embed)'
$.addClass el, a.dataset.key
return el