Current Path : /var/www/alh/admin/view/journal2/lib/ckeditor/plugins/sourcedialog/dialogs/ |
Current File : /var/www/alh/admin/view/journal2/lib/ckeditor/plugins/sourcedialog/dialogs/sourcedialog.js |
/** * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md 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( dialog, newData ) { // [IE8] Focus editor before setting selection to avoid setting data on // locked selection, because in case of inline editor, it won't be // unlocked before editable's HTML is altered. (#11585) editor.focus(); editor.setData( newData, function() { dialog.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, '' ), that = this; // Avoid unnecessary setData. Also preserve selection // when user changed his mind and goes back to wysiwyg editing. if ( newData === oldData ) return true; setTimeout( function() { setData( that, newData ); } ); // Don't let the dialog close before setData is over, to hide // from user blinking caused by selection restoring and setting new data. return false; }; } )(), contents: [ { id: 'main', label: editor.lang.sourcedialog.title, elements: [ { type: 'textarea', id: 'data', dir: 'ltr', inputStyle: 'cursor:auto;' + 'width:' + width + 'px;' + 'height:' + height + 'px;' + 'tab-size:4;' + 'text-align:left;', 'class': 'cke_source' } ] } ] }; } );