ImageManager/image-manager.js
Summary
The ImageManager plugin javascript.
This plugin implements a client side image manager and editor.
Version: $Id: image-manager.js 26 2004-03-31 02:35:21Z Wei Zhuo $
Author: $Author: Wei Zhuo $
, Yermo Lamers http://www.formvista.com (unified backend modifications)
ImageManager._pluginInfo =
{
name : "ImageManager",
version : "1.0",
developer : "Xiang Wei Zhuo",
developer_url : "http://www.zhuo.org/htmlarea/",
license : "htmlArea"
};
HTMLArea.Config.prototype.ImageManager =
{
'backend' : _editor_backend + ( _editor_backend.match(/.*\?.*/) ? "&" : "?" ) + '__plugin=ImageManager&',
'images_url' : _editor_url + 'examples/images'
}
function ImageManager(editor)
{
this.editor = editor;
this.ddt = new DDT( editor._textArea + ":ImageManager Plugin" );
this.ddt._ddt( "image-manager.js","86", "ImageManager(): constructor" );
};
HTMLArea.prototype._insertImage = function(image)
{
this.ddt._ddt( "image-manager.js","107", "_insertImage(): top" );
var editor = this; // for nested functions
var outparam = null;
if (typeof image == "undefined")
{
this.ddt._ddt( "image-manager.js","114", "_insertImage(): no image." );
image = this.getParentElement();
if (image && !/^img$/i.test(image.tagName))
{
this.ddt._ddt( "image-manager.js","119", "_insertImage(): setting image to null" );
image = null;
}
}
if ( image )
{
if ( HTMLArea.is_ie )
{
var image_src = image.src;
}
else
{
var image_src = image.getAttribute("src");
var images_url = editor.config.ImageManager.images_url.replace( /https?:\/\/[^\/]*/, "" );
var image_regex = new RegExp( images_url );
image_src = image_src.replace( image_regex, "" );
this.ddt._ddt( "image-manager.js","148", "_insertImage(): new source is " + image_src );
}
outparam =
{
f_url : HTMLArea.is_ie ? image.src : image_src,
f_alt : image.alt,
f_border : image.border,
f_align : image.align,
f_vert : image.vspace,
f_horiz : image.hspace,
f_width : image.width,
f_height : image.height
};
} // end of if we selected an image before raising the dialog.
this.ddt._ddt( "image-manager.js","170", "_insertImage(): backend is '" + editor.config.ImageManager.backend + "'" );
var manager = editor.config.ImageManager.backend + '__function=manager';
Dialog( manager,
function(param)
{
var ddt = editor.plugins[ 'ImageManager'].instance.ddt;
ddt._ddt( "image-manager.js","195", "Dialog() parm: top" );
if (!param)
{ // user must have pressed Cancel
return false;
}
var img = image;
if (!img)
{
var sel = editor._getSelection();
var range = editor._createRange(sel);
ddt._ddt( "image-manager.js","215", "_insertImage(): no image. invoking browser insertImage execCommand" );
editor._doc.execCommand("insertimage", false, param.f_url);
if (HTMLArea.is_ie)
{
img = range.parentElement();
if (img.tagName.toLowerCase() != "img")
{
img = img.previousSibling;
}
}
else
{
img = range.startContainer.previousSibling;
if ( img == null )
{
ddt._ddt( "image-manager.js","251", "_insertImage(): previousSibling is NULL. Checking firstChild" );
if (( range.startContainer.firstChild != null ) && ( range.startContainer.firstChild.nodeName == "IMG" ))
{
ddt._ddt( "image-manager.js","255", "_insertImage(): Found image under firstChild. Beginning of document?" );
img = range.startContainer.firstChild;
}
else if (( range.startContainer.nextSibling != null ) && ( range.startContainer.nextSibling.nodeName == "IMG" ))
{
ddt._ddt( "image-manager.js","261", "_insertImage(): Found image under nextSibling. end of document?" );
img = range.startContainer.nextSibling;
}
else
{
alert( "INTERNAL ERROR - was unable to locate the newly inserted image object. The HTML in the document may be out of whack." );
return false
}
}
}
}
else
{
img.src = param.f_url;
}
ddt._ddt( "image-manager.js","277", "_insertImage(): before switch type of img is '" + typeof img + "'" );
for (field in param)
{
var value = param[field];
switch (field)
{
case "f_alt" : img.alt = value; break;
case "f_border" : img.border = parseInt(value || "0"); break;
case "f_align" : img.align = value; break;
case "f_vert" : img.vspace = parseInt(value || "0"); break;
case "f_horiz" : img.hspace = parseInt(value || "0"); break;
case "f_width" : img.width = parseInt(value || "0"); break;
case "f_height" : img.height = parseInt(value || "0"); break;
}
}
ddt._ddt( "image-manager.js","295", "end of Dialog() parm function" );
}, outparam, editor); // end of Dialog() parm.
}; // end of _insertImage();
Documentation generated by
JSDoc on Mon Jun 13 20:27:40 2005