tinymce-editor/copy_this/modules/hdi/hdi-tinymce/tinymce/plugins/link/plugin.min.js
2013-07-25 23:50:43 +02:00

1 line
3.1 KiB
JavaScript
Executable File

tinymce.PluginManager.add("link",function(e){function t(t){return function(){var n=e.settings.link_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):t(n)}}function n(t){function n(){var e=[{text:"None",value:""}];return tinymce.each(t,function(t){e.push({text:t.text||t.title,value:t.value||t.url,menu:t.menu})}),e}function i(t){var n=[{text:"None",value:""}];return tinymce.each(e.settings.rel_list,function(e){n.push({text:e.text||e.title,value:e.value,selected:t===e.value})}),n}function a(t){var n=[{text:"None",value:""}];return e.settings.target_list||n.push({text:"New window",value:"_blank"}),tinymce.each(e.settings.target_list,function(e){n.push({text:e.text||e.title,value:e.value,selected:t===e.value})}),n}function r(){s||0!==f.text.length||this.parent().parent().find("#text")[0].value(this.value())}var o,l,s,c,u,d,m,f={},g=e.selection,h=e.dom;e.focus(),o=g.getNode(),l=h.getParent(o,"a[href]"),l&&g.select(l),f.text=s=g.getContent({format:"text"}),f.href=l?h.getAttrib(l,"href"):"",f.target=l?h.getAttrib(l,"target"):"",f.rel=l?h.getAttrib(l,"rel"):"","IMG"==o.nodeName&&(f.text=s=" "),t&&(u={type:"listbox",label:"Link list",values:n(),onselect:function(e){var t=c.find("#text");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),c.find("#href").value(e.control.value())}}),e.settings.target_list!==!1&&(m={name:"target",type:"listbox",label:"Target",values:a(f.target)}),e.settings.rel_list&&(d={name:"rel",type:"listbox",label:"Rel",values:i(f.rel)}),c=e.windowManager.open({title:"Insert link",data:f,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:r,onkeyup:r},{name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){f.text=this.value()}},u,d,m],onSubmit:function(t){function n(t,n){window.setTimeout(function(){e.windowManager.confirm(t,n)},0)}function i(){a.text!=s?l?(e.focus(),l.innerHTML=a.text,h.setAttribs(l,{href:r,target:a.target?a.target:null,rel:a.rel?a.rel:null}),g.select(l)):e.insertContent(h.createHTML("a",{href:r,target:a.target?a.target:null,rel:a.rel?a.rel:null},a.text)):e.execCommand("mceInsertLink",!1,{href:r,target:a.target,rel:a.rel?a.rel:null})}var a=t.data,r=a.href;return r?r.indexOf("@")>0&&-1==r.indexOf("//")&&-1==r.indexOf("mailto:")?(n("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(e){e&&(r="mailto:"+r),i()}),void 0):/^\s*www\./i.test(r)?(n("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(e){e&&(r="http://"+r),i()}),void 0):(i(),void 0):(e.execCommand("unlink"),void 0)}})}e.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Ctrl+K",onclick:t(n),stateSelector:"a[href]"}),e.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),e.addShortcut("Ctrl+K","",n),this.showDialog=n,e.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Ctrl+K",onclick:t(n),stateSelector:"a[href]",context:"insert",prependToContext:!0})});