JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.2.1
[ckeditor.git] / _source / plugins / flash / dialogs / flash.js
index 4af379f..666d3c8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -173,7 +173,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                var makeObjectTag = !editor.config.flashEmbedTagOnly,\r
                        makeEmbedTag = editor.config.flashAddEmbedTag || editor.config.flashEmbedTagOnly;\r
 \r
-               var previewAreaHtml = '<div>' + CKEDITOR.tools.htmlEncode( editor.lang.image.preview ) +'<br>' +\r
+               var previewPreloader,\r
+                       previewAreaHtml = '<div>' + CKEDITOR.tools.htmlEncode( editor.lang.common.preview ) +'<br>' +\r
                        '<div id="FlashPreviewLoader" style="display:none"><div class="loading">&nbsp;</div></div>' +\r
                        '<div id="FlashPreviewBox"></div></div>';\r
 \r
@@ -185,6 +186,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                        {\r
                                // Clear previously saved elements.\r
                                this.fakeImage = this.objectNode = this.embedNode = null;\r
+                               previewPreloader = new CKEDITOR.dom.element( 'embeded', editor.document );\r
 \r
                                // Try to detect any embed or object tag that has Flash parameters.\r
                                var fakeImage = this.getSelectedElement();\r
@@ -263,12 +265,15 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                paramMap[ paramList.getItem( i ).getAttribute( 'name' ) ] = paramList.getItem( i );\r
                                }\r
 \r
-                               // Apply or remove flash parameters.\r
-                               var extraStyles = {};\r
-                               this.commitContent( objectNode, embedNode, paramMap, extraStyles );\r
+                               // A subset of the specified attributes/styles\r
+                               // should also be applied on the fake element to\r
+                               // have better visual effect. (#5240)\r
+                               var extraStyles = {}, extraAttributes = {};\r
+                               this.commitContent( objectNode, embedNode, paramMap, extraStyles, extraAttributes );\r
 \r
                                // Refresh the fake image.\r
                                var newFakeImage = editor.createFakeElement( objectNode || embedNode, 'cke_flash', 'flash', true );\r
+                               newFakeImage.setAttributes( extraAttributes );\r
                                newFakeImage.setStyles( extraStyles );\r
                                if ( this.fakeImage )\r
                                {\r
@@ -298,10 +303,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                        children :\r
                                                        [\r
                                                                {\r
-                                                                       type : 'html',\r
-                                                                       html : '<span>' + CKEDITOR.tools.htmlEncode( editor.lang.image.url ) + '</span>'\r
-                                                               },\r
-                                                               {\r
                                                                        type : 'hbox',\r
                                                                        widths : [ '280px', '110px' ],\r
                                                                        align : 'right',\r
@@ -310,7 +311,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                                                {\r
                                                                                        id : 'src',\r
                                                                                        type : 'text',\r
-                                                                                       label : '',\r
+                                                                                       label : editor.lang.common.url,\r
+                                                                                       required : true,\r
                                                                                        validate : CKEDITOR.dialog.validate.notEmpty( editor.lang.flash.validateSrc ),\r
                                                                                        setup : loadValue,\r
                                                                                        commit : commitValue,\r
@@ -318,9 +320,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                                                        {\r
                                                                                                var dialog = this.getDialog(),\r
                                                                                                updatePreview = function( src ){\r
-\r
+                                                                                                       // Query the preloader to figure out the url impacted by based href.\r
+                                                                                                       previewPreloader.setAttribute( 'src', src );\r
                                                                                                        dialog.preview.setHtml( '<embed height="100%" width="100%" src="'\r
-                                                                                                               + CKEDITOR.tools.htmlEncode( src )\r
+                                                                                                               + CKEDITOR.tools.htmlEncode( previewPreloader.getAttribute( 'src' ) )\r
                                                                                                                + '" type="application/x-shockwave-flash"></embed>' );\r
                                                                                                };\r
                                                                                                // Preview element\r
@@ -344,7 +347,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                                                        id : 'browse',\r
                                                                                        filebrowser : 'info:src',\r
                                                                                        hidden : true,\r
-                                                                                       align : 'center',\r
+                                                                                       // v-align with the 'src' field.\r
+                                                                                       // TODO: We need something better than a fixed size here.\r
+                                                                                       style : 'display:inline-block;margin-top:10px;',\r
                                                                                        label : editor.lang.common.browseServer\r
                                                                                }\r
                                                                        ]\r
@@ -559,18 +564,23 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                                        items :\r
                                                                        [\r
                                                                                [ editor.lang.common.notSet , ''],\r
-                                                                               [ editor.lang.image.alignLeft , 'left'],\r
-                                                                               [ editor.lang.image.alignAbsBottom , 'absBottom'],\r
-                                                                               [ editor.lang.image.alignAbsMiddle , 'absMiddle'],\r
-                                                                               [ editor.lang.image.alignBaseline , 'baseline'],\r
-                                                                               [ editor.lang.image.alignBottom , 'bottom'],\r
-                                                                               [ editor.lang.image.alignMiddle , 'middle'],\r
-                                                                               [ editor.lang.image.alignRight , 'right'],\r
-                                                                               [ editor.lang.image.alignTextTop , 'textTop'],\r
-                                                                               [ editor.lang.image.alignTop , 'top']\r
+                                                                               [ editor.lang.flash.alignLeft , 'left'],\r
+                                                                               [ editor.lang.flash.alignAbsBottom , 'absBottom'],\r
+                                                                               [ editor.lang.flash.alignAbsMiddle , 'absMiddle'],\r
+                                                                               [ editor.lang.flash.alignBaseline , 'baseline'],\r
+                                                                               [ editor.lang.flash.alignBottom , 'bottom'],\r
+                                                                               [ editor.lang.flash.alignMiddle , 'middle'],\r
+                                                                               [ editor.lang.flash.alignRight , 'right'],\r
+                                                                               [ editor.lang.flash.alignTextTop , 'textTop'],\r
+                                                                               [ editor.lang.flash.alignTop , 'top']\r
                                                                        ],\r
                                                                        setup : loadValue,\r
-                                                                       commit : commitValue\r
+                                                                       commit : function( objectNode, embedNode, paramMap, extraStyles, extraAttributes )\r
+                                                                       {\r
+                                                                               var value = this.getValue();\r
+                                                                               commitValue.apply( this, arguments );\r
+                                                                               value && ( extraAttributes.align = value );\r
+                                                                       }\r
                                                                },\r
                                                                {\r
                                                                        type : 'html',\r
@@ -579,45 +589,48 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                        ]\r
                                                },\r
                                                {\r
-                                                       type : 'vbox',\r
-                                                       padding : 0,\r
+                                                       type : 'fieldset',\r
+                                                       label : CKEDITOR.tools.htmlEncode( editor.lang.flash.flashvars ),\r
                                                        children :\r
                                                        [\r
                                                                {\r
-                                                                       type : 'html',\r
-                                                                       html : CKEDITOR.tools.htmlEncode( editor.lang.flash.flashvars )\r
-                                                               },\r
-                                                               {\r
-                                                                       type : 'checkbox',\r
-                                                                       id : 'menu',\r
-                                                                       label : editor.lang.flash.chkMenu,\r
-                                                                       'default' : true,\r
-                                                                       setup : loadValue,\r
-                                                                       commit : commitValue\r
-                                                               },\r
-                                                               {\r
-                                                                       type : 'checkbox',\r
-                                                                       id : 'play',\r
-                                                                       label : editor.lang.flash.chkPlay,\r
-                                                                       'default' : true,\r
-                                                                       setup : loadValue,\r
-                                                                       commit : commitValue\r
-                                                               },\r
-                                                               {\r
-                                                                       type : 'checkbox',\r
-                                                                       id : 'loop',\r
-                                                                       label : editor.lang.flash.chkLoop,\r
-                                                                       'default' : true,\r
-                                                                       setup : loadValue,\r
-                                                                       commit : commitValue\r
-                                                               },\r
-                                                               {\r
-                                                                       type : 'checkbox',\r
-                                                                       id : 'allowFullScreen',\r
-                                                                       label : editor.lang.flash.chkFull,\r
-                                                                       'default' : true,\r
-                                                                       setup : loadValue,\r
-                                                                       commit : commitValue\r
+                                                                       type : 'vbox',\r
+                                                                       padding : 0,\r
+                                                                       children :\r
+                                                                       [\r
+                                                                               {\r
+                                                                                       type : 'checkbox',\r
+                                                                                       id : 'menu',\r
+                                                                                       label : editor.lang.flash.chkMenu,\r
+                                                                                       'default' : true,\r
+                                                                                       setup : loadValue,\r
+                                                                                       commit : commitValue\r
+                                                                               },\r
+                                                                               {\r
+                                                                                       type : 'checkbox',\r
+                                                                                       id : 'play',\r
+                                                                                       label : editor.lang.flash.chkPlay,\r
+                                                                                       'default' : true,\r
+                                                                                       setup : loadValue,\r
+                                                                                       commit : commitValue\r
+                                                                               },\r
+                                                                               {\r
+                                                                                       type : 'checkbox',\r
+                                                                                       id : 'loop',\r
+                                                                                       label : editor.lang.flash.chkLoop,\r
+                                                                                       'default' : true,\r
+                                                                                       setup : loadValue,\r
+                                                                                       commit : commitValue\r
+                                                                               },\r
+                                                                               {\r
+                                                                                       type : 'checkbox',\r
+                                                                                       id : 'allowFullScreen',\r
+                                                                                       label : editor.lang.flash.chkFull,\r
+                                                                                       'default' : true,\r
+                                                                                       setup : loadValue,\r
+                                                                                       commit : commitValue\r
+                                                                               }\r
+                                                                       ]\r
                                                                }\r
                                                        ]\r
                                                }\r