diff options
| author | lsces <lester@lsces.co.uk> | 2014-06-07 07:55:00 +0100 |
|---|---|---|
| committer | lsces <lester@lsces.co.uk> | 2014-06-07 07:55:00 +0100 |
| commit | df3b0a2f728f40b3a7cd7b9c8466027d70e34898 (patch) | |
| tree | 92fefc3c23f4fe388b7a1eb22e66aaf4e9045a75 /plugins/clipboard/dialogs | |
| parent | 090bb311ef748e4503645ebe6de881dcede15620 (diff) | |
| download | ckeditor-df3b0a2f728f40b3a7cd7b9c8466027d70e34898.tar.gz ckeditor-df3b0a2f728f40b3a7cd7b9c8466027d70e34898.tar.bz2 ckeditor-df3b0a2f728f40b3a7cd7b9c8466027d70e34898.zip | |
Upgrade to version 4.3
Diffstat (limited to 'plugins/clipboard/dialogs')
| -rwxr-xr-x[-rw-r--r--] | plugins/clipboard/dialogs/paste.js | 239 |
1 files changed, 11 insertions, 228 deletions
diff --git a/plugins/clipboard/dialogs/paste.js b/plugins/clipboard/dialogs/paste.js index 892c6c3..0c7e256 100644..100755 --- a/plugins/clipboard/dialogs/paste.js +++ b/plugins/clipboard/dialogs/paste.js @@ -1,228 +1,11 @@ -/**
- * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.html or http://ckeditor.com/license
- */
-
-CKEDITOR.dialog.add( 'paste', function( editor ) {
- var lang = editor.lang.clipboard;
-
- function onPasteFrameLoad( win ) {
- var doc = new CKEDITOR.dom.document( win.document ),
- body = doc.getBody(),
- script = doc.getById( 'cke_actscrpt' );
-
- script && script.remove();
-
- body.setAttribute( 'contenteditable', true );
-
- // IE before version 8 will leave cursor blinking inside the document after
- // editor blurred unless we clean up the selection. (#4716)
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 ) {
- doc.getWindow().on( 'blur', function() {
- doc.$.selection.empty();
- });
- }
-
- doc.on( 'keydown', function( e ) {
- var domEvent = e.data,
- key = domEvent.getKeystroke(),
- processed;
-
- switch ( key ) {
- case 27:
- this.hide();
- processed = 1;
- break;
-
- case 9:
- case CKEDITOR.SHIFT + 9:
- this.changeFocus( 1 );
- processed = 1;
- }
-
- processed && domEvent.preventDefault();
- }, this );
-
- editor.fire( 'ariaWidget', new CKEDITOR.dom.element( win.frameElement ) );
-
- // Handle pending focus.
- if ( doc.getWindow().getFrame().removeCustomData( 'pendingFocus' ) )
- body.focus();
- }
-
- // If pasteDialogCommit wasn't canceled by e.g. editor.getClipboardData
- // then fire paste event.
- // Do not use editor#paste, because it would start from beforePaste event.
- editor.on( 'pasteDialogCommit', function( evt ) {
- if ( evt.data )
- editor.fire( 'paste', { type: 'auto', dataValue: evt.data } );
- }, null, null, 1000 );
-
- return {
- title: lang.title,
-
- minWidth: CKEDITOR.env.ie && CKEDITOR.env.quirks ? 370 : 350,
- minHeight: CKEDITOR.env.quirks ? 250 : 245,
- onShow: function() {
- // FIREFOX BUG: Force the browser to render the dialog to make the to-be-
- // inserted iframe editable. (#3366)
- this.parts.dialog.$.offsetHeight;
-
- this.setupContent();
-
- // Set dialog title to the custom value (set e.g. in editor.openDialog callback) and reset this value.
- // If custom title not set, use default one.
- this.parts.title.setHtml( this.customTitle || lang.title );
- this.customTitle = null;
- },
-
- onLoad: function() {
- if ( ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) && editor.lang.dir == 'rtl' )
- this.parts.contents.setStyle( 'overflow', 'hidden' );
- },
-
- onOk: function() {
- this.commitContent();
- },
-
- contents: [
- {
- id: 'general',
- label: editor.lang.common.generalTab,
- elements: [
- {
- type: 'html',
- id: 'securityMsg',
- html: '<div style="white-space:normal;width:340px">' + lang.securityMsg + '</div>'
- },
- {
- type: 'html',
- id: 'pasteMsg',
- html: '<div style="white-space:normal;width:340px">' + lang.pasteMsg + '</div>'
- },
- {
- type: 'html',
- id: 'editing_area',
- style: 'width:100%;height:100%',
- html: '',
- focus: function() {
- var iframe = this.getInputElement(),
- doc = iframe.getFrameDocument(),
- body = doc.getBody();
-
- // Frame content may not loaded at the moment.
- if ( !body || body.isReadOnly() )
- iframe.setCustomData( 'pendingFocus', 1 );
- else
- body.focus();
- },
- setup: function() {
- var dialog = this.getDialog();
- var htmlToLoad = '<html dir="' + editor.config.contentsLangDirection + '"' +
- ' lang="' + ( editor.config.contentsLanguage || editor.langCode ) + '">' +
- '<head><style>body{margin:3px;height:95%}</style></head><body>' +
- '<script id="cke_actscrpt" type="text/javascript">' +
- 'window.parent.CKEDITOR.tools.callFunction(' + CKEDITOR.tools.addFunction( onPasteFrameLoad, dialog ) + ',this);' +
- '</script></body>' +
- '</html>';
-
- var src =
- CKEDITOR.env.air ?
- 'javascript:void(0)' :
- CKEDITOR.env.ie ?
- 'javascript:void((function(){' + encodeURIComponent(
- 'document.open();' +
- '(' + CKEDITOR.tools.fixDomain + ')();' +
- 'document.close();'
- ) + '})())"'
- : '';
-
- var iframe = CKEDITOR.dom.element.createFromHtml( '<iframe' +
- ' class="cke_pasteframe"' +
- ' frameborder="0" ' +
- ' allowTransparency="true"' +
- ' src="' + src + '"' +
- ' role="region"' +
- ' aria-label="' + lang.pasteArea + '"' +
- ' aria-describedby="' + dialog.getContentElement( 'general', 'pasteMsg' ).domId + '"' +
- ' aria-multiple="true"' +
- '></iframe>' );
-
- iframe.on( 'load', function( e ) {
- e.removeListener();
-
- var doc = iframe.getFrameDocument();
- doc.write( htmlToLoad );
-
- editor.focusManager.add( doc.getBody() );
-
- if ( CKEDITOR.env.air )
- onPasteFrameLoad.call( this, doc.getWindow().$ );
- }, dialog );
-
- iframe.setCustomData( 'dialog', dialog );
-
- var container = this.getElement();
- container.setHtml( '' );
- container.append( iframe );
-
- // IE need a redirect on focus to make
- // the cursor blinking inside iframe. (#5461)
- if ( CKEDITOR.env.ie ) {
- var focusGrabber = CKEDITOR.dom.element.createFromHtml( '<span tabindex="-1" style="position:absolute" role="presentation"></span>' );
- focusGrabber.on( 'focus', function() {
- // Since fixDomain is called in src attribute,
- // IE needs some slight delay to correctly move focus.
- setTimeout( function() {
- iframe.$.contentWindow.focus();
- } );
- } );
- container.append( focusGrabber );
-
- // Override focus handler on field.
- this.focus = function() {
- focusGrabber.focus();
- this.fire( 'focus' );
- };
- }
-
- this.getInputElement = function() {
- return iframe;
- };
-
- // Force container to scale in IE.
- if ( CKEDITOR.env.ie ) {
- container.setStyle( 'display', 'block' );
- container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' );
- }
- },
- commit: function( data ) {
- var editor = this.getDialog().getParentEditor(),
- body = this.getInputElement().getFrameDocument().getBody(),
- bogus = body.getBogus(),
- html;
- bogus && bogus.remove();
-
- // Saving the contents so changes until paste is complete will not take place (#7500)
- html = body.getHtml();
-
- // Opera needs some time to think about what has happened and what it should do now.
- setTimeout( function() {
- editor.fire( 'pasteDialogCommit', html );
- }, 0 );
- }
- }
- ]
- }
- ]
- };
-});
-
-/**
- * Internal event to pass paste dialog's data to the listeners.
- *
- * @private
- * @event pasteDialogCommit
- * @member CKEDITOR.editor
- * @param {CKEDITOR.editor} editor This editor instance.
- */
+/* + Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("paste",function(c){function h(a){var b=new CKEDITOR.dom.document(a.document),f=b.getBody(),d=b.getById("cke_actscrpt");d&&d.remove();f.setAttribute("contenteditable",!0);if(CKEDITOR.env.ie&&8>CKEDITOR.env.version)b.getWindow().on("blur",function(){b.$.selection.empty()});b.on("keydown",function(a){var a=a.data,b;switch(a.getKeystroke()){case 27:this.hide();b=1;break;case 9:case CKEDITOR.SHIFT+9:this.changeFocus(1),b=1}b&&a.preventDefault()},this);c.fire("ariaWidget",new CKEDITOR.dom.element(a.frameElement)); +b.getWindow().getFrame().removeCustomData("pendingFocus")&&f.focus()}var e=c.lang.clipboard;c.on("pasteDialogCommit",function(a){a.data&&c.fire("paste",{type:"auto",dataValue:a.data})},null,null,1E3);return{title:e.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?370:350,minHeight:CKEDITOR.env.quirks?250:245,onShow:function(){this.parts.dialog.$.offsetHeight;this.setupContent();this.parts.title.setHtml(this.customTitle||e.title);this.customTitle=null},onLoad:function(){(CKEDITOR.env.ie7Compat|| +CKEDITOR.env.ie6Compat)&&"rtl"==c.lang.dir&&this.parts.contents.setStyle("overflow","hidden")},onOk:function(){this.commitContent()},contents:[{id:"general",label:c.lang.common.generalTab,elements:[{type:"html",id:"securityMsg",html:'<div style="white-space:normal;width:340px">'+e.securityMsg+"</div>"},{type:"html",id:"pasteMsg",html:'<div style="white-space:normal;width:340px">'+e.pasteMsg+"</div>"},{type:"html",id:"editing_area",style:"width:100%;height:100%",html:"",focus:function(){var a=this.getInputElement(), +b=a.getFrameDocument().getBody();!b||b.isReadOnly()?a.setCustomData("pendingFocus",1):b.focus()},setup:function(){var a=this.getDialog(),b='<html dir="'+c.config.contentsLangDirection+'" lang="'+(c.config.contentsLanguage||c.langCode)+'"><head><style>body{margin:3px;height:95%}</style></head><body><script id="cke_actscrpt" type="text/javascript">window.parent.CKEDITOR.tools.callFunction('+CKEDITOR.tools.addFunction(h,a)+",this);<\/script></body></html>",f=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie? +"javascript:void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+'})())"':"",d=CKEDITOR.dom.element.createFromHtml('<iframe class="cke_pasteframe" frameborder="0" allowTransparency="true" src="'+f+'" role="region" aria-label="'+e.pasteArea+'" aria-describedby="'+a.getContentElement("general","pasteMsg").domId+'" aria-multiple="true"></iframe>');d.on("load",function(a){a.removeListener();a=d.getFrameDocument();a.write(b);c.focusManager.add(a.getBody()); +CKEDITOR.env.air&&h.call(this,a.getWindow().$)},a);d.setCustomData("dialog",a);a=this.getElement();a.setHtml("");a.append(d);if(CKEDITOR.env.ie){var g=CKEDITOR.dom.element.createFromHtml('<span tabindex="-1" style="position:absolute" role="presentation"></span>');g.on("focus",function(){setTimeout(function(){d.$.contentWindow.focus()})});a.append(g);this.focus=function(){g.focus();this.fire("focus")}}this.getInputElement=function(){return d};CKEDITOR.env.ie&&(a.setStyle("display","block"),a.setStyle("height", +d.$.offsetHeight+2+"px"))},commit:function(){var a=this.getDialog().getParentEditor(),b=this.getInputElement().getFrameDocument().getBody(),c=b.getBogus(),d;c&&c.remove();d=b.getHtml();setTimeout(function(){a.fire("pasteDialogCommit",d)},0)}}]}]}});
\ No newline at end of file |
