blob: 0e175463cb9906c8cf30ceefa3ea0767117c9851 [file] [log] [blame]
/*--------------------------------------:noTabs=true:tabSize=2:indentSize=2:--
-- Xinha (is not htmlArea) - http://xinha.org
--
-- Use of Xinha is granted by the terms of the htmlArea License (based on
-- BSD license) please read license.txt in this package for details.
--
-- Copyright (c) 2005-2008 Xinha Developer Team and contributors
--
-- This is the Xinha standard implementation of an image insertion plugin
--
-- he file is loaded as a special plugin by the Xinha Core when no alternative method (plugin) is loaded.
--
--
-- $HeadURL: http://svn.xinha.org/trunk/modules/InsertImage/insert_image.js $
-- $LastChangedDate: 2018-02-19 20:35:49 +1300 (Mon, 19 Feb 2018) $
-- $LastChangedRevision: 1402 $
-- $LastChangedBy: gogo $
--------------------------------------------------------------------------*/
InsertImage._pluginInfo = {
name : "InsertImage",
origin : "Xinha Core",
version : "$LastChangedRevision: 1402 $".replace(/^[^:]*:\s*(.*)\s*\$$/, '$1'),
developer : "The Xinha Core Developer Team",
developer_url : "$HeadURL: http://svn.xinha.org/trunk/modules/InsertImage/insert_image.js $".replace(/^[^:]*:\s*(.*)\s*\$$/, '$1'),
sponsor : "",
sponsor_url : "",
license : "htmlArea"
};
function InsertImage(editor) {
this.editor = editor;
var cfg = editor.config;
var self = this;
if(typeof editor._insertImage == 'undefined')
{
editor._insertImage = function() { self.show(); };
// editor.config.btnList.insertimage[3] = function() { self.show(); }
}
}
InsertImage.prototype._lc = function(string) {
return Xinha._lc(string, 'InsertImage');
};
InsertImage.prototype.onGenerateOnce = function()
{
InsertImage.loadAssets();
};
InsertImage.loadAssets = function()
{
var self = InsertImage;
if (self.loading) return;
self.loading = true;
Xinha._getback(_editor_url + 'modules/InsertImage/dialog.html', function(getback) { self.html = getback; self.dialogReady = true; });
Xinha._getback(_editor_url + 'modules/InsertImage/pluginMethods.js', function(getback) { eval(getback); self.methodsReady = true; });
};
InsertImage.prototype.onUpdateToolbar = function()
{
if (!(InsertImage.dialogReady && InsertImage.methodsReady))
{
this.editor._toolbarObjects.insertimage.state("enabled", false);
}
else this.onUpdateToolbar = null;
};
InsertImage.prototype.prepareDialog = function()
{
var self = this;
var editor = this.editor;
var dialog = this.dialog = new Xinha.Dialog(editor, InsertImage.html, 'Xinha',{width:410})
// Connect the OK and Cancel buttons
dialog.getElementById('ok').onclick = function() {self.apply();}
dialog.getElementById('cancel').onclick = function() { self.dialog.hide()};
dialog.getElementById('preview').onclick = function() {
var f_url = dialog.getElementById("f_url");
var url = f_url.value;
if (!url) {
alert(dialog._lc("You must enter the URL"));
f_url.focus();
return false;
}
dialog.getElementById('ipreview').src = url;
return false;
}
this.dialog.onresize = function ()
{
var newHeightForPreview =
parseInt(this.height,10)
- this.getElementById('h1').offsetHeight
- this.getElementById('buttons').offsetHeight
- this.getElementById('inputs').offsetHeight
- parseInt(this.rootElem.style.paddingBottom,10); // we have a padding at the bottom, gotta take this into acount
this.getElementById("ipreview").style.height = ((newHeightForPreview > 0) ? newHeightForPreview : 0) + "px"; // no-go beyond 0
this.getElementById("ipreview").style.width = this.width - 2 + 'px'; // and the width
}
this.dialogReady = true;
};