JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.5.4
[ckeditor.git] / _source / plugins / clipboard / dialogs / paste.js
index e0813ec..9a659ed 100644 (file)
@@ -66,85 +66,7 @@ CKEDITOR.dialog.add( 'paste', function( editor )
                        // inserted iframe editable. (#3366)\r
                        this.parts.dialog.$.offsetHeight;\r
 \r
-                       var htmlToLoad =\r
-                               '<html dir="' + editor.config.contentsLangDirection + '"' +\r
-                               ' lang="' + ( editor.config.contentsLanguage || editor.langCode ) + '">' +\r
-                                       '<head><style>body { margin: 3px; height: 95%; } </style></head><body>' +\r
-                                       '<script id="cke_actscrpt" type="text/javascript">' +\r
-                                       'window.parent.CKEDITOR.tools.callFunction( ' + CKEDITOR.tools.addFunction( onPasteFrameLoad, this ) + ', this );' +\r
-                                       '</script></body>' +\r
-                               '</html>';\r
-\r
-                       var src =\r
-                               CKEDITOR.env.air ?\r
-                                       'javascript:void(0)' :\r
-                               isCustomDomain ?\r
-                                       'javascript:void((function(){' +\r
-                                               'document.open();' +\r
-                                               'document.domain=\'' + document.domain + '\';' +\r
-                                               'document.close();' +\r
-                                               '})())"'\r
-                               :\r
-                                       '';\r
-\r
-                       var iframe = CKEDITOR.dom.element.createFromHtml(\r
-                                               '<iframe' +\r
-                                               ' class="cke_pasteframe"' +\r
-                                               ' frameborder="0" ' +\r
-                                               ' allowTransparency="true"' +\r
-                                               ' src="' + src + '"' +\r
-                                               ' role="region"' +\r
-                                               ' aria-label="' + lang.pasteArea + '"' +\r
-                                               ' aria-describedby="' + this.getContentElement( 'general', 'pasteMsg' ).domId + '"' +\r
-                                               ' aria-multiple="true"' +\r
-                                               '></iframe>' );\r
-\r
-                       iframe.on( 'load', function( e )\r
-                               {\r
-                                       e.removeListener();\r
-\r
-                                       var doc = iframe.getFrameDocument();\r
-                                       doc.write( htmlToLoad );\r
-\r
-                                       if ( CKEDITOR.env.air )\r
-                                               onPasteFrameLoad.call( this, doc.getWindow().$ );\r
-                               },\r
-                               this );\r
-\r
-                       iframe.setCustomData( 'dialog', this );\r
-\r
-                       var field = this.getContentElement( 'general', 'editing_area' ),\r
-                               container = field.getElement();\r
-                       container.setHtml( '' );\r
-                       container.append( iframe );\r
-\r
-                       // IE need a redirect on focus to make\r
-                       // the cursor blinking inside iframe. (#5461)\r
-                       if ( CKEDITOR.env.ie )\r
-                       {\r
-                               var focusGrabber = CKEDITOR.dom.element.createFromHtml( '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' );\r
-                               focusGrabber.on( 'focus', function()\r
-                               {\r
-                                       iframe.$.contentWindow.focus();\r
-                               });\r
-                               container.append( focusGrabber );\r
-\r
-                               // Override focus handler on field.\r
-                               field.focus = function()\r
-                               {\r
-                                       focusGrabber.focus();\r
-                                       this.fire( 'focus' );\r
-                               };\r
-                       }\r
-\r
-                       field.getInputElement = function(){ return iframe; };\r
-\r
-                       // Force container to scale in IE.\r
-                       if ( CKEDITOR.env.ie )\r
-                       {\r
-                               container.setStyle( 'display', 'block' );\r
-                               container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' );\r
-                       }\r
+                       this.setupContent();\r
                },\r
 \r
                onHide : function()\r
@@ -161,20 +83,7 @@ CKEDITOR.dialog.add( 'paste', function( editor )
 \r
                onOk : function()\r
                {\r
-                       var container = this.getContentElement( 'general', 'editing_area' ).getElement(),\r
-                               iframe = container.getElementsByTag( 'iframe' ).getItem( 0 ),\r
-                               editor = this.getParentEditor(),\r
-                               body = iframe.getFrameDocument().getBody(),\r
-                               bogus = body.getBogus(),\r
-                               html;\r
-                       bogus && bogus.remove();\r
-                       // Saving the contents in variable so changes until paste is complete will not take place (#7500)\r
-                       html = body.getHtml();\r
-\r
-                       setTimeout( function(){\r
-                               editor.fire( 'paste', { 'html' : html } );\r
-                       }, 0 );\r
-\r
+                       this.commitContent();\r
                },\r
 \r
                contents : [\r
@@ -208,6 +117,103 @@ CKEDITOR.dialog.add( 'paste', function( editor )
                                                        {\r
                                                                win.focus();\r
                                                        }, 500 );\r
+                                               },\r
+                                               setup : function()\r
+                                               {\r
+                                                       var dialog = this.getDialog();\r
+                                                       var htmlToLoad =\r
+                                                               '<html dir="' + editor.config.contentsLangDirection + '"' +\r
+                                                               ' lang="' + ( editor.config.contentsLanguage || editor.langCode ) + '">' +\r
+                                                               '<head><style>body { margin: 3px; height: 95%; } </style></head><body>' +\r
+                                                               '<script id="cke_actscrpt" type="text/javascript">' +\r
+                                                               'window.parent.CKEDITOR.tools.callFunction( ' + CKEDITOR.tools.addFunction( onPasteFrameLoad, dialog ) + ', this );' +\r
+                                                               '</script></body>' +\r
+                                                               '</html>';\r
+\r
+                                                       var src =\r
+                                                               CKEDITOR.env.air ?\r
+                                                                       'javascript:void(0)' :\r
+                                                               isCustomDomain ?\r
+                                                                       'javascript:void((function(){' +\r
+                                                                               'document.open();' +\r
+                                                                               'document.domain=\'' + document.domain + '\';' +\r
+                                                                               'document.close();' +\r
+                                                                       '})())"'\r
+                                                               :\r
+                                                                       '';\r
+\r
+                                                       var iframe = CKEDITOR.dom.element.createFromHtml(\r
+                                                               '<iframe' +\r
+                                                                       ' class="cke_pasteframe"' +\r
+                                                                       ' frameborder="0" ' +\r
+                                                                       ' allowTransparency="true"' +\r
+                                                                       ' src="' + src + '"' +\r
+                                                                       ' role="region"' +\r
+                                                                       ' aria-label="' + lang.pasteArea + '"' +\r
+                                                                       ' aria-describedby="' + dialog.getContentElement( 'general', 'pasteMsg' ).domId + '"' +\r
+                                                                       ' aria-multiple="true"' +\r
+                                                                       '></iframe>' );\r
+\r
+                                                       iframe.on( 'load', function( e )\r
+                                                       {\r
+                                                               e.removeListener();\r
+\r
+                                                               var doc = iframe.getFrameDocument();\r
+                                                               doc.write( htmlToLoad );\r
+\r
+                                                               if ( CKEDITOR.env.air )\r
+                                                                       onPasteFrameLoad.call( this, doc.getWindow().$ );\r
+                                                       }, dialog );\r
+\r
+                                                       iframe.setCustomData( 'dialog', dialog );\r
+\r
+                                                       var container = this.getElement();\r
+                                                       container.setHtml( '' );\r
+                                                       container.append( iframe );\r
+\r
+                                                       // IE need a redirect on focus to make\r
+                                                       // the cursor blinking inside iframe. (#5461)\r
+                                                       if ( CKEDITOR.env.ie )\r
+                                                       {\r
+                                                               var focusGrabber = CKEDITOR.dom.element.createFromHtml( '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' );\r
+                                                               focusGrabber.on( 'focus', function()\r
+                                                               {\r
+                                                                       iframe.$.contentWindow.focus();\r
+                                                               });\r
+                                                               container.append( focusGrabber );\r
+\r
+                                                               // Override focus handler on field.\r
+                                                               this.focus = function()\r
+                                                               {\r
+                                                                       focusGrabber.focus();\r
+                                                                       this.fire( 'focus' );\r
+                                                               };\r
+                                                       }\r
+\r
+                                                       this.getInputElement = function(){ return iframe; };\r
+\r
+                                                       // Force container to scale in IE.\r
+                                                       if ( CKEDITOR.env.ie )\r
+                                                       {\r
+                                                               container.setStyle( 'display', 'block' );\r
+                                                               container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' );\r
+                                                       }\r
+                                               },\r
+                                               commit : function( data )\r
+                                               {\r
+                                                       var container = this.getElement(),\r
+                                                               editor = this.getDialog().getParentEditor(),\r
+                                                               body = this.getInputElement().getFrameDocument().getBody(),\r
+                                                               bogus = body.getBogus(),\r
+                                                               html;\r
+                                                       bogus && bogus.remove();\r
+\r
+                                                       // Saving the contents so changes until paste is complete will not take place (#7500)\r
+                                                       html = body.getHtml();\r
+\r
+                                                       setTimeout( function(){\r
+                                                               editor.fire( 'paste', { 'html' : html } );\r
+                                                       }, 0 );\r
                                                }\r
                                        }\r
                                ]\r