Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/embedpre.../assets/js
File: preview.js
});
[500] Fix | Delete
editButtonIcon.append(createGhostNode());
[501] Fix | Delete
editButton.append(editButtonIcon);
[502] Fix | Delete
panel.append(editButton);
[503] Fix | Delete
[504] Fix | Delete
var removeButton = new self.Node('div', 1);
[505] Fix | Delete
removeButton.attr({
[506] Fix | Delete
'id': 'embedpress_button_remove_' + uid,
[507] Fix | Delete
'class': 'embedpress_ignore_mouseout embedpress_controller_button'
[508] Fix | Delete
});
[509] Fix | Delete
var removeButtonIcon = new self.Node('div', 1);
[510] Fix | Delete
removeButtonIcon.attr({
[511] Fix | Delete
'class': 'embedpress-icon-x embedpress_ignore_mouseout'
[512] Fix | Delete
});
[513] Fix | Delete
removeButtonIcon.append(createGhostNode());
[514] Fix | Delete
removeButton.append(removeButtonIcon);
[515] Fix | Delete
panel.append(removeButton);
[516] Fix | Delete
[517] Fix | Delete
node.value = node.value.trim();
[518] Fix | Delete
[519] Fix | Delete
node.replace(wrapper);
[520] Fix | Delete
[521] Fix | Delete
// Trigger the timeout which will load the content
[522] Fix | Delete
window.setTimeout(function () {
[523] Fix | Delete
self.parseContentAsync(uid, url, customAttributes, editorInstance);
[524] Fix | Delete
}, 200);
[525] Fix | Delete
[526] Fix | Delete
return wrapper;
[527] Fix | Delete
};
[528] Fix | Delete
[529] Fix | Delete
self.parseContentAsync = function (uid, url, customAttributes, editorInstance) {
[530] Fix | Delete
customAttributes = typeof customAttributes === 'undefined' ? {} : customAttributes;
[531] Fix | Delete
[532] Fix | Delete
url = self.decodeEmbedURLSpecialChars(url, true, customAttributes);
[533] Fix | Delete
var rawUrl = url.stripShortcode($data.EMBEDPRESS_SHORTCODE);
[534] Fix | Delete
[535] Fix | Delete
$(self).triggerHandler('EmbedPress.beforeEmbed', {
[536] Fix | Delete
'url': rawUrl,
[537] Fix | Delete
'meta': {
[538] Fix | Delete
'attributes': customAttributes || {}
[539] Fix | Delete
}
[540] Fix | Delete
});
[541] Fix | Delete
[542] Fix | Delete
// Get the parsed embed code from the EmbedPress plugin
[543] Fix | Delete
self.getParsedContent(url, function getParsedContentCallback (result) {
[544] Fix | Delete
var embeddedContent = (typeof result.data === 'object' ? result.data.embed : result.data).stripShortcode($data.EMBEDPRESS_SHORTCODE);
[545] Fix | Delete
var $wrapper = $(self.getElementInContentById('embedpress_wrapper_' + uid, editorInstance));
[546] Fix | Delete
var wrapperParent = $($wrapper.parent());
[547] Fix | Delete
[548] Fix | Delete
// Check if $wrapper was rendered inside a <p> element.
[549] Fix | Delete
if (wrapperParent.prop('tagName') && wrapperParent.prop('tagName').toUpperCase() === 'P') {
[550] Fix | Delete
wrapperParent.replaceWith($wrapper);
[551] Fix | Delete
// Check if there's at least one "space" after $wrapper.
[552] Fix | Delete
var nextSibling = $($wrapper).next();
[553] Fix | Delete
if (!nextSibling.length || nextSibling.prop('tagName').toUpperCase() !== 'P') {
[554] Fix | Delete
//$('<p>&nbsp;</p>').insertAfter($wrapper);
[555] Fix | Delete
}
[556] Fix | Delete
nextSibling = null;
[557] Fix | Delete
}
[558] Fix | Delete
wrapperParent = null;
[559] Fix | Delete
[560] Fix | Delete
// Check if the url could not be embedded for some reason.
[561] Fix | Delete
if (rawUrl === embeddedContent) {
[562] Fix | Delete
// Echoes the raw url
[563] Fix | Delete
$wrapper.replaceWith($('<p>' + rawUrl + '</p>'));
[564] Fix | Delete
return;
[565] Fix | Delete
}
[566] Fix | Delete
[567] Fix | Delete
$wrapper.removeClass('is-loading');
[568] Fix | Delete
[569] Fix | Delete
// Parse as DOM element
[570] Fix | Delete
var $content;
[571] Fix | Delete
try {
[572] Fix | Delete
$content = $(embeddedContent);
[573] Fix | Delete
} catch (err) {
[574] Fix | Delete
// Fallback to a div, if the result is not a html markup, e.g. a url
[575] Fix | Delete
$content = $('<div>');
[576] Fix | Delete
$content.html(embeddedContent);
[577] Fix | Delete
}
[578] Fix | Delete
[579] Fix | Delete
if (!$('iframe', $content).length && result.data.provider_name!=='Infogram') {
[580] Fix | Delete
var contentWrapper = $($content).clone();
[581] Fix | Delete
contentWrapper.html('');
[582] Fix | Delete
[583] Fix | Delete
$wrapper.removeClass('embedpress_placeholder');
[584] Fix | Delete
[585] Fix | Delete
$wrapper.append(contentWrapper);
[586] Fix | Delete
[587] Fix | Delete
setTimeout(function () {
[588] Fix | Delete
editorInstance.undoManager.transact(function () {
[589] Fix | Delete
var iframe = editorInstance.getDoc().createElement('iframe');
[590] Fix | Delete
iframe.src = tinymce.Env.ie ? 'javascript:""' : '';
[591] Fix | Delete
iframe.frameBorder = '0';
[592] Fix | Delete
iframe.allowTransparency = 'true';
[593] Fix | Delete
iframe.scrolling = 'no';
[594] Fix | Delete
iframe.class = 'wpview-sandbox';
[595] Fix | Delete
iframe.style.width = '100%';
[596] Fix | Delete
[597] Fix | Delete
contentWrapper.append(iframe);
[598] Fix | Delete
[599] Fix | Delete
var iframeWindow = iframe.contentWindow;
[600] Fix | Delete
// Content failed to load.
[601] Fix | Delete
if (!iframeWindow) {
[602] Fix | Delete
return;
[603] Fix | Delete
}
[604] Fix | Delete
[605] Fix | Delete
var iframeDoc = iframeWindow.document;
[606] Fix | Delete
[607] Fix | Delete
$(iframe).load(function () {
[608] Fix | Delete
var maximumChecksAllowed = 8;
[609] Fix | Delete
var checkIndex = 0;
[610] Fix | Delete
[611] Fix | Delete
var checkerInterval = setInterval(function () {
[612] Fix | Delete
if (checkIndex === maximumChecksAllowed) {
[613] Fix | Delete
clearInterval(checkerInterval);
[614] Fix | Delete
[615] Fix | Delete
setTimeout(function () {
[616] Fix | Delete
$wrapper.css('width', iframe.width);
[617] Fix | Delete
$wrapper.css('height', iframe.height);
[618] Fix | Delete
}, 100);
[619] Fix | Delete
} else {
[620] Fix | Delete
if (customAttributes.height) {
[621] Fix | Delete
iframe.height = customAttributes.height;
[622] Fix | Delete
iframe.style.height = customAttributes.height + 'px';
[623] Fix | Delete
} else {
[624] Fix | Delete
iframe.height = $('body', iframeDoc).height();
[625] Fix | Delete
}
[626] Fix | Delete
[627] Fix | Delete
if (customAttributes.width) {
[628] Fix | Delete
iframe.width = customAttributes.width;
[629] Fix | Delete
iframe.style.width = customAttributes.width + 'px';
[630] Fix | Delete
} else {
[631] Fix | Delete
iframe.width = $('body', iframeDoc).width();
[632] Fix | Delete
}
[633] Fix | Delete
[634] Fix | Delete
checkIndex++;
[635] Fix | Delete
}
[636] Fix | Delete
}, 250);
[637] Fix | Delete
});
[638] Fix | Delete
[639] Fix | Delete
iframeDoc.open();
[640] Fix | Delete
iframeDoc.write(
[641] Fix | Delete
'<!DOCTYPE html>' +
[642] Fix | Delete
'<html>' +
[643] Fix | Delete
'<head>' +
[644] Fix | Delete
'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' +
[645] Fix | Delete
'<style>' +
[646] Fix | Delete
'html {' +
[647] Fix | Delete
'background: transparent;' +
[648] Fix | Delete
'padding: 0;' +
[649] Fix | Delete
'margin: 0;' +
[650] Fix | Delete
'}' +
[651] Fix | Delete
'body#wpview-iframe-sandbox {' +
[652] Fix | Delete
'background: transparent;' +
[653] Fix | Delete
'padding: 1px 0 !important;' +
[654] Fix | Delete
'margin: -1px 0 0 !important;' +
[655] Fix | Delete
'}' +
[656] Fix | Delete
'body#wpview-iframe-sandbox:before,' +
[657] Fix | Delete
'body#wpview-iframe-sandbox:after {' +
[658] Fix | Delete
'display: none;' +
[659] Fix | Delete
'content: "";' +
[660] Fix | Delete
'}' +
[661] Fix | Delete
'</style>' +
[662] Fix | Delete
'</head>' +
[663] Fix | Delete
'<body id="wpview-iframe-sandbox" class="' + editorInstance.getBody().className + '" style="display: inline-block; width: 100%;" >' +
[664] Fix | Delete
$content.html() +
[665] Fix | Delete
'</body>' +
[666] Fix | Delete
'</html>'
[667] Fix | Delete
);
[668] Fix | Delete
iframeDoc.close();
[669] Fix | Delete
});
[670] Fix | Delete
}, 50);
[671] Fix | Delete
} else {
[672] Fix | Delete
$wrapper.removeClass('embedpress_placeholder');
[673] Fix | Delete
[674] Fix | Delete
self.appendElementsIntoWrapper($content, $wrapper, editorInstance);
[675] Fix | Delete
}
[676] Fix | Delete
[677] Fix | Delete
$wrapper.append($('<span class="wpview-end"></span>'));
[678] Fix | Delete
[679] Fix | Delete
if (result && result.data && typeof result.data === 'object') {
[680] Fix | Delete
result.data.width = $($wrapper).width();
[681] Fix | Delete
result.data.height = $($wrapper).height();
[682] Fix | Delete
}
[683] Fix | Delete
[684] Fix | Delete
$(self).triggerHandler('EmbedPress.afterEmbed', {
[685] Fix | Delete
'meta': result.data,
[686] Fix | Delete
'url': rawUrl,
[687] Fix | Delete
'wrapper': $wrapper
[688] Fix | Delete
});
[689] Fix | Delete
});
[690] Fix | Delete
};
[691] Fix | Delete
[692] Fix | Delete
self.appendElementsIntoWrapper = function (elementsList, wrapper, editorInstance) {
[693] Fix | Delete
if (elementsList.length > 0) {
[694] Fix | Delete
$.each(elementsList, function appendElementIntoWrapper (elementIndex, element) {
[695] Fix | Delete
// Check if the element is a script and do not add it now (if added here it wouldn't be executed)
[696] Fix | Delete
if (element.tagName && element.tagName.toLowerCase() !== 'script') {
[697] Fix | Delete
wrapper.append($(element));
[698] Fix | Delete
[699] Fix | Delete
if (element.tagName.toLowerCase() === 'iframe') {
[700] Fix | Delete
$(element).ready(function () {
[701] Fix | Delete
window.setTimeout(function () {
[702] Fix | Delete
$.each(editorInstance.dom.select('div.embedpress_wrapper iframe'), function (elementIndex, iframe) {
[703] Fix | Delete
self.fixIframeSize(iframe);
[704] Fix | Delete
});
[705] Fix | Delete
}, 300);
[706] Fix | Delete
});
[707] Fix | Delete
} else if (element.tagName.toLowerCase() === 'div') {
[708] Fix | Delete
if ($('img', $(element)).length || $('blockquote', wrapper).length) {
[709] Fix | Delete
// This ensures that the embed wrapper have the same width as its content
[710] Fix | Delete
$($(element).parents('.embedpress_wrapper').get(0)).addClass('dynamic-width');
[711] Fix | Delete
}
[712] Fix | Delete
[713] Fix | Delete
$(element).css('max-width', $($(element).parents('body').get(0)).width());
[714] Fix | Delete
}
[715] Fix | Delete
}
[716] Fix | Delete
[717] Fix | Delete
self.loadAsyncDynamicJsCodeFromElement(element, wrapper, editorInstance);
[718] Fix | Delete
});
[719] Fix | Delete
}
[720] Fix | Delete
[721] Fix | Delete
return wrapper;
[722] Fix | Delete
};
[723] Fix | Delete
[724] Fix | Delete
self.encodeEmbedURLSpecialChars = function (content) {
[725] Fix | Delete
if (content.match(SHORTCODE_REGEXP)) {
[726] Fix | Delete
var subject = content.replace(SHORTCODE_REGEXP, '');
[727] Fix | Delete
[728] Fix | Delete
if (!subject.isValidUrl()) {
[729] Fix | Delete
return content;
[730] Fix | Delete
}
[731] Fix | Delete
[732] Fix | Delete
content = subject;
[733] Fix | Delete
subject = null;
[734] Fix | Delete
}
[735] Fix | Delete
[736] Fix | Delete
// Bypass the autolink plugin, avoiding to have the url converted to a link automatically
[737] Fix | Delete
content = content.replace(/http(s?)\:\/\//i, 'embedpress$1://');
[738] Fix | Delete
[739] Fix | Delete
// Bypass the autolink plugin, avoiding to have some urls with @ being treated as email address (e.g. GMaps)
[740] Fix | Delete
content = content.replace('@', '::__at__::').trim();
[741] Fix | Delete
[742] Fix | Delete
return content;
[743] Fix | Delete
};
[744] Fix | Delete
[745] Fix | Delete
self.decodeEmbedURLSpecialChars = function (content, applyShortcode, attributes) {
[746] Fix | Delete
var encodingRegexpRule = /embedpress(s?):\/\//;
[747] Fix | Delete
applyShortcode = (typeof applyShortcode === 'undefined') ? true : applyShortcode;
[748] Fix | Delete
attributes = (typeof attributes === 'undefined') ? {} : attributes;
[749] Fix | Delete
[750] Fix | Delete
var isEncoded = content.match(encodingRegexpRule);
[751] Fix | Delete
[752] Fix | Delete
// Restore http[s] in the url (converted to bypass autolink plugin)
[753] Fix | Delete
content = content.replace(/embedpress(s?):\/\//, 'http$1://');
[754] Fix | Delete
content = content.replace('::__at__::', '@').trim();
[755] Fix | Delete
[756] Fix | Delete
if ('class' in attributes) {
[757] Fix | Delete
var classesList = attributes.class.split(/\s/g);
[758] Fix | Delete
var shouldRemoveDynamicWidthClass = false;
[759] Fix | Delete
for (var classIndex = 0; classIndex < classesList.length; classIndex++) {
[760] Fix | Delete
if (classesList[classIndex] === 'dynamic-width') {
[761] Fix | Delete
shouldRemoveDynamicWidthClass = classIndex;
[762] Fix | Delete
break;
[763] Fix | Delete
}
[764] Fix | Delete
}
[765] Fix | Delete
[766] Fix | Delete
if (shouldRemoveDynamicWidthClass !== false) {
[767] Fix | Delete
classesList.splice(shouldRemoveDynamicWidthClass, 1);
[768] Fix | Delete
[769] Fix | Delete
if (classesList.length === 0) {
[770] Fix | Delete
delete attributes.class;
[771] Fix | Delete
}
[772] Fix | Delete
[773] Fix | Delete
attributes.class = classesList.join(' ');
[774] Fix | Delete
}
[775] Fix | Delete
[776] Fix | Delete
shouldRemoveDynamicWidthClass = classesList = classIndex = null;
[777] Fix | Delete
}
[778] Fix | Delete
[779] Fix | Delete
if (isEncoded && applyShortcode) {
[780] Fix | Delete
var shortcode = '[' + $data.EMBEDPRESS_SHORTCODE;
[781] Fix | Delete
if (!!Object.keys(attributes).length) {
[782] Fix | Delete
var attrValue;
[783] Fix | Delete
[784] Fix | Delete
for (var attrName in attributes) {
[785] Fix | Delete
attrValue = attributes[attrName];
[786] Fix | Delete
[787] Fix | Delete
// Prevent `class` property being empty an treated as a boolean param
[788] Fix | Delete
if (attrName.toLowerCase() === 'class' && !attrValue.length) {
[789] Fix | Delete
[790] Fix | Delete
} else {
[791] Fix | Delete
if (attrValue.isBoolean()) {
[792] Fix | Delete
shortcode += ' ';
[793] Fix | Delete
if (attrValue.isFalse()) {
[794] Fix | Delete
shortcode += '!';
[795] Fix | Delete
}
[796] Fix | Delete
[797] Fix | Delete
shortcode += attrName;
[798] Fix | Delete
} else {
[799] Fix | Delete
shortcode += ' ' + attrName + '="' + attrValue + '"';
[800] Fix | Delete
}
[801] Fix | Delete
}
[802] Fix | Delete
}
[803] Fix | Delete
attrValue = attrName = null;
[804] Fix | Delete
}
[805] Fix | Delete
[806] Fix | Delete
content = shortcode + ']' + content + '[/' + $data.EMBEDPRESS_SHORTCODE + ']';
[807] Fix | Delete
}
[808] Fix | Delete
[809] Fix | Delete
return content;
[810] Fix | Delete
};
[811] Fix | Delete
[812] Fix | Delete
/**
[813] Fix | Delete
* Method executed after find the editor. It will make additional
[814] Fix | Delete
* configurations and add the content's stylesheets for the preview
[815] Fix | Delete
*
[816] Fix | Delete
* @return void
[817] Fix | Delete
*/
[818] Fix | Delete
self.onFindEditor = function (editorInstance) {
[819] Fix | Delete
self.each = tinymce.each;
[820] Fix | Delete
self.extend = tinymce.extend;
[821] Fix | Delete
self.JSON = tinymce.util.JSON;
[822] Fix | Delete
self.Node = tinymce.html.Node;
[823] Fix | Delete
[824] Fix | Delete
function onFindEditorCallback () {
[825] Fix | Delete
$(window.document.getElementsByTagName('head')[0]).append($('<link rel="stylesheet" type="text/css" href="' + (PLG_SYSTEM_ASSETS_CSS_PATH + '/vendor/bootstrap/bootstrap.min.css?v=' + self.params.versionUID) + '">'));
[826] Fix | Delete
[827] Fix | Delete
self.addStylesheet(PLG_SYSTEM_ASSETS_CSS_PATH + '/font.css?v=' + self.params.versionUID, editorInstance, editorInstance);
[828] Fix | Delete
self.addStylesheet(PLG_SYSTEM_ASSETS_CSS_PATH + '/preview.css?v=' + self.params.versionUID, editorInstance, editorInstance);
[829] Fix | Delete
self.addStylesheet(PLG_CONTENT_ASSETS_CSS_PATH + '/embedpress.css?v=' + self.params.versionUID, editorInstance, editorInstance);
[830] Fix | Delete
self.addEvent('nodechange', editorInstance, self.onNodeChange);
[831] Fix | Delete
self.addEvent('keydown', editorInstance, function (e) {
[832] Fix | Delete
self.onKeyDown(e, editorInstance);
[833] Fix | Delete
});
[834] Fix | Delete
[835] Fix | Delete
var onUndoCallback = function (e) {
[836] Fix | Delete
self.onUndo(e, editorInstance);
[837] Fix | Delete
};
[838] Fix | Delete
[839] Fix | Delete
self.addEvent('undo', editorInstance, onUndoCallback); // TinyMCE
[840] Fix | Delete
self.addEvent('undo', editorInstance.undoManager, onUndoCallback); // JCE
[841] Fix | Delete
[842] Fix | Delete
var doc = editorInstance.getDoc();
[843] Fix | Delete
$(doc).on('mouseenter', '.embedpress_wrapper', function (e) {
[844] Fix | Delete
self.onMouseEnter(e, editorInstance);
[845] Fix | Delete
});
[846] Fix | Delete
$(doc).on('mouseout', '.embedpress_wrapper', self.onMouseOut);
[847] Fix | Delete
$(doc).on('mousedown', '.embedpress_wrapper > .embedpress_controller_panel', function (e) {
[848] Fix | Delete
self.cancelEvent(e, editorInstance);
[849] Fix | Delete
});
[850] Fix | Delete
doc = null;
[851] Fix | Delete
[852] Fix | Delete
// Add the node filter that will convert the url into the preview box for the embed code
[853] Fix | Delete
editorInstance.parser.addNodeFilter('#text', function addNodeFilterIntoParser (nodes, arg) {
[854] Fix | Delete
self.each(nodes, function eachNodeInParser (node) {
[855] Fix | Delete
// Stop if the node is "isolated". It would generate an error in the browser console and break.
[856] Fix | Delete
if (node.parent === null && node.prev === null) {
[857] Fix | Delete
return;
[858] Fix | Delete
}
[859] Fix | Delete
[860] Fix | Delete
var subject = node.value.trim();
[861] Fix | Delete
[862] Fix | Delete
if (!subject.isValidUrl()) {
[863] Fix | Delete
if (!subject.match(SHORTCODE_REGEXP)) {
[864] Fix | Delete
return;
[865] Fix | Delete
}
[866] Fix | Delete
}
[867] Fix | Delete
subject = self.decodeEmbedURLSpecialChars(subject);
[868] Fix | Delete
if (!subject.isValidUrl()) {
[869] Fix | Delete
if (!subject.match(SHORTCODE_REGEXP)) {
[870] Fix | Delete
return;
[871] Fix | Delete
}
[872] Fix | Delete
}
[873] Fix | Delete
[874] Fix | Delete
subject = node.value.stripShortcode($data.EMBEDPRESS_SHORTCODE).trim();
[875] Fix | Delete
[876] Fix | Delete
// These patterns need to have groups for the pre and post texts
[877] Fix | Delete
// @TODO: maybe remove this list of URLs? Let the server side code decide what URL should be parsed
[878] Fix | Delete
var patterns = self.getProvidersURLPatterns();
[879] Fix | Delete
[880] Fix | Delete
(function tryToMatchContentAgainstUrlPatternWithIndex (urlPatternIndex) {
[881] Fix | Delete
if (urlPatternIndex < patterns.length) {
[882] Fix | Delete
var urlPattern = patterns[urlPatternIndex];
[883] Fix | Delete
var urlPatternRegex = new RegExp(urlPattern);
[884] Fix | Delete
[885] Fix | Delete
var url = self.decodeEmbedURLSpecialChars(subject).trim();
[886] Fix | Delete
[887] Fix | Delete
var matches = url.match(urlPatternRegex);
[888] Fix | Delete
// Check if content matches the url pattern.
[889] Fix | Delete
if (matches && matches !== null && !!matches.length) {
[890] Fix | Delete
url = self.encodeEmbedURLSpecialChars(matches[2]);
[891] Fix | Delete
[892] Fix | Delete
var wrapper = self.addURLsPlaceholder(node, url, editorInstance);
[893] Fix | Delete
[894] Fix | Delete
setTimeout(function () {
[895] Fix | Delete
var doc = editorInstance.getDoc();
[896] Fix | Delete
[897] Fix | Delete
if (doc === null) {
[898] Fix | Delete
return;
[899] Fix | Delete
}
[900] Fix | Delete
[901] Fix | Delete
var previewWrapper = $(doc.querySelector('#' + wrapper.attributes.map['id']));
[902] Fix | Delete
var previewWrapperParent = $(previewWrapper.parent());
[903] Fix | Delete
[904] Fix | Delete
if (previewWrapperParent && previewWrapperParent.prop('tagName') && previewWrapperParent.prop('tagName').toUpperCase() === 'P') {
[905] Fix | Delete
previewWrapperParent.replaceWith(previewWrapper);
[906] Fix | Delete
}
[907] Fix | Delete
[908] Fix | Delete
var previewWrapperOlderSibling = previewWrapper.prev();
[909] Fix | Delete
if (previewWrapperOlderSibling && previewWrapperOlderSibling.prop('tagName') && previewWrapperOlderSibling.prop('tagName').toUpperCase() === 'P' && !previewWrapperOlderSibling.html().replace(/\&nbsp\;/i, '').length) {
[910] Fix | Delete
previewWrapperOlderSibling.remove();
[911] Fix | Delete
} else {
[912] Fix | Delete
if (typeof previewWrapperOlderSibling.html() !== 'undefined') {
[913] Fix | Delete
if (previewWrapperOlderSibling.html().match(/<[\/]?br>/)) {
[914] Fix | Delete
if (!previewWrapperOlderSibling.prev().length) {
[915] Fix | Delete
previewWrapperOlderSibling.remove();
[916] Fix | Delete
}
[917] Fix | Delete
}
[918] Fix | Delete
}
[919] Fix | Delete
}
[920] Fix | Delete
[921] Fix | Delete
var previewWrapperYoungerSibling = previewWrapper.next();
[922] Fix | Delete
if (previewWrapperYoungerSibling && previewWrapperYoungerSibling.length && previewWrapperYoungerSibling.prop('tagName').toUpperCase() === 'P') {
[923] Fix | Delete
if (!previewWrapperYoungerSibling.next().length && !previewWrapperYoungerSibling.html().replace(/\&nbsp\;/i, '').length) {
[924] Fix | Delete
previewWrapperYoungerSibling.remove();
[925] Fix | Delete
$('<p>&nbsp;</p>').insertAfter(previewWrapper);
[926] Fix | Delete
}
[927] Fix | Delete
} else {
[928] Fix | Delete
$('<p>&nbsp;</p>').insertAfter(previewWrapper);
[929] Fix | Delete
}
[930] Fix | Delete
[931] Fix | Delete
setTimeout(function () {
[932] Fix | Delete
editorInstance.selection.select(editorInstance.getBody(), true);
[933] Fix | Delete
editorInstance.selection.collapse(false);
[934] Fix | Delete
}, 50);
[935] Fix | Delete
}, 50);
[936] Fix | Delete
} else {
[937] Fix | Delete
// No match. So we move on to check the next url pattern.
[938] Fix | Delete
tryToMatchContentAgainstUrlPatternWithIndex(urlPatternIndex + 1);
[939] Fix | Delete
}
[940] Fix | Delete
}
[941] Fix | Delete
})(0);
[942] Fix | Delete
});
[943] Fix | Delete
});
[944] Fix | Delete
[945] Fix | Delete
// Add the filter that will convert the preview box/embed code back to the raw url
[946] Fix | Delete
editorInstance.serializer.addNodeFilter('div', function addNodeFilterIntoSerializer (nodes, arg) {
[947] Fix | Delete
self.each(nodes, function eachNodeInSerializer (node) {
[948] Fix | Delete
// Stop if the node is "isolated". It would generate an error in the browser console and break.
[949] Fix | Delete
if (node.parent === null && node.prev === null) {
[950] Fix | Delete
return;
[951] Fix | Delete
}
[952] Fix | Delete
[953] Fix | Delete
var nodeClasses = (node.attributes.map.class || '').split(' ');
[954] Fix | Delete
var wrapperFactoryClasses = ['embedpress_wrapper', 'embedpress_placeholder', 'wpview', 'wpview-wrap'];
[955] Fix | Delete
[956] Fix | Delete
var isWrapped = nodeClasses.filter(function (n) {
[957] Fix | Delete
return wrapperFactoryClasses.indexOf(n) != -1;
[958] Fix | Delete
}).length > 0;
[959] Fix | Delete
[960] Fix | Delete
if (isWrapped) {
[961] Fix | Delete
var factoryAttributes = ['id', 'style', 'data-loading-text', 'data-uid', 'data-url'];
[962] Fix | Delete
var customAttributes = {};
[963] Fix | Delete
var dataPrefix = 'data-';
[964] Fix | Delete
for (var attr in node.attributes.map) {
[965] Fix | Delete
if (attr.toLowerCase() !== 'class') {
[966] Fix | Delete
if (factoryAttributes.indexOf(attr) < 0) {
[967] Fix | Delete
// Remove the "data-" prefix for more readability
[968] Fix | Delete
customAttributes[attr.replace(dataPrefix, '')] = node.attributes.map[attr];
[969] Fix | Delete
}
[970] Fix | Delete
} else {
[971] Fix | Delete
var customClasses = [];
[972] Fix | Delete
for (var wrapperClassIndex in nodeClasses) {
[973] Fix | Delete
var wrapperClass = nodeClasses[wrapperClassIndex];
[974] Fix | Delete
if (wrapperFactoryClasses.indexOf(wrapperClass) === -1) {
[975] Fix | Delete
customClasses.push(wrapperClass);
[976] Fix | Delete
}
[977] Fix | Delete
}
[978] Fix | Delete
[979] Fix | Delete
if (!!customClasses.length) {
[980] Fix | Delete
customAttributes.class = customClasses.join(' ');
[981] Fix | Delete
}
[982] Fix | Delete
}
[983] Fix | Delete
}
[984] Fix | Delete
[985] Fix | Delete
var p = new self.Node('p', 1);
[986] Fix | Delete
[987] Fix | Delete
var text = new self.Node('#text', 3);
[988] Fix | Delete
text.value = (node.attributes.map && typeof node.attributes.map['data-url'] != 'undefined') ? self.decodeEmbedURLSpecialChars(node.attributes.map['data-url'].trim(), true, customAttributes) : '';
[989] Fix | Delete
[990] Fix | Delete
p.append(text.clone());
[991] Fix | Delete
[992] Fix | Delete
node.replace(text);
[993] Fix | Delete
text.replace(p);
[994] Fix | Delete
}
[995] Fix | Delete
});
[996] Fix | Delete
});
[997] Fix | Delete
[998] Fix | Delete
editorInstance.serializer.addNodeFilter('p', function addNodeFilterIntoSerializer (nodes, arg) {
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function