mirror of
https://github.com/UnickSoft/graphonline.git
synced 2026-04-22 16:09:58 +00:00
first commit
This commit is contained in:
103
lib/ckeditor4/plugins/resizewithwindow/plugin.js
Executable file
103
lib/ckeditor4/plugins/resizewithwindow/plugin.js
Executable file
@@ -0,0 +1,103 @@
|
||||
/**
|
||||
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
|
||||
* For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
/**
|
||||
* @fileOverview The "resizewithwindow" plugin is an alternative to the 'resize' plugin.
|
||||
* Managing the ckeditor height through a percentage of a window does not work.
|
||||
* This plugin provides an alternative.
|
||||
*
|
||||
* The plugin 'resize' must be disabled for this plugin to work correctly.
|
||||
*
|
||||
* Also you need to add the following css to your css files:
|
||||
* .cke_chrome {
|
||||
* padding: 0 !important;
|
||||
* }
|
||||
* Otherwise the height of the ckeditor content is not calculated correctly.
|
||||
* That is a point of improvement.
|
||||
*
|
||||
* Currently only tested with the Kama skin.
|
||||
*/
|
||||
|
||||
CKEDITOR.plugins.add( 'resizewithwindow', {
|
||||
init: function( editor ) {
|
||||
var baseEditorInnerGrey;
|
||||
|
||||
editor.on( 'instanceReady', function() {
|
||||
jQuery( function() {
|
||||
jQuery( window ).resize( function() {
|
||||
resizeTriggered();
|
||||
});
|
||||
resizeTriggered();
|
||||
})
|
||||
});
|
||||
|
||||
editor.on( 'afterCommandExec', function( ev ) {
|
||||
if (ev.data.name == 'toolbarCollapse' || ev.data.name == 'maximize' || ev.data.name == 'source') {
|
||||
resizeTriggered();
|
||||
}
|
||||
});
|
||||
|
||||
editor.on( 'dataReady', function( ev ) {
|
||||
resizeTriggered();
|
||||
});
|
||||
|
||||
editor.on( 'triggerResize', function( ev ) {
|
||||
resizeTriggered();
|
||||
});
|
||||
|
||||
/**
|
||||
* Resizes editor components that in the vertical direction that do not
|
||||
* do so automatically.
|
||||
*/
|
||||
function resizeTriggered() {
|
||||
var maximizestate = editor.getCommand( 'maximize' ).state;
|
||||
var referencedheight = 50;
|
||||
|
||||
if ( maximizestate == CKEDITOR.TRISTATE_ON ) {
|
||||
referencedheight = jQuery( window ).height();
|
||||
} else {
|
||||
var textarea = editor.element.$;
|
||||
var editorFrame = jQuery( textarea ).parents( "div:first" );
|
||||
baseEditorInnerGrey = jQuery( ".cke_inner", editorFrame );
|
||||
referencedheight = editorFrame.height();
|
||||
}
|
||||
|
||||
var content = jQuery( ".cke_contents", baseEditorInnerGrey );
|
||||
var toolbar = jQuery( ".cke_top", baseEditorInnerGrey );
|
||||
|
||||
// Browser quirks: this correction prevents a vertical scroll bar in the window.
|
||||
var extraheightCorrection = 8;
|
||||
var htmlStyle = document.documentElement.style;
|
||||
|
||||
if ( 'MozAppearance' in htmlStyle ) {
|
||||
extraheightCorrection = 11;
|
||||
}
|
||||
if ( 'WebkitAppearance' in htmlStyle ) {
|
||||
extraheightCorrection = 12;
|
||||
}
|
||||
if ( 'behavior' in htmlStyle || '-ms-scroll-limit' in htmlStyle ) {
|
||||
extraheightCorrection = 10;
|
||||
}
|
||||
baseEditorInnerGrey.height( referencedheight - extraheightCorrection );
|
||||
|
||||
var toolbarHeight = toolbar.outerHeight( true );
|
||||
// The text area height depends on the enabling of the charcount plugin.
|
||||
// Correct the height of the text area in java script because css does not work.
|
||||
var heightCorrection = 13;
|
||||
if ( editor.config.extraPlugins.indexOf( 'wordcount' ) > -1 ) {
|
||||
var wordcount = jQuery( ".cke_bottom", baseEditorInnerGrey );
|
||||
heightCorrection = wordcount.outerHeight( true );
|
||||
// Extra height correction is needed on the content component.
|
||||
// Otherwise the characters of the wordcount component will not
|
||||
// stay within the grey (in case of the kama skin) background
|
||||
// component.
|
||||
heightCorrection += 7;
|
||||
}
|
||||
var newHeight = referencedheight - ( toolbarHeight + heightCorrection );
|
||||
content.height( newHeight + "px" );
|
||||
content.find('iframe:first').width( "100%" );
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user