Skip to content

Commit

Permalink
Merge pull request #888 from superdesk/master
Browse files Browse the repository at this point in the history
fix: tweeter style emebeds.
  • Loading branch information
nistormihai committed Feb 1, 2016
2 parents f5717ec + e1c131c commit 1d56910
Showing 1 changed file with 32 additions and 3 deletions.
35 changes: 32 additions & 3 deletions plugins/livedesk/gui-resources/scripts/js/providers/edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -223,9 +223,28 @@ define('providers/edit', [
'[ci="save"]': { 'click': 'save'},
'[name="type"]' : {'change': 'changetype'},
'.insert-link' : {'focusout':'populateUrlInfo'},
'article.editable': {'htmlOkButtonBefore': 'parseFBEmbed', 'htmlOkButton': 'renderFBEmbed'},
'article.editable': {'htmlOkButtonBefore': 'parseContent', 'htmlOkButton': 'renderFBEmbed'},
"[data-toggle='modal-image']": { 'click': 'openUploadScreen' }
},
parseContent: function(evt, parent) {
this.parseTwitter(evt, parent);
this.parseFBEmbed(evt, parent);
},
parseTwitter: function(evt, parent) {
var self = this,
el = $(parent).find('textarea.editor-code'),
code = el.val(),
embeds = code.match(/<blockquote[^<]*class="twitter-tweet"[^>]*>(.|\n)*?<\/blockquote>/g);
if(!self.meta.tweets) {
self.meta.tweets = [];
}
for(var i=0, id; i<embeds.length; i++) {
id = embeds[i].match(/status\/([\d]+)/i);
if(id && id[1]) {
self.meta.tweets[id[1]] = embeds[i]+'\n<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></' + 'script>';
}
}
},
parseFBEmbed: function(evt, parent) {
var el = $(parent).find('textarea.editor-code'),
code = el.val();
Expand Down Expand Up @@ -692,14 +711,24 @@ define('providers/edit', [
text: opt.text()
};
},
formatContent: function(content) {
var self = this;
content = content.replace(/<iframe[^<]*data-tweet-id="([\d]+)[^>]*>(.|\n)*?<\/iframe>/gi, function(all, id){
if(self.meta.tweets[id]) {
return self.meta.tweets[id];
};
return all;
});
return content.replace(/<br\s*\/?>\s*$/, '');
},
savepost: function(evt){
var self = this;
self.preSave();
var originalContent = $.styledNodeHtml(this.el.find('.edit-block article.editable'));
evt.preventDefault();
var data = {
Meta: JSON.stringify(self.meta),
Content: originalContent.replace(/<br\s*\/?>\s*$/, ''),
Content: self.formatContent(originalContent),
Type: this.el.find('[name="type"]').val()
};

Expand All @@ -725,7 +754,7 @@ define('providers/edit', [
evt.preventDefault();
var data = {
Meta: JSON.stringify(self.meta),
Content: originalContent.replace(/<br\s*\/?>\s*$/, ''),
Content: self.formatContent(originalContent),
Type: this.el.find('[name="type"]').val()
};

Expand Down

0 comments on commit 1d56910

Please sign in to comment.