blob: 05acdb020225b9270261e3e56d612a59089a48bf [file] [log] [blame]
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.widget.Editor2Plugin.InsertImageDialog");
dojo.widget.defineWidget(
"dojo.widget.Editor2InsertImageDialog",
dojo.widget.Editor2DialogContent,
{
templatePath: dojo.uri.dojoUri("src/widget/templates/Editor2/Dialog/insertimage.html"),
editableAttributes: ['src', 'alt', 'width', 'height', 'hspace', 'vspace', 'border', 'align'],
loadContent: function(){
var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
this.imageNode = dojo.withGlobal(curInst.window, "getSelectedElement", dojo.html.selection);
if(!this.imageNode){
this.imageNode = dojo.withGlobal(curInst.window, "getAncestorElement", dojo.html.selection, ['img']);
}
var imageAttributes = {};
this.extraAttribText = "";
if(this.imageNode){
var attrs = this.imageNode.attributes;
for(var i=0; i<attrs.length; i++) {
if(dojo.lang.find(this.editableAttributes, attrs[i].name.toLowerCase())>-1){
imageAttributes[attrs[i].name] = attrs[i].value;
}else{
this.extraAttribText += attrs[i].name + '="'+attrs[i].value+'" ';
}
}
}
for(var i=0; i<this.editableAttributes.length; ++i){
name = this.editableAttributes[i];
this["image_"+name].value = (imageAttributes[name] == undefined) ? "" : imageAttributes[name] ;
}
return true;
},
ok: function(){
var curInst = dojo.widget.Editor2Manager.getCurrentInstance();
var insertcmd = curInst.getCommand('inserthtml');
var option = 0;
var attstr='';
for(var i=0; i<this.editableAttributes.length; ++i){
name = this.editableAttributes[i];
var value = this["image_"+name].value;
if(value.length > 0){
attstr += name + '="'+value+'" ';
}
}
if(this.imageNode){
dojo.withGlobal(curInst.window, "selectElement", dojo.html.selection, [this.imageNode]);
}
insertcmd.execute('<img '+attstr+this.extraAttribText+'/>');
this.cancel();
}
});