/*\r
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.html or http://ckeditor.com/license\r
*/\r
\r
classid : [ { type : ATTRTYPE_OBJECT, name : 'classid' } ],\r
codebase : [ { type : ATTRTYPE_OBJECT, name : 'codebase'} ],\r
pluginspage : [ { type : ATTRTYPE_EMBED, name : 'pluginspage' } ],\r
- src : [ { type : ATTRTYPE_PARAM, name : 'movie' }, { type : ATTRTYPE_EMBED, name : 'src' } ],\r
+ src : [ { type : ATTRTYPE_PARAM, name : 'movie' }, { type : ATTRTYPE_EMBED, name : 'src' }, { type : ATTRTYPE_OBJECT, name : 'data' } ],\r
name : [ { type : ATTRTYPE_EMBED, name : 'name' } ],\r
align : [ { type : ATTRTYPE_OBJECT, name : 'align' } ],\r
- title : [ { type : ATTRTYPE_OBJECT, name : 'title' }, { type : ATTRTYPE_EMBED, name : 'title' } ],\r
'class' : [ { type : ATTRTYPE_OBJECT, name : 'class' }, { type : ATTRTYPE_EMBED, name : 'class'} ],\r
width : [ { type : ATTRTYPE_OBJECT, name : 'width' }, { type : ATTRTYPE_EMBED, name : 'width' } ],\r
height : [ { type : ATTRTYPE_OBJECT, name : 'height' }, { type : ATTRTYPE_EMBED, name : 'height' } ],\r
for ( i = 0 ; i < names.length ; i++ )\r
attributesMap[ names[i] ][0]['default'] = attributesMap[ names[i] ][1]['default'] = true;\r
\r
+ var defaultToPixel = CKEDITOR.tools.cssLength;\r
+\r
function loadValue( objectNode, embedNode, paramMap )\r
{\r
var attributes = attributesMap[ this.id ];\r
switch ( attrDef.type )\r
{\r
case ATTRTYPE_OBJECT:\r
- if ( !objectNode )\r
+ // Avoid applying the data attribute when not needed (#7733)\r
+ if ( !objectNode || ( attrDef.name == 'data' && embedNode && !objectNode.hasAttribute( 'data' ) ) )\r
continue;\r
var value = this.getValue();\r
if ( isRemove || isCheckbox && value === attrDef[ 'default' ] )\r
id : 'width',\r
style : 'width:95px',\r
label : editor.lang.common.width,\r
- validate : CKEDITOR.dialog.validate.integer( editor.lang.common.invalidWidth ),\r
- setup : function( objectNode, embedNode, paramMap, fakeImage )\r
- {\r
- loadValue.apply( this, arguments );\r
- if ( fakeImage )\r
- {\r
- var fakeImageWidth = parseInt( fakeImage.$.style.width, 10 );\r
- if ( !isNaN( fakeImageWidth ) )\r
- this.setValue( fakeImageWidth );\r
- }\r
- },\r
- commit : function( objectNode, embedNode, paramMap, extraStyles )\r
- {\r
- commitValue.apply( this, arguments );\r
- if ( this.getValue() )\r
- extraStyles.width = this.getValue() + 'px';\r
- }\r
+ validate : CKEDITOR.dialog.validate.htmlLength( editor.lang.common.invalidHtmlLength.replace( '%1', editor.lang.common.width ) ),\r
+ setup : loadValue,\r
+ commit : commitValue\r
},\r
{\r
type : 'text',\r
id : 'height',\r
style : 'width:95px',\r
label : editor.lang.common.height,\r
- validate : CKEDITOR.dialog.validate.integer( editor.lang.common.invalidHeight ),\r
- setup : function( objectNode, embedNode, paramMap, fakeImage )\r
- {\r
- loadValue.apply( this, arguments );\r
- if ( fakeImage )\r
- {\r
- var fakeImageHeight = parseInt( fakeImage.$.style.height, 10 );\r
- if ( !isNaN( fakeImageHeight ) )\r
- this.setValue( fakeImageHeight );\r
- }\r
- },\r
- commit : function( objectNode, embedNode, paramMap, extraStyles )\r
- {\r
- commitValue.apply( this, arguments );\r
- if ( this.getValue() )\r
- extraStyles.height = this.getValue() + 'px';\r
- }\r
+ validate : CKEDITOR.dialog.validate.htmlLength( editor.lang.common.invalidHtmlLength.replace( '%1', editor.lang.common.height ) ),\r
+ setup : loadValue,\r
+ commit : commitValue\r
},\r
{\r
type : 'text',\r
[\r
{\r
type : 'hbox',\r
- widths : [ '45%', '55%' ],\r
children :\r
[\r
{\r
label : editor.lang.common.id,\r
setup : loadValue,\r
commit : commitValue\r
- },\r
- {\r
- type : 'text',\r
- id : 'title',\r
- label : editor.lang.common.advisoryTitle,\r
- setup : loadValue,\r
- commit : commitValue\r
}\r
]\r
},\r
{\r
type : 'text',\r
id : 'style',\r
+ validate : CKEDITOR.dialog.validate.inlineStyle( editor.lang.common.invalidInlineStyle ),\r
label : editor.lang.common.cssStyle,\r
setup : loadValue,\r
commit : commitValue\r