blob: 29886106009dba96d93fb003f849860ab1e2db23 [file] [log] [blame]
dojo.provide("dojo.widget.Editor2Plugin.CreateLinkDialog");
dojo.widget.defineWidget("dojo.widget.Editor2CreateLinkDialog",dojo.widget.Editor2DialogContent,{templateString:"<table>\n<tr><td>URL</td><td> <input type=\"text\" dojoAttachPoint=\"link_href\" name=\"dojo_createLink_href\"/></td></tr>\n<tr><td>Target </td><td><select dojoAttachPoint=\"link_target\">\n\t<option value=\"\">Self</option>\n\t<option value=\"_blank\">New Window</option>\n\t<option value=\"_top\">Top Window</option>\n\t</select></td></tr>\n<tr><td>Class </td><td><input type=\"text\" dojoAttachPoint=\"link_class\" /></td></tr>\n<tr><td colspan=\"2\">\n\t<table><tr>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:ok'>OK</button></td>\n\t<td><button dojoType='Button' dojoAttachEvent='onClick:cancel'>Cancel</button></td>\n\t</tr></table>\n\t</td></tr>\n</table>\n",editableAttributes:["href","target","class"],loadContent:function(){
var _1=dojo.widget.Editor2Manager.getCurrentInstance();
_1.saveSelection();
this.linkNode=dojo.withGlobal(_1.window,"getAncestorElement",dojo.html.selection,["a"]);
var _2={};
this.extraAttribText="";
if(this.linkNode){
var _3=this.linkNode.attributes;
for(var i=0;i<_3.length;i++){
if(dojo.lang.find(this.editableAttributes,_3[i].name.toLowerCase())>-1){
_2[_3[i].name]=_3[i].value;
}else{
if(_3[i].specified==undefined||_3[i].specified){
this.extraAttribText+=_3[i].name+"=\""+_3[i].value+"\" ";
}
}
}
}else{
var _5=dojo.withGlobal(_1.window,"getSelectedText",dojo.html.selection);
if(_5==null||_5.length==0){
alert("Please select some text to create a link.");
return false;
}
}
for(var i=0;i<this.editableAttributes.length;++i){
name=this.editableAttributes[i];
this["link_"+name].value=(_2[name]==undefined)?"":_2[name];
}
return true;
},ok:function(){
var _6=dojo.widget.Editor2Manager.getCurrentInstance();
_6.restoreSelection();
if(!this.linkNode){
var _7=dojo.withGlobal(_6.window,"getSelectedHtml",dojo.html.selection);
}else{
var _7=this.linkNode.innerHTML;
dojo.withGlobal(_6.window,"selectElement",dojo.html.selection,[this.linkNode]);
}
var _8="";
for(var i=0;i<this.editableAttributes.length;++i){
name=this.editableAttributes[i];
var _a=this["link_"+name].value;
if(_a.length>0){
_8+=name+"=\""+_a+"\" ";
}
}
_6.execCommand("inserthtml","<a "+_8+this.extraAttribText+">"+_7+"</a>");
this.cancel();
}});