Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
kohinos-tav
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
6
Merge Requests
6
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
agplv3
kohinos-tav
Commits
1d58427b
Commit
1d58427b
authored
Jan 10, 2025
by
Damien Moulard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add link plugin to ckeditor
parent
7f1c5e1b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
0 deletions
+41
-0
anchor.js
public/build/ckeditor/plugins/link/dialogs/anchor.js
+10
-0
link.js
public/build/ckeditor/plugins/link/dialogs/link.js
+31
-0
anchor.png
public/build/ckeditor/plugins/link/images/anchor.png
+0
-0
anchor.png
public/build/ckeditor/plugins/link/images/hidpi/anchor.png
+0
-0
No files found.
public/build/ckeditor/plugins/link/dialogs/anchor.js
0 → 100644
View file @
1d58427b
/*
Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model.
*/
CKEDITOR
.
dialog
.
add
(
"anchor"
,
function
(
c
){
function
f
(
b
,
a
){
return
b
.
createFakeElement
(
b
.
document
.
createElement
(
"a"
,{
attributes
:
a
}),
"cke_anchor"
,
"anchor"
)}
return
{
title
:
c
.
lang
.
link
.
anchor
.
title
,
minWidth
:
300
,
minHeight
:
60
,
getModel
:
function
(
b
){
var
a
=
b
.
getSelection
();
b
=
a
.
getRanges
()[
0
];
a
=
a
.
getSelectedElement
();
b
.
shrink
(
CKEDITOR
.
SHRINK_ELEMENT
);(
a
=
b
.
getEnclosedNode
())
&&
a
.
type
===
CKEDITOR
.
NODE_TEXT
&&
(
a
=
a
.
getParent
());
a
&&!
a
.
is
(
"a"
)
&&
(
a
=
a
.
getAscendant
(
"a"
)
||
a
);
b
=
a
&&
a
.
type
===
CKEDITOR
.
NODE_ELEMENT
&&
(
"anchor"
===
a
.
data
(
"cke-real-element-type"
)
||
a
.
is
(
"a"
))?
a
:
void
0
;
return
b
||
null
},
onOk
:
function
(){
var
b
=
CKEDITOR
.
tools
.
trim
(
this
.
getValueOf
(
"info"
,
"txtName"
)),
b
=
{
id
:
b
,
name
:
b
,
"data-cke-saved-name"
:
b
},
a
=
this
.
getModel
(
c
);
if
(
a
)
a
.
data
(
"cke-realelement"
)?(
b
=
f
(
c
,
b
),
b
.
replace
(
a
),
CKEDITOR
.
env
.
ie
&&
c
.
getSelection
().
selectElement
(
b
)):
a
.
setAttributes
(
b
);
else
if
(
a
=
(
a
=
c
.
getSelection
())
&&
a
.
getRanges
()[
0
],
a
.
collapsed
)
b
=
f
(
c
,
b
),
a
.
insertNode
(
b
);
else
{
CKEDITOR
.
env
.
ie
&&
9
>
CKEDITOR
.
env
.
version
&&
(
b
[
"class"
]
=
"cke_anchor"
);
var
d
=
a
.
clone
();
d
.
enlarge
(
CKEDITOR
.
ENLARGE_ELEMENT
);
for
(
var
e
=
new
CKEDITOR
.
dom
.
walker
(
d
),
d
=
d
.
collapsed
?
d
.
startContainer
:
e
.
next
(),
g
=
a
.
createBookmark
();
d
;)
d
.
type
===
CKEDITOR
.
NODE_ELEMENT
&&
d
.
getAttribute
(
"data-cke-saved-name"
)
&&
(
d
.
remove
(
!
0
),
e
.
reset
()),
d
=
e
.
next
();
a
.
moveToBookmark
(
g
);
b
=
new
CKEDITOR
.
style
({
element
:
"a"
,
attributes
:
b
});
b
.
type
=
CKEDITOR
.
STYLE_INLINE
;
b
.
applyToRange
(
a
)}},
onShow
:
function
(){
var
b
=
c
.
getSelection
(),
a
=
this
.
getModel
(
c
),
d
=
a
&&
a
.
data
(
"cke-realelement"
);
if
(
a
=
d
?
CKEDITOR
.
plugins
.
link
.
tryRestoreFakeAnchor
(
c
,
a
):
CKEDITOR
.
plugins
.
link
.
getSelectedLink
(
c
)){
var
e
=
a
.
data
(
"cke-saved-name"
);
this
.
setValueOf
(
"info"
,
"txtName"
,
e
||
""
);
!
d
&&
b
.
selectElement
(
a
)}
this
.
getContentElement
(
"info"
,
"txtName"
).
focus
()},
contents
:[{
id
:
"info"
,
label
:
c
.
lang
.
link
.
anchor
.
title
,
accessKey
:
"I"
,
elements
:[{
type
:
"text"
,
id
:
"txtName"
,
label
:
c
.
lang
.
link
.
anchor
.
name
,
required
:
!
0
,
validate
:
function
(){
var
b
=
this
.
getValue
();
return
b
?
/
[\u
0020
\u
0009
\u
000a
\u
000c
\u
000d
]
/g
.
test
(
b
)?(
alert
(
c
.
lang
.
link
.
anchor
.
errorWhitespace
),
!
1
):
!
0
:(
alert
(
c
.
lang
.
link
.
anchor
.
errorName
),
!
1
)}}]}]}});
\ No newline at end of file
public/build/ckeditor/plugins/link/dialogs/link.js
0 → 100644
View file @
1d58427b
/*
Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
CKEditor 4 LTS ("Long Term Support") is available under the terms of the Extended Support Model.
*/
(
function
(){
function
u
(){
var
c
=
this
.
getDialog
(),
p
=
c
.
_
.
editor
,
n
=
p
.
config
.
linkPhoneRegExp
,
q
=
p
.
config
.
linkPhoneMsg
,
p
=
CKEDITOR
.
dialog
.
validate
.
notEmpty
(
p
.
lang
.
link
.
noTel
).
apply
(
this
);
if
(
!
c
.
getContentElement
(
"info"
,
"linkType"
)
||
"tel"
!=
c
.
getValueOf
(
"info"
,
"linkType"
))
return
!
0
;
if
(
!
0
!==
p
)
return
p
;
if
(
n
)
return
CKEDITOR
.
dialog
.
validate
.
regex
(
n
,
q
).
call
(
this
)}
CKEDITOR
.
dialog
.
add
(
"link"
,
function
(
c
){
function
p
(
a
,
b
){
var
c
=
a
.
createRange
();
c
.
setStartBefore
(
b
);
c
.
setEndAfter
(
b
);
return
c
}
var
n
=
CKEDITOR
.
plugins
.
link
,
q
,
t
=
function
(){
var
a
=
this
.
getDialog
(),
b
=
a
.
getContentElement
(
"target"
,
"popupFeatures"
),
a
=
a
.
getContentElement
(
"target"
,
"linkTargetName"
),
r
=
this
.
getValue
();
if
(
b
&&
a
)
switch
(
b
=
b
.
getElement
(),
b
.
hide
(),
a
.
setValue
(
""
),
r
){
case
"frame"
:
a
.
setLabel
(
c
.
lang
.
link
.
targetFrameName
);
a
.
getElement
().
show
();
break
;
case
"popup"
:
b
.
show
();
a
.
setLabel
(
c
.
lang
.
link
.
targetPopupName
);
a
.
getElement
().
show
();
break
;
default
:
a
.
setValue
(
r
),
a
.
getElement
().
hide
()}},
d
=
function
(
a
){
a
.
target
&&
this
.
setValue
(
a
.
target
[
this
.
id
]
||
""
)},
g
=
function
(
a
){
a
.
advanced
&&
this
.
setValue
(
a
.
advanced
[
this
.
id
]
||
""
)},
e
=
function
(
a
){
a
.
target
||
(
a
.
target
=
{});
a
.
target
[
this
.
id
]
=
this
.
getValue
()
||
""
},
k
=
function
(
a
){
a
.
advanced
||
(
a
.
advanced
=
{});
a
.
advanced
[
this
.
id
]
=
this
.
getValue
()
||
""
},
h
=
c
.
lang
.
common
,
b
=
c
.
lang
.
link
,
l
;
return
{
title
:
b
.
title
,
minWidth
:
"moono-lisa"
==
(
CKEDITOR
.
skinName
||
c
.
config
.
skin
)?
450
:
350
,
minHeight
:
240
,
getModel
:
function
(
a
){
return
n
.
getSelectedLink
(
a
,
!
0
)[
0
]
||
null
},
contents
:[{
id
:
"info"
,
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"
],[
b
.
toPhone
,
"tel"
]],
onChange
:
function
(){
var
a
=
this
.
getDialog
(),
b
=
[
"urlOptions"
,
"anchorOptions"
,
"emailOptions"
,
"telOptions"
],
r
=
this
.
getValue
(),
f
=
a
.
definition
.
getContents
(
"upload"
),
f
=
f
&&
f
.
hidden
;
"url"
==
r
?(
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
m
=
a
.
getContentElement
(
"info"
,
b
[
f
]);
m
&&
(
m
=
m
.
getElement
().
getParent
().
getParent
(),
b
[
f
]
==
r
+
"Options"
?
m
.
show
():
m
.
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"
,
label
:
h
.
protocol
,
items
:[[
"http://"
,
"http://"
],
[
"https://"
,
"https://"
],[
"ftp://"
,
"ftp://"
],[
"news://"
,
"news://"
],[
b
.
other
,
""
]],
"default"
:
c
.
config
.
linkDefaultProtocol
,
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
:
h
.
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
,
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
(
h
.
invalidValue
),
!
1
):
this
.
getDialog
().
fakeObj
?
!
0
:
CKEDITOR
.
dialog
.
validate
.
notEmpty
(
b
.
noUrl
).
apply
(
this
)},
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
:
h
.
browseServer
}]},{
type
:
"vbox"
,
id
:
"anchorOptions"
,
width
:
260
,
align
:
"center"
,
padding
:
0
,
children
:[{
type
:
"fieldset"
,
id
:
"selectAnchorText"
,
label
:
b
.
selectAnchor
,
setup
:
function
(){
l
=
n
.
getEditorAnchors
(
c
);
this
.
getElement
()[
l
&&
l
.
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
(
l
)
for
(
var
b
=
0
;
b
<
l
.
length
;
b
++
)
l
[
b
].
name
&&
this
.
add
(
l
[
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
||
(
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
(
l
)
for
(
var
b
=
0
;
b
<
l
.
length
;
b
++
)
l
[
b
].
id
&&
this
.
add
(
l
[
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
()[
l
&&
l
.
length
?
"show"
:
"hide"
]()}}]},{
type
:
"html"
,
id
:
"noAnchors"
,
style
:
"text-align: center;"
,
html
:
'
\
x3cdiv role
\
x3d"note" tabIndex
\
x3d"-1"
\
x3e'
+
CKEDITOR
.
tools
.
htmlEncode
(
b
.
noAnchors
)
+
"
\
x3c/div
\
x3e"
,
focus
:
!
0
,
setup
:
function
(){
this
.
getElement
()[
l
&&
l
.
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
):
!
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
&&
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
()}},{
type
:
"vbox"
,
id
:
"telOptions"
,
padding
:
1
,
children
:[{
type
:
"tel"
,
id
:
"telNumber"
,
label
:
b
.
phoneNumber
,
required
:
!
0
,
validate
:
u
,
setup
:
function
(
a
){
a
.
tel
&&
this
.
setValue
(
a
.
tel
);(
a
=
this
.
getDialog
().
getContentElement
(
"info"
,
"linkType"
))
&&
"tel"
==
a
.
getValue
()
&&
this
.
select
()},
commit
:
function
(
a
){
a
.
tel
=
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
:
h
.
target
,
"default"
:
"notSet"
,
style
:
"width : 100%;"
,
items
:[[
h
.
notSet
,
"notSet"
],[
b
.
targetFrame
,
"frame"
],[
b
.
targetPopup
,
"popup"
],[
h
.
targetNew
,
"_blank"
],[
h
.
targetTop
,
"_top"
],[
h
.
targetSelf
,
"_self"
],[
h
.
targetParent
,
"_parent"
]],
onChange
:
t
,
setup
:
function
(
a
){
a
.
target
&&
this
.
setValue
(
a
.
target
.
type
||
"notSet"
);
t
.
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
(
/
([^\x
00-
\x
7F
]
|
\s)
/gi
,
""
)}}]},{
type
:
"vbox"
,
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
:
d
,
commit
:
e
},{
type
:
"checkbox"
,
id
:
"status"
,
label
:
b
.
popupStatusBar
,
setup
:
d
,
commit
:
e
}]},{
type
:
"hbox"
,
children
:[{
type
:
"checkbox"
,
id
:
"location"
,
label
:
b
.
popupLocationBar
,
setup
:
d
,
commit
:
e
},{
type
:
"checkbox"
,
id
:
"toolbar"
,
label
:
b
.
popupToolbar
,
setup
:
d
,
commit
:
e
}]},{
type
:
"hbox"
,
children
:[{
type
:
"checkbox"
,
id
:
"menubar"
,
label
:
b
.
popupMenuBar
,
setup
:
d
,
commit
:
e
},{
type
:
"checkbox"
,
id
:
"fullscreen"
,
label
:
b
.
popupFullScreen
,
setup
:
d
,
commit
:
e
}]},{
type
:
"hbox"
,
children
:[{
type
:
"checkbox"
,
id
:
"scrollbars"
,
label
:
b
.
popupScrollBars
,
setup
:
d
,
commit
:
e
},{
type
:
"checkbox"
,
id
:
"dependent"
,
label
:
b
.
popupDependent
,
setup
:
d
,
commit
:
e
}]},{
type
:
"hbox"
,
children
:[{
type
:
"text"
,
widths
:[
"50%"
,
"50%"
],
labelLayout
:
"horizontal"
,
label
:
h
.
width
,
id
:
"width"
,
setup
:
d
,
commit
:
e
},{
type
:
"text"
,
labelLayout
:
"horizontal"
,
widths
:[
"50%"
,
"50%"
],
label
:
b
.
popupLeft
,
id
:
"left"
,
setup
:
d
,
commit
:
e
}]},{
type
:
"hbox"
,
children
:[{
type
:
"text"
,
labelLayout
:
"horizontal"
,
widths
:[
"50%"
,
"50%"
],
label
:
h
.
height
,
id
:
"height"
,
setup
:
d
,
commit
:
e
},{
type
:
"text"
,
labelLayout
:
"horizontal"
,
label
:
b
.
popupTop
,
widths
:[
"50%"
,
"50%"
],
id
:
"top"
,
setup
:
d
,
commit
:
e
}]}]}]}]},{
id
:
"upload"
,
label
:
b
.
upload
,
title
:
b
.
upload
,
hidden
:
!
0
,
filebrowser
:
"uploadButton"
,
elements
:[{
type
:
"file"
,
id
:
"upload"
,
label
:
h
.
upload
,
style
:
"height:40px"
,
size
:
29
},{
type
:
"fileButton"
,
id
:
"uploadButton"
,
label
:
h
.
uploadSubmit
,
filebrowser
:
"info:url"
,
"for"
:[
"upload"
,
"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
:
g
,
commit
:
k
},{
type
:
"select"
,
id
:
"advLangDir"
,
requiredContent
:
"a[dir]"
,
label
:
b
.
langDir
,
"default"
:
""
,
style
:
"width:110px"
,
items
:[[
h
.
notSet
,
""
],[
b
.
langDirLTR
,
"ltr"
],[
b
.
langDirRTL
,
"rtl"
]],
setup
:
g
,
commit
:
k
},{
type
:
"text"
,
id
:
"advAccessKey"
,
requiredContent
:
"a[accesskey]"
,
width
:
"80px"
,
label
:
b
.
acccessKey
,
maxLength
:
1
,
setup
:
g
,
commit
:
k
}]},{
type
:
"hbox"
,
widths
:[
"45%"
,
"35%"
,
"20%"
],
children
:[{
type
:
"text"
,
label
:
b
.
name
,
id
:
"advName"
,
requiredContent
:
"a[name]"
,
setup
:
g
,
commit
:
k
},{
type
:
"text"
,
label
:
b
.
langCode
,
id
:
"advLangCode"
,
requiredContent
:
"a[lang]"
,
width
:
"110px"
,
"default"
:
""
,
setup
:
g
,
commit
:
k
},{
type
:
"text"
,
label
:
b
.
tabIndex
,
id
:
"advTabIndex"
,
requiredContent
:
"a[tabindex]"
,
width
:
"80px"
,
maxLength
:
5
,
setup
:
g
,
commit
:
k
}]}]},{
type
:
"vbox"
,
padding
:
1
,
children
:[{
type
:
"hbox"
,
widths
:[
"45%"
,
"55%"
],
children
:[{
type
:
"text"
,
label
:
b
.
advisoryTitle
,
requiredContent
:
"a[title]"
,
"default"
:
""
,
id
:
"advTitle"
,
setup
:
g
,
commit
:
k
},{
type
:
"text"
,
label
:
b
.
advisoryContentType
,
requiredContent
:
"a[type]"
,
"default"
:
""
,
id
:
"advContentType"
,
setup
:
g
,
commit
:
k
}]},{
type
:
"hbox"
,
widths
:[
"45%"
,
"55%"
],
children
:[{
type
:
"text"
,
label
:
b
.
cssClasses
,
requiredContent
:
"a(cke-xyz)"
,
"default"
:
""
,
id
:
"advCSSClasses"
,
setup
:
g
,
commit
:
k
},{
type
:
"text"
,
label
:
b
.
charset
,
requiredContent
:
"a[charset]"
,
"default"
:
""
,
id
:
"advCharset"
,
setup
:
g
,
commit
:
k
}]},{
type
:
"hbox"
,
widths
:[
"45%"
,
"55%"
],
children
:[{
type
:
"text"
,
label
:
b
.
rel
,
requiredContent
:
"a[rel]"
,
"default"
:
""
,
id
:
"advRel"
,
setup
:
g
,
commit
:
k
},{
type
:
"text"
,
label
:
b
.
styles
,
requiredContent
:
"a{cke-xyz}"
,
"default"
:
""
,
id
:
"advStyles"
,
validate
:
CKEDITOR
.
dialog
.
validate
.
inlineStyle
(
c
.
lang
.
common
.
invalidInlineStyle
),
setup
:
g
,
commit
:
k
}]},{
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
=
this
.
getValue
())}}]}]}]}],
onShow
:
function
(){
var
a
=
this
.
getParentEditor
(),
b
=
a
.
getSelection
(),
c
=
this
.
getContentElement
(
"info"
,
"linkDisplayText"
).
getElement
().
getParent
().
getParent
(),
f
=
n
.
getSelectedLink
(
a
,
!
0
),
m
=
f
[
0
]
||
null
;
m
&&
m
.
hasAttribute
(
"href"
)
&&
(
b
.
getSelectedElement
()
||
b
.
isInTable
()
||
b
.
selectElement
(
m
));
b
=
n
.
parseLinkAttributes
(
a
,
m
);
1
>=
f
.
length
&&
n
.
showDisplayTextForElement
(
m
,
a
)?
c
.
show
():
c
.
hide
();
this
.
_
.
selectedElements
=
f
;
this
.
setupContent
(
b
)},
onOk
:
function
(){
var
a
=
{};
this
.
commitContent
(
a
);
if
(
this
.
_
.
selectedElements
.
length
){
var
b
=
this
.
_
.
selectedElements
,
h
=
n
.
getLinkAttributes
(
c
,
a
),
f
=
[],
m
,
l
,
d
,
g
,
e
,
k
;
for
(
k
=
0
;
k
<
b
.
length
;
k
++
){
g
=
b
[
k
];
l
=
g
.
data
(
"cke-saved-href"
);
m
=
a
.
linkText
&&
q
!=
a
.
linkText
;
d
=
l
==
q
;
l
=
"email"
==
a
.
type
&&
l
==
"mailto:"
+
q
;
g
.
setAttributes
(
h
.
set
);
g
.
removeAttributes
(
h
.
removed
);
if
(
m
)
e
=
a
.
linkText
;
else
if
(
d
||
l
)
e
=
"email"
==
a
.
type
?
a
.
email
.
address
:
h
.
set
[
"data-cke-saved-href"
];
e
&&
g
.
setText
(
e
);
f
.
push
(
p
(
c
,
g
))}
c
.
getSelection
().
selectRanges
(
f
);
delete
this
.
_
.
selectedElements
}
else
{
b
=
n
.
getLinkAttributes
(
c
,
a
);
h
=
c
.
getSelection
().
getRanges
();
f
=
new
CKEDITOR
.
style
({
element
:
"a"
,
attributes
:
b
.
set
});
m
=
[];
f
.
type
=
CKEDITOR
.
STYLE_INLINE
;
for
(
g
=
0
;
g
<
h
.
length
;
g
++
){
d
=
h
[
g
];
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
,
c
);
m
.
push
(
d
)}
c
.
getSelection
().
selectRanges
(
m
)}},
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
())}}})})();
\ No newline at end of file
public/build/ckeditor/plugins/link/images/anchor.png
0 → 100644
View file @
1d58427b
752 Bytes
public/build/ckeditor/plugins/link/images/hidpi/anchor.png
0 → 100644
View file @
1d58427b
1.08 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment