mirror of
https://github.com/UnickSoft/graphonline.git
synced 2026-04-17 13:49:59 +00:00
first commit
This commit is contained in:
92
lib/ckeditor4/plugins/maxheight/plugin.js
Executable file
92
lib/ckeditor4/plugins/maxheight/plugin.js
Executable file
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Erideon (Singapore) Private Limited; http://www.erideon.com/
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Lesser General Public License as published by the Free Software Foundation;
|
||||
* either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU Lesser General Public License for more details available from
|
||||
* Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* This header must be retained in all distributed or embedded copies of this code and
|
||||
* reference to www.erideon.com must be made available in derivative works.
|
||||
*/
|
||||
|
||||
(function () {
|
||||
var pluginHandle = 'maxheight';
|
||||
CKEDITOR.plugins.add(pluginHandle, {
|
||||
init: function (oEditor) {
|
||||
// for conveniently referencing the plugin in the init-function
|
||||
var oPlugin = oEditor.plugins[pluginHandle];
|
||||
|
||||
// we choose the DOM-element where we want to put the eventhandler on
|
||||
var eventObject = window;
|
||||
if (navigator.appVersion.indexOf("MSIE 7.") != -1) {
|
||||
// IE7 cannot react on window-events -> use the parent-element
|
||||
eventObject = oEditor.element.$.parentElement;
|
||||
}
|
||||
|
||||
// our resize-functionality
|
||||
var resizeFunction = function () {
|
||||
oPlugin.recalcCKEditorSize(oEditor);
|
||||
};
|
||||
|
||||
// for convenience calls from outside
|
||||
oEditor.maximizeHeightNow = resizeFunction;
|
||||
// window resize events will trigger a CKEditor-resize
|
||||
oPlugin.addEvent(eventObject, 'resize', resizeFunction);
|
||||
|
||||
// do an initial resize at startup - does not work if the editor is not visible!
|
||||
oEditor.on('instanceReady', resizeFunction);
|
||||
},
|
||||
|
||||
recalcCKEditorSize: function (oEditor) {
|
||||
/// <summary>
|
||||
/// recalculate the size of the CKeditor instance
|
||||
/// </summary>
|
||||
/// <param name="oEditor">editor to work with</param>
|
||||
|
||||
// make sure everything is available
|
||||
if (oEditor && oEditor.element && oEditor.container) {
|
||||
// evaluate desired width
|
||||
var curSize = oEditor.getResizable()
|
||||
|
||||
// from width-setting of the container / width-property of ASP.NET control
|
||||
var curWidth = curSize.$.style.width;
|
||||
if (curWidth == '') {
|
||||
// from textarea (style setting on ASP.NET control)
|
||||
curWidth = oEditor.element.$.style.width;
|
||||
if (curWidth == '') {
|
||||
// no definition so far
|
||||
// we assume 100%
|
||||
curWidth = '100%';
|
||||
}
|
||||
}
|
||||
|
||||
// we take height from encapsulating div/body/...
|
||||
oEditor.resize(curWidth, oEditor.container.$.parentElement.offsetHeight, null, false);
|
||||
}
|
||||
},
|
||||
|
||||
addEvent: function (elem, type, eventHandle) {
|
||||
/// <summary>
|
||||
/// handles attaching events cross-browser.
|
||||
/// <see href="http://stackoverflow.com/questions/641857/javascript-window-resize-event" />
|
||||
/// </summary>
|
||||
/// <param name="elem">the object to attach the event on</param>
|
||||
/// <param name="type">name of the event</param>
|
||||
/// <param name="eventHandle">the event handler</param>
|
||||
|
||||
if (elem == null || elem == undefined) return;
|
||||
if (elem.addEventListener) {
|
||||
elem.addEventListener(type, eventHandle, false);
|
||||
} else if (elem.attachEvent) {
|
||||
elem.attachEvent("on" + type, eventHandle);
|
||||
} else {
|
||||
elem["on" + type] = eventHandle;
|
||||
}
|
||||
}
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user