Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F823338
fck_table.html
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Mar 9, 7:03 PM
Size
13 KB
Mime Type
text/html
Expires
Tue, Mar 11, 7:03 PM (22 h, 41 m)
Engine
blob
Format
Raw Data
Handle
585665
Attached To
rINP In-Portal
fck_table.html
View Options
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2009 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Table dialog window.
-->
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
>
<
title
>
Table Properties
</
title
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=utf-8"
/>
<
meta
name
=
"robots"
content
=
"noindex, nofollow"
/>
<
script
src
=
"common/fck_dialog_common.js"
type
=
"text/javascript"
></
script
>
<
script
type
=
"text/javascript"
>
var
dialog
=
window
.
parent
;
var
oEditor
=
dialog
.
InnerDialogLoaded
()
;
var
FCKDomTools
=
oEditor
.
FCKDomTools
;
// Gets the table if there is one selected.
var
table
;
var
e
=
dialog
.
Selection
.
GetSelectedElement
()
;
var
hasColumnHeaders
;
if
(
(
!
e
&&
document
.
location
.
search
.
substr
(
1
)
==
'Parent'
)
||
(
e
&&
e
.
tagName
!=
'TABLE'
)
)
e
=
oEditor
.
FCKSelection
.
MoveToAncestorNode
(
'TABLE'
)
;
if
(
e
&&
e
.
tagName
==
"TABLE"
)
table
=
e
;
// Fired when the window loading process is finished. It sets the fields with the
// actual values if a table is selected in the editor.
window
.
onload
=
function
()
{
// First of all, translate the dialog box texts
oEditor
.
FCKLanguageManager
.
TranslatePage
(
document
)
;
if
(
table
)
{
document
.
getElementById
(
'txtRows'
).
value
=
table
.
rows
.
length
;
document
.
getElementById
(
'txtColumns'
).
value
=
table
.
rows
[
0
].
cells
.
length
;
// Gets the value from the Width or the Style attribute
var
iWidth
=
(
table
.
style
.
width
?
table
.
style
.
width
:
table
.
width
)
;
var
iHeight
=
(
table
.
style
.
height
?
table
.
style
.
height
:
table
.
height
)
;
if
(
iWidth
.
indexOf
(
'%'
)
>=
0
)
// Percentual = %
{
iWidth
=
parseInt
(
iWidth
.
substr
(
0
,
iWidth
.
length
-
1
),
10
)
;
document
.
getElementById
(
'selWidthType'
).
value
=
"percent"
;
}
else
if
(
iWidth
.
indexOf
(
'px'
)
>=
0
)
// Style Pixel = px
{
//
iWidth
=
iWidth
.
substr
(
0
,
iWidth
.
length
-
2
);
document
.
getElementById
(
'selWidthType'
).
value
=
"pixels"
;
}
if
(
iHeight
&&
iHeight
.
indexOf
(
'px'
)
>=
0
)
// Style Pixel = px
iHeight
=
iHeight
.
substr
(
0
,
iHeight
.
length
-
2
);
document
.
getElementById
(
'txtWidth'
).
value
=
iWidth
||
''
;
document
.
getElementById
(
'txtHeight'
).
value
=
iHeight
||
''
;
document
.
getElementById
(
'txtBorder'
).
value
=
GetAttribute
(
table
,
'border'
,
''
)
;
document
.
getElementById
(
'selAlignment'
).
value
=
GetAttribute
(
table
,
'align'
,
''
)
;
document
.
getElementById
(
'txtCellPadding'
).
value
=
GetAttribute
(
table
,
'cellPadding'
,
''
)
;
document
.
getElementById
(
'txtCellSpacing'
).
value
=
GetAttribute
(
table
,
'cellSpacing'
,
''
)
;
document
.
getElementById
(
'txtSummary'
).
value
=
GetAttribute
(
table
,
'summary'
,
''
)
;
// document.getElementById('cmbFontStyle').value = table.className ;
var
eCaption
=
oEditor
.
FCKDomTools
.
GetFirstChild
(
table
,
'CAPTION'
)
;
if
(
eCaption
)
document
.
getElementById
(
'txtCaption'
).
value
=
eCaption
.
innerHTML
;
hasColumnHeaders
=
true
;
// Check if all the first cells in every row are TH
for
(
var
row
=
0
;
row
<
table
.
rows
.
length
;
row
++
)
{
// If just one cell isn't a TH then it isn't a header column
if
(
table
.
rows
[
row
].
cells
[
0
].
nodeName
!=
'TH'
)
{
hasColumnHeaders
=
false
;
break
;
}
}
// Check if the table contains <thead>
if
((
table
.
tHead
!==
null
)
)
{
if
(
hasColumnHeaders
)
GetE
(
'selHeaders'
).
value
=
'both'
;
else
GetE
(
'selHeaders'
).
value
=
'row'
;
}
else
{
if
(
hasColumnHeaders
)
GetE
(
'selHeaders'
).
value
=
'col'
;
else
GetE
(
'selHeaders'
).
value
=
''
;
}
document
.
getElementById
(
'txtRows'
).
disabled
=
true
;
document
.
getElementById
(
'txtColumns'
).
disabled
=
true
;
SelectField
(
'txtWidth'
)
;
}
else
SelectField
(
'txtRows'
)
;
dialog
.
SetOkButton
(
true
)
;
dialog
.
SetAutoSize
(
true
)
;
}
// Fired when the user press the OK button
function
Ok
()
{
var
bExists
=
(
table
!=
null
)
;
var
oDoc
=
oEditor
.
FCK
.
EditorDocument
;
oEditor
.
FCKUndo
.
SaveUndoStep
()
;
if
(
!
bExists
)
table
=
oDoc
.
createElement
(
"TABLE"
)
;
// Removes the Width and Height styles
if
(
bExists
&&
table
.
style
.
width
)
table
.
style
.
width
=
null
;
//.removeAttribute("width") ;
if
(
bExists
&&
table
.
style
.
height
)
table
.
style
.
height
=
null
;
//.removeAttribute("height") ;
var
sWidth
=
GetE
(
'txtWidth'
).
value
;
if
(
sWidth
.
length
>
0
&&
GetE
(
'selWidthType'
).
value
==
'percent'
)
sWidth
+=
'%'
;
SetAttribute
(
table
,
'width'
,
sWidth
)
;
SetAttribute
(
table
,
'height'
,
GetE
(
'txtHeight'
).
value
)
;
SetAttribute
(
table
,
'border'
,
GetE
(
'txtBorder'
).
value
)
;
SetAttribute
(
table
,
'align'
,
GetE
(
'selAlignment'
).
value
)
;
SetAttribute
(
table
,
'cellPadding'
,
GetE
(
'txtCellPadding'
).
value
)
;
SetAttribute
(
table
,
'cellSpacing'
,
GetE
(
'txtCellSpacing'
).
value
)
;
SetAttribute
(
table
,
'summary'
,
GetE
(
'txtSummary'
).
value
)
;
var
eCaption
=
oEditor
.
FCKDomTools
.
GetFirstChild
(
table
,
'CAPTION'
)
;
if
(
document
.
getElementById
(
'txtCaption'
).
value
!=
''
)
{
if
(
!
eCaption
)
{
eCaption
=
oDoc
.
createElement
(
'CAPTION'
)
;
table
.
insertBefore
(
eCaption
,
table
.
firstChild
)
;
}
eCaption
.
innerHTML
=
document
.
getElementById
(
'txtCaption'
).
value
;
}
else
if
(
bExists
&&
eCaption
)
{
// TODO: It causes an IE internal error if using removeChild or
// table.deleteCaption() (see #505).
if
(
oEditor
.
FCKBrowserInfo
.
IsIE
)
eCaption
.
innerHTML
=
''
;
else
eCaption
.
parentNode
.
removeChild
(
eCaption
)
;
}
var
headers
=
GetE
(
'selHeaders'
).
value
;
if
(
bExists
)
{
// Should we make a <thead>?
if
(
table
.
tHead
==
null
&&
(
headers
==
'row'
||
headers
==
'both'
)
)
{
var
oThead
=
table
.
createTHead
()
;
var
tbody
=
FCKDomTools
.
GetFirstChild
(
table
,
'TBODY'
)
;
var
theRow
=
FCKDomTools
.
GetFirstChild
(
tbody
,
'TR'
)
;
//now change TD to TH:
for
(
var
i
=
0
;
i
<
theRow
.
childNodes
.
length
;
i
++
)
{
var
th
=
RenameNode
(
theRow
.
childNodes
[
i
],
'TH'
)
;
if
(
th
!=
null
)
th
.
scope
=
'col'
;
}
oThead
.
appendChild
(
theRow
)
;
}
if
(
table
.
tHead
!==
null
&&
!
(
headers
==
'row'
||
headers
==
'both'
)
)
{
// Move the row out of the THead and put it in the TBody:
var
tHead
=
table
.
tHead
;
var
tbody
=
FCKDomTools
.
GetFirstChild
(
table
,
'TBODY'
)
;
var
previousFirstRow
=
tbody
.
firstChild
;
while
(
tHead
.
firstChild
)
{
var
theRow
=
tHead
.
firstChild
;
for
(
var
i
=
0
;
i
<
theRow
.
childNodes
.
length
;
i
++
)
{
var
newCell
=
RenameNode
(
theRow
.
childNodes
[
i
],
'TD'
)
;
if
(
newCell
!=
null
)
newCell
.
removeAttribute
(
'scope'
)
;
}
tbody
.
insertBefore
(
theRow
,
previousFirstRow
)
;
}
table
.
removeChild
(
tHead
)
;
}
// Should we make all first cells in a row TH?
if
(
(
!
hasColumnHeaders
)
&&
(
headers
==
'col'
||
headers
==
'both'
)
)
{
for
(
var
row
=
0
;
row
<
table
.
rows
.
length
;
row
++
)
{
var
newCell
=
RenameNode
(
table
.
rows
[
row
].
cells
[
0
],
'TH'
)
;
if
(
newCell
!=
null
)
newCell
.
scope
=
'row'
;
}
}
// Should we make all first TH-cells in a row make TD? If 'yes' we do it the other way round :-)
if
(
(
hasColumnHeaders
)
&&
!
(
headers
==
'col'
||
headers
==
'both'
)
)
{
for
(
var
row
=
0
;
row
<
table
.
rows
.
length
;
row
++
)
{
var
oRow
=
table
.
rows
[
row
]
;
if
(
oRow
.
parentNode
.
nodeName
==
'TBODY'
)
{
var
newCell
=
RenameNode
(
oRow
.
cells
[
0
],
'TD'
)
;
if
(
newCell
!=
null
)
newCell
.
removeAttribute
(
'scope'
)
;
}
}
}
}
if
(
!
bExists
)
{
var
iRows
=
GetE
(
'txtRows'
).
value
;
var
iCols
=
GetE
(
'txtColumns'
).
value
;
var
startRow
=
0
;
// Should we make a <thead> ?
if
(
headers
==
'row'
||
headers
==
'both'
)
{
startRow
++
;
var
oThead
=
table
.
createTHead
()
;
var
oRow
=
table
.
insertRow
(
-
1
)
;
oThead
.
appendChild
(
oRow
);
for
(
var
c
=
0
;
c
<
iCols
;
c
++
)
{
var
oThcell
=
oDoc
.
createElement
(
'TH'
)
;
oThcell
.
scope
=
'col'
;
oRow
.
appendChild
(
oThcell
)
;
if
(
oEditor
.
FCKBrowserInfo
.
IsGeckoLike
)
oEditor
.
FCKTools
.
AppendBogusBr
(
oThcell
)
;
}
}
// Opera automatically creates a tbody when a thead has been added
var
oTbody
=
FCKDomTools
.
GetFirstChild
(
table
,
'TBODY'
)
;
if
(
!
oTbody
)
{
// make TBODY if it doesn't exist
oTbody
=
oDoc
.
createElement
(
'TBODY'
)
;
table
.
appendChild
(
oTbody
)
;
}
for
(
var
r
=
startRow
;
r
<
iRows
;
r
++
)
{
var
oRow
=
oDoc
.
createElement
(
'TR'
)
;
oTbody
.
appendChild
(
oRow
)
;
var
startCol
=
0
;
// Is the first column a header?
if
(
headers
==
'col'
||
headers
==
'both'
)
{
var
oThcell
=
oDoc
.
createElement
(
'TH'
)
;
oThcell
.
scope
=
'row'
;
oRow
.
appendChild
(
oThcell
)
;
if
(
oEditor
.
FCKBrowserInfo
.
IsGeckoLike
)
oEditor
.
FCKTools
.
AppendBogusBr
(
oThcell
)
;
startCol
++
;
}
for
(
var
c
=
startCol
;
c
<
iCols
;
c
++
)
{
// IE will leave the TH at the end of the row if we use now oRow.insertCell(-1)
var
oCell
=
oDoc
.
createElement
(
'TD'
)
;
oRow
.
appendChild
(
oCell
)
;
if
(
oEditor
.
FCKBrowserInfo
.
IsGeckoLike
)
oEditor
.
FCKTools
.
AppendBogusBr
(
oCell
)
;
}
}
oEditor
.
FCK
.
InsertElement
(
table
)
;
}
return
true
;
}
</
script
>
</
head
>
<
body
style
=
"overflow: hidden"
>
<
table
id
=
"otable"
cellspacing
=
"0"
cellpadding
=
"0"
width
=
"100%"
border
=
"0"
style
=
"height: 100%"
>
<
tr
>
<
td
>
<
table
cellspacing
=
"1"
cellpadding
=
"1"
width
=
"100%"
border
=
"0"
>
<
tr
>
<
td
valign
=
"top"
>
<
table
cellspacing
=
"1"
cellpadding
=
"0"
border
=
"0"
>
<
tr
>
<
td
>
<
span
fcklang
=
"DlgTableRows"
>
Rows
</
span
>
:
</
td
>
<
td
>
<
input
id
=
"txtRows"
type
=
"text"
maxlength
=
"3"
size
=
"2"
value
=
"3"
onkeypress
=
"return IsDigit(event);"
/></
td
>
</
tr
>
<
tr
>
<
td
>
<
span
fcklang
=
"DlgTableColumns"
>
Columns
</
span
>
:
</
td
>
<
td
>
<
input
id
=
"txtColumns"
type
=
"text"
maxlength
=
"2"
size
=
"2"
value
=
"2"
onkeypress
=
"return IsDigit(event);"
/></
td
>
</
tr
>
<
tr
>
<
td
><
span
fcklang
=
"DlgTableHeaders"
>
Headers
</
span
>
:
</
td
>
<
td
>
<
select
id
=
"selHeaders"
>
<
option
fcklang
=
"DlgTableHeadersNone"
value
=
""
>
None
</
option
>
<
option
fcklang
=
"DlgTableHeadersRow"
value
=
"row"
>
First row
</
option
>
<
option
fcklang
=
"DlgTableHeadersColumn"
value
=
"col"
>
First column
</
option
>
<
option
fcklang
=
"DlgTableHeadersBoth"
value
=
"both"
>
Both
</
option
>
</
select
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
span
fcklang
=
"DlgTableBorder"
>
Border size
</
span
>
:
</
td
>
<
td
>
<
input
id
=
"txtBorder"
type
=
"text"
maxlength
=
"2"
size
=
"2"
value
=
"1"
onkeypress
=
"return IsDigit(event);"
/></
td
>
</
tr
>
<
tr
>
<
td
>
<
span
fcklang
=
"DlgTableAlign"
>
Alignment
</
span
>
:
</
td
>
<
td
>
<
select
id
=
"selAlignment"
>
<
option
fcklang
=
"DlgTableAlignNotSet"
value
=
""
selected
=
"selected"
>
<
Not set
>
</
option
>
<
option
fcklang
=
"DlgTableAlignLeft"
value
=
"left"
>
Left
</
option
>
<
option
fcklang
=
"DlgTableAlignCenter"
value
=
"center"
>
Center
</
option
>
<
option
fcklang
=
"DlgTableAlignRight"
value
=
"right"
>
Right
</
option
>
</
select
></
td
>
</
tr
>
</
table
>
</
td
>
<
td
>
</
td
>
<
td
align
=
"right"
valign
=
"top"
>
<
table
cellspacing
=
"0"
cellpadding
=
"0"
border
=
"0"
>
<
tr
>
<
td
>
<
span
fcklang
=
"DlgTableWidth"
>
Width
</
span
>
:
</
td
>
<
td
>
<
input
id
=
"txtWidth"
type
=
"text"
maxlength
=
"4"
size
=
"3"
value
=
"200"
onkeypress
=
"return IsDigit(event);"
/></
td
>
<
td
>
<
select
id
=
"selWidthType"
>
<
option
fcklang
=
"DlgTableWidthPx"
value
=
"pixels"
selected
=
"selected"
>
pixels
</
option
>
<
option
fcklang
=
"DlgTableWidthPc"
value
=
"percent"
>
percent
</
option
>
</
select
></
td
>
</
tr
>
<
tr
>
<
td
>
<
span
fcklang
=
"DlgTableHeight"
>
Height
</
span
>
:
</
td
>
<
td
>
<
input
id
=
"txtHeight"
type
=
"text"
maxlength
=
"4"
size
=
"3"
onkeypress
=
"return IsDigit(event);"
/></
td
>
<
td
>
<
span
fcklang
=
"DlgTableWidthPx"
>
pixels
</
span
></
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"3"
>
</
td
>
</
tr
>
<
tr
>
<
td
nowrap
=
"nowrap"
>
<
span
fcklang
=
"DlgTableCellSpace"
>
Cell spacing
</
span
>
:
</
td
>
<
td
>
<
input
id
=
"txtCellSpacing"
type
=
"text"
maxlength
=
"2"
size
=
"2"
value
=
"1"
onkeypress
=
"return IsDigit(event);"
/></
td
>
<
td
>
</
td
>
</
tr
>
<
tr
>
<
td
nowrap
=
"nowrap"
>
<
span
fcklang
=
"DlgTableCellPad"
>
Cell padding
</
span
>
:
</
td
>
<
td
>
<
input
id
=
"txtCellPadding"
type
=
"text"
maxlength
=
"2"
size
=
"2"
value
=
"1"
onkeypress
=
"return IsDigit(event);"
/></
td
>
<
td
>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
<
table
cellspacing
=
"0"
cellpadding
=
"0"
width
=
"100%"
border
=
"0"
>
<
tr
>
<
td
nowrap
=
"nowrap"
>
<
span
fcklang
=
"DlgTableCaption"
>
Caption
</
span
>
:
</
td
>
<
td
>
</
td
>
<
td
width
=
"100%"
nowrap
=
"nowrap"
>
<
input
id
=
"txtCaption"
type
=
"text"
style
=
"width: 100%"
/></
td
>
</
tr
>
<
tr
>
<
td
nowrap
=
"nowrap"
>
<
span
fcklang
=
"DlgTableSummary"
>
Summary
</
span
>
:
</
td
>
<
td
>
</
td
>
<
td
width
=
"100%"
nowrap
=
"nowrap"
>
<
input
id
=
"txtSummary"
type
=
"text"
style
=
"width: 100%"
/></
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
</
body
>
</
html
>
Event Timeline
Log In to Comment