From 6d4c4f12d15ae68d912972921997a8c5180c9aea Mon Sep 17 00:00:00 2001 From: lsces Date: Mon, 15 Jul 2013 14:22:23 +0100 Subject: Upgrade to CKEditor V4 Directory structure changed so many files removed and replace in a new location This batch is the delete and add --- plugins/sourcedialog/dialogs/sourcedialog.js | 78 ++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 plugins/sourcedialog/dialogs/sourcedialog.js (limited to 'plugins/sourcedialog/dialogs/sourcedialog.js') diff --git a/plugins/sourcedialog/dialogs/sourcedialog.js b/plugins/sourcedialog/dialogs/sourcedialog.js new file mode 100644 index 0000000..81aa7c8 --- /dev/null +++ b/plugins/sourcedialog/dialogs/sourcedialog.js @@ -0,0 +1,78 @@ +/** + * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.html or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'sourcedialog', function( editor ) { + var size = CKEDITOR.document.getWindow().getViewPaneSize(); + + // Make it maximum 800px wide, but still fully visible in the viewport. + var width = Math.min( size.width - 70, 800); + + // Make it use 2/3 of the viewport height. + var height = size.height / 1.5; + + // Store old editor data to avoid unnecessary setData. + var oldData; + + return { + title: editor.lang.sourcedialog.title, + minWidth: 100, + minHeight: 100, + + onShow: function() { + this.setValueOf( 'main', 'data', oldData = editor.getData() ); + }, + + onOk: (function() { + function setData( newData ) { + var that = this; + + editor.setData( newData, function() { + that.hide(); + + // Ensure correct selection. + var range = editor.createRange(); + range.moveToElementEditStart( editor.editable() ); + range.select(); + } ); + } + + return function( event ) { + // Remove CR from input data for reliable comparison with editor data. + var newData = this.getValueOf( 'main', 'data' ).replace( /\r/g, '' ); + + // Avoid unnecessary setData. Also preserve selection + // when user changed his mind and goes back to wysiwyg editing. + if ( newData === oldData ) + return true; + + // Set data asynchronously to avoid errors in IE. + CKEDITOR.env.ie ? + CKEDITOR.tools.setTimeout( setData, 0, this, newData ) + : + setData.call( this, newData ); + + // Don't let the dialog close before setData is over. + return false; + }; + })(), + + contents: [{ + id: 'main', + label: editor.lang.sourcedialog.title, + elements: [{ + type: 'textarea', + type: 'textarea', + id: 'data', + dir: 'ltr', + inputStyle: 'cursor:auto;' + + 'width:' + width + 'px;' + + 'height:' + height + 'px;' + + 'tab-size:4;' + + 'text-align:left;', + 'class': 'cke_source' + }] + }] + }; +}); -- cgit v1.3