2 Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
3 For licensing, see LICENSE.md or http://ckeditor.com/license
5 (function(){CKEDITOR
.dialog
.add("link",function(c
){function t(a
,b
){var c
=a
.createRange();c
.setStartBefore(b
);c
.setEndAfter(b
);return c
}var n
=CKEDITOR
.plugins
.link
,q
,r=function(){var a
=this.getDialog(),b
=a
.getContentElement("target","popupFeatures"),a
=a
.getContentElement("target","linkTargetName"),p
=this.getValue();if(b
&&a
)switch(b
=b
.getElement(),b
.hide(),a
.setValue(""),p
){case "frame":a
.setLabel(c
.lang
.link
.targetFrameName
);a
.getElement().show();break;case "popup":b
.show();a
.setLabel(c
.lang
.link
.targetPopupName
);
6 a
.getElement().show();break;default:a
.setValue(p
),a
.getElement().hide()}},l=function(a
){a
.target
&&this.setValue(a
.target
[this.id
]||"")},e=function(a
){a
.advanced
&&this.setValue(a
.advanced
[this.id
]||"")},k=function(a
){a
.target
||(a
.target
={});a
.target
[this.id
]=this.getValue()||""},m=function(a
){a
.advanced
||(a
.advanced
={});a
.advanced
[this.id
]=this.getValue()||""},g
=c
.lang
.common
,b
=c
.lang
.link
,d
;return{title:b
.title
,minWidth:"moono-lisa"==(CKEDITOR
.skinName
||c
.config
.skin
)?450:350,minHeight:240,contents:[{id:"info",
7 label:b
.info
,title:b
.info
,elements:[{type:"text",id:"linkDisplayText",label:b
.displayText
,setup:function(){this.enable();this.setValue(c
.getSelection().getSelectedText());q
=this.getValue()},commit:function(a
){a
.linkText
=this.isEnabled()?this.getValue():""}},{id:"linkType",type:"select",label:b
.type
,"default":"url",items:[[b
.toUrl
,"url"],[b
.toAnchor
,"anchor"],[b
.toEmail
,"email"]],onChange:function(){var a
=this.getDialog(),b
=["urlOptions","anchorOptions","emailOptions"],p
=this.getValue(),f
=a
.definition
.getContents("upload"),
8 f
=f
&&f
.hidden
;"url"==p
?(c
.config
.linkShowTargetTab
&&a
.showPage("target"),f
||a
.showPage("upload")):(a
.hidePage("target"),f
||a
.hidePage("upload"));for(f
=0;f
<b
.length
;f
++){var h
=a
.getContentElement("info",b
[f
]);h
&&(h
=h
.getElement().getParent().getParent(),b
[f
]==p
+"Options"?h
.show():h
.hide())}a
.layout()},setup:function(a
){this.setValue(a
.type
||"url")},commit:function(a
){a
.type
=this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",
9 label:g
.protocol
,"default":"http://",items:[["http://","http://"],["https://","https://"],["ftp://","ftp://"],["news://","news://"],[b
.other
,""]],setup:function(a
){a
.url
&&this.setValue(a
.url
.protocol
||"")},commit:function(a
){a
.url
||(a
.url
={});a
.url
.protocol
=this.getValue()}},{type:"text",id:"url",label:g
.url
,required:!0,onLoad:function(){this.allowOnChange
=!0},onKeyUp:function(){this.allowOnChange
=!1;var a
=this.getDialog().getContentElement("info","protocol"),b
=this.getValue(),c
=/^((javascript:)|[#\/\.\?])/i,
10 f
=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b
);f
?(this.setValue(b
.substr(f
[0].length
)),a
.setValue(f
[0].toLowerCase())):c
.test(b
)&&a
.setValue("");this.allowOnChange
=!0},onChange:function(){if(this.allowOnChange
)this.onKeyUp()},validate:function(){var a
=this.getDialog();return a
.getContentElement("info","linkType")&&"url"!=a
.getValueOf("info","linkType")?!0:!c
.config
.linkJavaScriptLinksAllowed
&&/javascript\:/.test(this.getValue())?(alert(g
.invalidValue
),!1):this.getDialog().fakeObj
?!0:CKEDITOR
.dialog
.validate
.notEmpty(b
.noUrl
).apply(this)},
11 setup:function(a
){this.allowOnChange
=!1;a
.url
&&this.setValue(a
.url
.url
);this.allowOnChange
=!0},commit:function(a
){this.onChange();a
.url
||(a
.url
={});a
.url
.url
=this.getValue();this.allowOnChange
=!1}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button",id:"browse",hidden:"true",filebrowser:"info:url",label:g
.browseServer
}]},{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",
12 label:b
.selectAnchor
,setup:function(){d
=n
.getEditorAnchors(c
);this.getElement()[d
&&d
.length
?"show":"hide"]()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b
.anchorName
,style:"width: 100%;",items:[[""]],setup:function(a
){this.clear();this.add("");if(d
)for(var b
=0;b
<d
.length
;b
++)d
[b
].name
&&this.add(d
[b
].name
);a
.anchor
&&this.setValue(a
.anchor
.name
);(a
=this.getDialog().getContentElement("info","linkType"))&&"email"==a
.getValue()&&this.focus()},commit:function(a
){a
.anchor
||
13 (a
.anchor
={});a
.anchor
.name
=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b
.anchorId
,style:"width: 100%;",items:[[""]],setup:function(a
){this.clear();this.add("");if(d
)for(var b
=0;b
<d
.length
;b
++)d
[b
].id
&&this.add(d
[b
].id
);a
.anchor
&&this.setValue(a
.anchor
.id
)},commit:function(a
){a
.anchor
||(a
.anchor
={});a
.anchor
.id
=this.getValue()}}],setup:function(){this.getElement()[d
&&d
.length
?"show":"hide"]()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'\x3cdiv role\x3d"note" tabIndex\x3d"-1"\x3e'+
14 CKEDITOR
.tools
.htmlEncode(b
.noAnchors
)+"\x3c/div\x3e",focus:!0,setup:function(){this.getElement()[d
&&d
.length
?"hide":"show"]()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",id:"emailAddress",label:b
.emailAddress
,required:!0,validate:function(){var a
=this.getDialog();return a
.getContentElement("info","linkType")&&"email"==a
.getValueOf("info","linkType")?CKEDITOR
.dialog
.validate
.notEmpty(b
.noEmail
).apply(this):
15 !0},setup:function(a
){a
.email
&&this.setValue(a
.email
.address
);(a
=this.getDialog().getContentElement("info","linkType"))&&"email"==a
.getValue()&&this.select()},commit:function(a
){a
.email
||(a
.email
={});a
.email
.address
=this.getValue()}},{type:"text",id:"emailSubject",label:b
.emailSubject
,setup:function(a
){a
.email
&&this.setValue(a
.email
.subject
)},commit:function(a
){a
.email
||(a
.email
={});a
.email
.subject
=this.getValue()}},{type:"textarea",id:"emailBody",label:b
.emailBody
,rows:3,"default":"",setup:function(a
){a
.email
&&
16 this.setValue(a
.email
.body
)},commit:function(a
){a
.email
||(a
.email
={});a
.email
.body
=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b
.target
,title:b
.target
,elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:g
.target
,"default":"notSet",style:"width : 100%;",items:[[g
.notSet
,"notSet"],[b
.targetFrame
,"frame"],[b
.targetPopup
,"popup"],[g
.targetNew
,
17 "_blank"],[g
.targetTop
,"_top"],[g
.targetSelf
,"_self"],[g
.targetParent
,"_parent"]],onChange:r
,setup:function(a
){a
.target
&&this.setValue(a
.target
.type
||"notSet");r
.call(this)},commit:function(a
){a
.target
||(a
.target
={});a
.target
.type
=this.getValue()}},{type:"text",id:"linkTargetName",label:b
.targetFrameName
,"default":"",setup:function(a
){a
.target
&&this.setValue(a
.target
.name
)},commit:function(a
){a
.target
||(a
.target
={});a
.target
.name
=this.getValue().replace(/([^\x00-\x7F]|\s)/gi,"")}}]},{type:"vbox",
18 width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b
.popupFeatures
,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b
.popupResizable
,setup:l
,commit:k
},{type:"checkbox",id:"status",label:b
.popupStatusBar
,setup:l
,commit:k
}]},{type:"hbox",children:[{type:"checkbox",id:"location",label:b
.popupLocationBar
,setup:l
,commit:k
},{type:"checkbox",id:"toolbar",label:b
.popupToolbar
,setup:l
,commit:k
}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",
19 label:b
.popupMenuBar
,setup:l
,commit:k
},{type:"checkbox",id:"fullscreen",label:b
.popupFullScreen
,setup:l
,commit:k
}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b
.popupScrollBars
,setup:l
,commit:k
},{type:"checkbox",id:"dependent",label:b
.popupDependent
,setup:l
,commit:k
}]},{type:"hbox",children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:g
.width
,id:"width",setup:l
,commit:k
},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b
.popupLeft
,id:"left",
20 setup:l
,commit:k
}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:g
.height
,id:"height",setup:l
,commit:k
},{type:"text",labelLayout:"horizontal",label:b
.popupTop
,widths:["50%","50%"],id:"top",setup:l
,commit:k
}]}]}]}]},{id:"upload",label:b
.upload
,title:b
.upload
,hidden:!0,filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:g
.upload
,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:g
.uploadSubmit
,filebrowser:"info:url","for":["upload",
21 "upload"]}]},{id:"advanced",label:b
.advanced
,title:b
.advanced
,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b
.id
,setup:e
,commit:m
},{type:"select",id:"advLangDir",requiredContent:"a[dir]",label:b
.langDir
,"default":"",style:"width:110px",items:[[g
.notSet
,""],[b
.langDirLTR
,"ltr"],[b
.langDirRTL
,"rtl"]],setup:e
,commit:m
},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b
.acccessKey
,
22 maxLength:1,setup:e
,commit:m
}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b
.name
,id:"advName",requiredContent:"a[name]",setup:e
,commit:m
},{type:"text",label:b
.langCode
,id:"advLangCode",requiredContent:"a[lang]",width:"110px","default":"",setup:e
,commit:m
},{type:"text",label:b
.tabIndex
,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:e
,commit:m
}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b
.advisoryTitle
,
23 requiredContent:"a[title]","default":"",id:"advTitle",setup:e
,commit:m
},{type:"text",label:b
.advisoryContentType
,requiredContent:"a[type]","default":"",id:"advContentType",setup:e
,commit:m
}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b
.cssClasses
,requiredContent:"a(cke-xyz)","default":"",id:"advCSSClasses",setup:e
,commit:m
},{type:"text",label:b
.charset
,requiredContent:"a[charset]","default":"",id:"advCharset",setup:e
,commit:m
}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",
24 label:b
.rel
,requiredContent:"a[rel]","default":"",id:"advRel",setup:e
,commit:m
},{type:"text",label:b
.styles
,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR
.dialog
.validate
.inlineStyle(c
.lang
.common
.invalidInlineStyle
),setup:e
,commit:m
}]},{type:"hbox",widths:["45%","55%"],children:[{type:"checkbox",id:"download",requiredContent:"a[download]",label:b
.download
,setup:function(a
){void 0!==a
.download
&&this.setValue("checked","checked")},commit:function(a
){this.getValue()&&(a
.download
=
25 this.getValue())}}]}]}]}],onShow:function(){var a
=this.getParentEditor(),b
=a
.getSelection(),c
=this.getContentElement("info","linkDisplayText").getElement().getParent().getParent(),f
=n
.getSelectedLink(a
,!0),h
=f
[0]||null;h
&&h
.hasAttribute("href")&&(b
.getSelectedElement()||b
.isInTable()||b
.selectElement(h
));b
=n
.parseLinkAttributes(a
,h
);1>=f
.length
&&n
.showDisplayTextForElement(h
,a
)?c
.show():c
.hide();this._
.selectedElements
=f
;this.setupContent(b
)},onOk:function(){var a
={};this.commitContent(a
);if(this._
.selectedElements
.length
){var b
=
26 this._
.selectedElements
,g
=n
.getLinkAttributes(c
,a
),f
=[],h
,d
,l
,e
,k
;for(k
=0;k
<b
.length
;k
++){h
=b
[k
];d
=h
.data("cke-saved-href");l
=h
.getHtml();h
.setAttributes(g
.set);h
.removeAttributes(g
.removed
);if(a
.linkText
&&q
!=a
.linkText
)e
=a
.linkText
;else if(d
==l
||"email"==a
.type
&&-1!=l
.indexOf("@"))e
="email"==a
.type
?a
.email
.address:g
.set["data-cke-saved-href"];e
&&h
.setText(e
);f
.push(t(c
,h
))}c
.getSelection().selectRanges(f
);delete this._
.selectedElements
}else{b
=n
.getLinkAttributes(c
,a
);g
=c
.getSelection().getRanges();
27 f
=new CKEDITOR
.style({element:"a",attributes:b
.set});h
=[];f
.type
=CKEDITOR
.STYLE_INLINE
;for(l
=0;l
<g
.length
;l
++){d
=g
[l
];d
.collapsed
?(e
=new CKEDITOR
.dom
.text(a
.linkText
||("email"==a
.type
?a
.email
.address:b
.set["data-cke-saved-href"]),c
.document
),d
.insertNode(e
),d
.selectNodeContents(e
)):q
!==a
.linkText
&&(e
=new CKEDITOR
.dom
.text(a
.linkText
,c
.document
),d
.shrink(CKEDITOR
.SHRINK_TEXT
),c
.editable().extractHtmlFromRange(d
),d
.insertNode(e
));e
=d
._find("a");for(k
=0;k
<e
.length
;k
++)e
[k
].remove(!0);f
.applyToRange(d
,
28 c
);h
.push(d
)}c
.getSelection().selectRanges(h
)}},onLoad:function(){c
.config
.linkShowAdvancedTab
||this.hidePage("advanced");c
.config
.linkShowTargetTab
||this.hidePage("target")},onFocus:function(){var a
=this.getContentElement("info","linkType");a
&&"url"==a
.getValue()&&(a
=this.getContentElement("info","url"),a
.select())}}})})();