X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/8f374b7233bc2815ccc387e448d208c5434eb961..refs/tags/wordpress-3.7:/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js diff --git a/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js b/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js index a0d4ef2a..517ef486 100644 --- a/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js +++ b/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js @@ -28,6 +28,10 @@ ["Audio"] ]; + function normalizeSize(size) { + return typeof(size) == "string" ? size.replace(/[^0-9%]/g, '') : size; + } + function toArray(obj) { var undef, out, i; @@ -258,8 +262,8 @@ 'data-mce-json' : JSON.serialize(data, "'") }); - img.width = data.width || (data.type == 'audio' ? "300" : "320"); - img.height = data.height || (data.type == 'audio' ? "32" : "240"); + img.width = data.width = normalizeSize(data.width || (data.type == 'audio' ? "300" : "320")); + img.height = data.height = normalizeSize(data.height || (data.type == 'audio' ? "32" : "240")); return img; }, @@ -378,7 +382,7 @@ data = JSON.parse(data); typeItem = this.getType(node.attr('class')); - style = node.attr('data-mce-style') + style = node.attr('data-mce-style'); if (!style) { style = node.attr('style'); @@ -386,6 +390,10 @@ style = editor.dom.serializeStyle(editor.dom.parseStyle(style, 'img')); } + // Use node width/height to override the data width/height when the placeholder is resized + data.width = node.attr('width') || data.width; + data.height = node.attr('height') || data.height; + // Handle iframe if (typeItem.name === 'Iframe') { replacement = new Node('iframe', 1); @@ -430,12 +438,12 @@ } // Add HTML5 video element - if (typeItem.name === 'Video' && data.video.sources[0]) { + if (typeItem.name === 'Video' && data.video.sources && data.video.sources[0]) { // Create new object element video = new Node('video', 1).attr(tinymce.extend({ id : node.attr('id'), - width: node.attr('width'), - height: node.attr('height'), + width: normalizeSize(node.attr('width')), + height: normalizeSize(node.attr('height')), style : style }, data.video.attrs)); @@ -469,12 +477,12 @@ } // Add HTML5 audio element - if (typeItem.name === 'Audio' && data.video.sources[0]) { + if (typeItem.name === 'Audio' && data.video.sources && data.video.sources[0]) { // Create new object element audio = new Node('audio', 1).attr(tinymce.extend({ id : node.attr('id'), - width: node.attr('width'), - height: node.attr('height'), + width: normalizeSize(node.attr('width')), + height: normalizeSize(node.attr('height')), style : style }, data.video.attrs)); @@ -502,8 +510,8 @@ embed.shortEnded = true; embed.attr({ id: node.attr('id'), - width: node.attr('width'), - height: node.attr('height'), + width: normalizeSize(node.attr('width')), + height: normalizeSize(node.attr('height')), style : style, type: node.attr('type') }); @@ -531,8 +539,8 @@ // Create new object element object = new Node('object', 1).attr({ id : node.attr('id'), - width: node.attr('width'), - height: node.attr('height'), + width: normalizeSize(node.attr('width')), + height: normalizeSize(node.attr('height')), style : style }); @@ -567,17 +575,16 @@ type: typeItem.mimes[0] }); } else { - object.attr({ - classid: "clsid:" + typeItem.clsids[0], - codebase: typeItem.codebase - }); + if ( typeItem.clsids ) + object.attr('clsid', typeItem.clsids[0]); + object.attr('codebase', typeItem.codebase); embed = new Node('embed', 1); embed.shortEnded = true; embed.attr({ id: node.attr('id'), - width: node.attr('width'), - height: node.attr('height'), + width: normalizeSize(node.attr('width')), + height: normalizeSize(node.attr('height')), style : style, type: typeItem.mimes[0] }); @@ -793,8 +800,8 @@ if (iframe) { // Get width/height - width = iframe.attr('width'); - height = iframe.attr('height'); + width = normalizeSize(iframe.attr('width')); + height = normalizeSize(iframe.attr('height')); style = style || iframe.attr('style'); id = iframe.attr('id'); hspace = iframe.attr('hspace');