New build scripts
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5282 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
182
source/web/scripts/tiny_mce/plugins/table/cell.htm
vendored
Normal file
@@ -0,0 +1,182 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>{$lang_table_cell_title}</title>
|
||||
<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="jscripts/cell.js"></script>
|
||||
<link href="css/cell.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="tablecell" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
|
||||
<form onsubmit="updateAction();return false;" action="#">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_table_general_tab}</a></span></li>
|
||||
<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_table_advanced_tab}</a></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel_wrapper">
|
||||
<div id="general_panel" class="panel current">
|
||||
<fieldset>
|
||||
<legend>{$lang_table_general_props}</legend>
|
||||
|
||||
<table border="0" cellpadding="4" cellspacing="0">
|
||||
<tr>
|
||||
<td><label for="align">{$lang_table_align}</label></td>
|
||||
<td>
|
||||
<select id="align" name="align">
|
||||
<option value="">{$lang_not_set}</option>
|
||||
<option value="center">{$lang_table_align_middle}</option>
|
||||
<option value="left">{$lang_table_align_left}</option>
|
||||
<option value="right">{$lang_table_align_right}</option>
|
||||
</select>
|
||||
</td>
|
||||
|
||||
<td><label for="celltype">{$lang_table_cell_type}</label></td>
|
||||
<td>
|
||||
<select id="celltype" name="celltype">
|
||||
<option value="td">{$lang_table_td}</option>
|
||||
<option value="th">{$lang_table_th}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><label for="valign">{$lang_table_valign}</label></td>
|
||||
<td>
|
||||
<select id="valign" name="valign">
|
||||
<option value="">{$lang_not_set}</option>
|
||||
<option value="top">{$lang_table_align_top}</option>
|
||||
<option value="middle">{$lang_table_align_middle}</option>
|
||||
<option value="bottom">{$lang_table_align_bottom}</option>
|
||||
</select>
|
||||
</td>
|
||||
|
||||
<td><label for="scope">{$lang_table_scope}</label></td>
|
||||
<td>
|
||||
<select id="scope" name="scope">
|
||||
<option value="">{$lang_not_set}</option>
|
||||
<option value="col">{$lang_table_col}</option>
|
||||
<option value="row">{$lang_table_row}</option>
|
||||
<option value="rowgroup">{$lang_table_rowgroup}</option>
|
||||
<option value="colgroup">{$lang_table_colgroup}</option>
|
||||
</select>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><label for="width">{$lang_table_width}</label></td>
|
||||
<td><input id="width" name="width" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>
|
||||
|
||||
<td><label for="height">{$lang_table_height}</label></td>
|
||||
<td><input id="height" name="height" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>
|
||||
</tr>
|
||||
|
||||
<tr id="styleSelectRow">
|
||||
<td><label for="class">{$lang_class_name}</label></td>
|
||||
<td colspan="3">
|
||||
<select id="class" name="class">
|
||||
<option value="" selected="selected">{$lang_not_set}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div id="advanced_panel" class="panel">
|
||||
<fieldset>
|
||||
<legend>{$lang_table_advanced_props}</legend>
|
||||
|
||||
<table border="0" cellpadding="0" cellspacing="4">
|
||||
<tr>
|
||||
<td class="column1"><label for="id">{$lang_table_id}</label></td>
|
||||
<td><input id="id" name="id" type="text" value="" style="width: 200px" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><label for="style">{$lang_table_style}</label></td>
|
||||
<td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="dir">{$lang_table_langdir}</label></td>
|
||||
<td>
|
||||
<select id="dir" name="dir" style="width: 200px">
|
||||
<option value="">{$lang_not_set}</option>
|
||||
<option value="ltr">{$lang_table_ltr}</option>
|
||||
<option value="rtl">{$lang_table_rtl}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="lang">{$lang_table_langcode}</label></td>
|
||||
<td>
|
||||
<input id="lang" name="lang" type="text" value="" style="width: 200px" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="backgroundimage">{$lang_table_bgimage}</label></td>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>
|
||||
<td id="backgroundimagebrowsercontainer"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="bordercolor">{$lang_table_bordercolor}</label></td>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>
|
||||
<td id="bordercolor_pickcontainer"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="bgcolor">{$lang_table_bgcolor}</label></td>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>
|
||||
<td id="bgcolor_pickcontainer"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mceActionPanel">
|
||||
<div>
|
||||
<select id="action" name="action">
|
||||
<option value="cell">{$lang_table_cell_cell}</option>
|
||||
<option value="row">{$lang_table_cell_row}</option>
|
||||
<option value="all">{$lang_table_cell_all}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div style="float: left">
|
||||
<div><input type="button" id="insert" name="insert" value="{$lang_update}" onclick="updateAction();" /></div>
|
||||
</div>
|
||||
|
||||
<div style="float: right">
|
||||
<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
17
source/web/scripts/tiny_mce/plugins/table/css/cell.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
/* CSS file for cell dialog in the table plugin */
|
||||
|
||||
.panel_wrapper div.current {
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.advfield {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
#action {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
#class {
|
||||
width: 150px;
|
||||
}
|
25
source/web/scripts/tiny_mce/plugins/table/css/row.css
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
/* CSS file for row dialog in the table plugin */
|
||||
|
||||
.panel_wrapper div.current {
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.advfield {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
#action {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
#rowtype,#align,#valign,#class,#height {
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
#height {
|
||||
width: 50px;
|
||||
}
|
||||
|
||||
.col2 {
|
||||
padding-left: 20px;
|
||||
}
|
13
source/web/scripts/tiny_mce/plugins/table/css/table.css
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
/* CSS file for table dialog in the table plugin */
|
||||
|
||||
.panel_wrapper div.current {
|
||||
height: 220px;
|
||||
}
|
||||
|
||||
.advfield {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
#class {
|
||||
width: 150px;
|
||||
}
|
1
source/web/scripts/tiny_mce/plugins/table/editor_plugin.js
vendored
Normal file
1054
source/web/scripts/tiny_mce/plugins/table/editor_plugin_src.js
vendored
Normal file
BIN
source/web/scripts/tiny_mce/plugins/table/images/buttons.gif
vendored
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table.gif
vendored
Normal file
After Width: | Height: | Size: 287 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_cell_props.gif
vendored
Normal file
After Width: | Height: | Size: 189 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_delete.gif
vendored
Normal file
After Width: | Height: | Size: 372 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_delete_col.gif
vendored
Normal file
After Width: | Height: | Size: 163 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_delete_row.gif
vendored
Normal file
After Width: | Height: | Size: 171 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_insert_col_after.gif
vendored
Normal file
After Width: | Height: | Size: 165 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_insert_col_before.gif
vendored
Normal file
After Width: | Height: | Size: 165 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_insert_row_after.gif
vendored
Normal file
After Width: | Height: | Size: 163 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_insert_row_before.gif
vendored
Normal file
After Width: | Height: | Size: 159 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_merge_cells.gif
vendored
Normal file
After Width: | Height: | Size: 198 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_row_props.gif
vendored
Normal file
After Width: | Height: | Size: 187 B |
BIN
source/web/scripts/tiny_mce/plugins/table/images/table_split_cells.gif
vendored
Normal file
After Width: | Height: | Size: 210 B |
249
source/web/scripts/tiny_mce/plugins/table/jscripts/cell.js
vendored
Normal file
@@ -0,0 +1,249 @@
|
||||
function init() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
|
||||
document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
|
||||
document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
|
||||
|
||||
var inst = tinyMCE.selectedInstance;
|
||||
var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(tinyMCE.getAttrib(tdElm, "style"));
|
||||
|
||||
// Get table cell data
|
||||
var celltype = tdElm.nodeName.toLowerCase();
|
||||
var align = tinyMCE.getAttrib(tdElm, 'align');
|
||||
var valign = tinyMCE.getAttrib(tdElm, 'valign');
|
||||
var width = trimSize(getStyle(tdElm, 'width', 'width'));
|
||||
var height = trimSize(getStyle(tdElm, 'height', 'height'));
|
||||
var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
|
||||
var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
|
||||
var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tdElm, 'class'), false);
|
||||
var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
|
||||
var id = tinyMCE.getAttrib(tdElm, 'id');
|
||||
var lang = tinyMCE.getAttrib(tdElm, 'lang');
|
||||
var dir = tinyMCE.getAttrib(tdElm, 'dir');
|
||||
var scope = tinyMCE.getAttrib(tdElm, 'scope');
|
||||
|
||||
// Setup form
|
||||
addClassesToList('class', 'table_cell_styles');
|
||||
formObj.bordercolor.value = bordercolor;
|
||||
formObj.bgcolor.value = bgcolor;
|
||||
formObj.backgroundimage.value = backgroundimage;
|
||||
formObj.width.value = width;
|
||||
formObj.height.value = height;
|
||||
formObj.id.value = id;
|
||||
formObj.lang.value = lang;
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
selectByValue(formObj, 'align', align);
|
||||
selectByValue(formObj, 'valign', valign);
|
||||
selectByValue(formObj, 'class', className);
|
||||
selectByValue(formObj, 'celltype', celltype);
|
||||
selectByValue(formObj, 'dir', dir);
|
||||
selectByValue(formObj, 'scope', scope);
|
||||
|
||||
// Resize some elements
|
||||
if (isVisible('backgroundimagebrowser'))
|
||||
document.getElementById('backgroundimage').style.width = '180px';
|
||||
|
||||
updateColor('bordercolor_pick', 'bordercolor');
|
||||
updateColor('bgcolor_pick', 'bgcolor');
|
||||
}
|
||||
|
||||
function updateAction() {
|
||||
tinyMCEPopup.restoreSelection();
|
||||
|
||||
var inst = tinyMCE.selectedInstance;
|
||||
var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
|
||||
var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
|
||||
var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
|
||||
var formObj = document.forms[0];
|
||||
|
||||
inst.execCommand('mceBeginUndoLevel');
|
||||
|
||||
switch (getSelectValue(formObj, 'action')) {
|
||||
case "cell":
|
||||
var celltype = getSelectValue(formObj, 'celltype');
|
||||
var scope = getSelectValue(formObj, 'scope');
|
||||
|
||||
if (tinyMCE.getParam("accessibility_warnings")) {
|
||||
if (celltype == "th" && scope == "")
|
||||
var answer = confirm(tinyMCE.getLang('lang_table_missing_scope', '', true));
|
||||
else
|
||||
var answer = true;
|
||||
|
||||
if (!answer)
|
||||
return;
|
||||
}
|
||||
|
||||
updateCell(tdElm);
|
||||
break;
|
||||
|
||||
case "row":
|
||||
var cell = trElm.firstChild;
|
||||
|
||||
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
||||
cell = nextCell(cell);
|
||||
|
||||
do {
|
||||
cell = updateCell(cell, true);
|
||||
} while ((cell = nextCell(cell)) != null);
|
||||
|
||||
break;
|
||||
|
||||
case "all":
|
||||
var rows = tableElm.getElementsByTagName("tr");
|
||||
|
||||
for (var i=0; i<rows.length; i++) {
|
||||
var cell = rows[i].firstChild;
|
||||
|
||||
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
||||
cell = nextCell(cell);
|
||||
|
||||
do {
|
||||
cell = updateCell(cell, true);
|
||||
} while ((cell = nextCell(cell)) != null);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
|
||||
tinyMCE.triggerNodeChange();
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function nextCell(elm) {
|
||||
while ((elm = elm.nextSibling) != null) {
|
||||
if (elm.nodeName == "TD" || elm.nodeName == "TH")
|
||||
return elm;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function updateCell(td, skip_id) {
|
||||
var inst = tinyMCE.selectedInstance;
|
||||
var formObj = document.forms[0];
|
||||
var curCellType = td.nodeName.toLowerCase();
|
||||
var celltype = getSelectValue(formObj, 'celltype');
|
||||
var doc = inst.getDoc();
|
||||
|
||||
if (!skip_id)
|
||||
td.setAttribute('id', formObj.id.value);
|
||||
|
||||
td.setAttribute('align', formObj.align.value);
|
||||
td.setAttribute('vAlign', formObj.valign.value);
|
||||
td.setAttribute('lang', formObj.lang.value);
|
||||
td.setAttribute('dir', getSelectValue(formObj, 'dir'));
|
||||
td.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));
|
||||
td.setAttribute('scope', formObj.scope.value);
|
||||
tinyMCE.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
|
||||
|
||||
// Clear deprecated attributes
|
||||
tinyMCE.setAttrib(td, 'width', '');
|
||||
tinyMCE.setAttrib(td, 'height', '');
|
||||
tinyMCE.setAttrib(td, 'bgColor', '');
|
||||
tinyMCE.setAttrib(td, 'borderColor', '');
|
||||
tinyMCE.setAttrib(td, 'background', '');
|
||||
|
||||
// Set styles
|
||||
td.style.width = getCSSSize(formObj.width.value);
|
||||
td.style.height = getCSSSize(formObj.height.value);
|
||||
if (formObj.bordercolor.value != "") {
|
||||
td.style.borderColor = formObj.bordercolor.value;
|
||||
td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
|
||||
td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
|
||||
} else
|
||||
td.style.borderColor = '';
|
||||
|
||||
td.style.backgroundColor = formObj.bgcolor.value;
|
||||
|
||||
if (formObj.backgroundimage.value != "")
|
||||
td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
|
||||
else
|
||||
td.style.backgroundImage = '';
|
||||
|
||||
if (curCellType != celltype) {
|
||||
// changing to a different node type
|
||||
var newCell = doc.createElement(celltype);
|
||||
|
||||
for (var c=0; c<td.childNodes.length; c++)
|
||||
newCell.appendChild(td.childNodes[c].cloneNode(1));
|
||||
|
||||
for (var a=0; a<td.attributes.length; a++) {
|
||||
var attr = td.attributes[a];
|
||||
newCell.setAttribute(attr.name, attr.value);
|
||||
}
|
||||
|
||||
td.parentNode.replaceChild(newCell, td);
|
||||
td = newCell;
|
||||
}
|
||||
|
||||
return td;
|
||||
}
|
||||
|
||||
function changedBackgroundImage() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
|
||||
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedSize() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
var width = formObj.width.value;
|
||||
if (width != "")
|
||||
st['width'] = getCSSSize(width);
|
||||
else
|
||||
st['width'] = "";
|
||||
|
||||
var height = formObj.height.value;
|
||||
if (height != "")
|
||||
st['height'] = getCSSSize(height);
|
||||
else
|
||||
st['height'] = "";
|
||||
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedColor() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-color'] = formObj.bgcolor.value;
|
||||
st['border-color'] = formObj.bordercolor.value;
|
||||
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedStyle() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
if (st['background-image'])
|
||||
formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
else
|
||||
formObj.backgroundimage.value = '';
|
||||
|
||||
if (st['width'])
|
||||
formObj.width.value = trimSize(st['width']);
|
||||
|
||||
if (st['height'])
|
||||
formObj.height.value = trimSize(st['height']);
|
||||
|
||||
if (st['background-color']) {
|
||||
formObj.bgcolor.value = st['background-color'];
|
||||
updateColor('bgcolor_pick','bgcolor');
|
||||
}
|
||||
|
||||
if (st['border-color']) {
|
||||
formObj.bordercolor.value = st['border-color'];
|
||||
updateColor('bordercolor_pick','bordercolor');
|
||||
}
|
||||
}
|
19
source/web/scripts/tiny_mce/plugins/table/jscripts/merge_cells.js
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
function init() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
var formObj = document.forms[0];
|
||||
|
||||
formObj.numcols.value = tinyMCE.getWindowArg('numcols', 1);
|
||||
formObj.numrows.value = tinyMCE.getWindowArg('numrows', 1);
|
||||
}
|
||||
|
||||
function mergeCells() {
|
||||
var args = new Array();
|
||||
var formObj = document.forms[0];
|
||||
|
||||
args["numcols"] = formObj.numcols.value;
|
||||
args["numrows"] = formObj.numrows.value;
|
||||
|
||||
tinyMCEPopup.execCommand("mceTableMergeCells", false, args);
|
||||
tinyMCEPopup.close();
|
||||
}
|
200
source/web/scripts/tiny_mce/plugins/table/jscripts/row.js
vendored
Normal file
@@ -0,0 +1,200 @@
|
||||
function init() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
|
||||
document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
|
||||
|
||||
var inst = tinyMCE.selectedInstance;
|
||||
var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(tinyMCE.getAttrib(trElm, "style"));
|
||||
|
||||
// Get table row data
|
||||
var rowtype = trElm.parentNode.nodeName.toLowerCase();
|
||||
var align = tinyMCE.getAttrib(trElm, 'align');
|
||||
var valign = tinyMCE.getAttrib(trElm, 'valign');
|
||||
var height = trimSize(getStyle(trElm, 'height', 'height'));
|
||||
var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(trElm, 'class'), false);
|
||||
var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));
|
||||
var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
|
||||
var id = tinyMCE.getAttrib(trElm, 'id');
|
||||
var lang = tinyMCE.getAttrib(trElm, 'lang');
|
||||
var dir = tinyMCE.getAttrib(trElm, 'dir');
|
||||
|
||||
// Setup form
|
||||
addClassesToList('class', 'table_row_styles');
|
||||
formObj.bgcolor.value = bgcolor;
|
||||
formObj.backgroundimage.value = backgroundimage;
|
||||
formObj.height.value = height;
|
||||
formObj.id.value = id;
|
||||
formObj.lang.value = lang;
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
selectByValue(formObj, 'align', align);
|
||||
selectByValue(formObj, 'valign', valign);
|
||||
selectByValue(formObj, 'class', className);
|
||||
selectByValue(formObj, 'rowtype', rowtype);
|
||||
selectByValue(formObj, 'dir', dir);
|
||||
|
||||
// Resize some elements
|
||||
if (isVisible('backgroundimagebrowser'))
|
||||
document.getElementById('backgroundimage').style.width = '180px';
|
||||
|
||||
updateColor('bgcolor_pick', 'bgcolor');
|
||||
}
|
||||
|
||||
function updateAction() {
|
||||
tinyMCEPopup.restoreSelection();
|
||||
|
||||
var inst = tinyMCE.selectedInstance;
|
||||
var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
|
||||
var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
|
||||
var formObj = document.forms[0];
|
||||
var action = getSelectValue(formObj, 'action');
|
||||
|
||||
inst.execCommand('mceBeginUndoLevel');
|
||||
|
||||
switch (action) {
|
||||
case "row":
|
||||
updateRow(trElm);
|
||||
break;
|
||||
|
||||
case "all":
|
||||
var rows = tableElm.getElementsByTagName("tr");
|
||||
|
||||
for (var i=0; i<rows.length; i++)
|
||||
updateRow(rows[i], true);
|
||||
|
||||
break;
|
||||
|
||||
case "odd":
|
||||
case "even":
|
||||
var rows = tableElm.getElementsByTagName("tr");
|
||||
|
||||
for (var i=0; i<rows.length; i++) {
|
||||
if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))
|
||||
updateRow(rows[i], true, true);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
|
||||
tinyMCE.triggerNodeChange();
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function updateRow(tr_elm, skip_id, skip_parent) {
|
||||
var inst = tinyMCE.selectedInstance;
|
||||
var formObj = document.forms[0];
|
||||
var curRowType = tr_elm.parentNode.nodeName.toLowerCase();
|
||||
var rowtype = getSelectValue(formObj, 'rowtype');
|
||||
var doc = inst.getDoc();
|
||||
|
||||
// Update row element
|
||||
if (!skip_id)
|
||||
tr_elm.setAttribute('id', formObj.id.value);
|
||||
|
||||
tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));
|
||||
tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));
|
||||
tr_elm.setAttribute('lang', formObj.lang.value);
|
||||
tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));
|
||||
tr_elm.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));
|
||||
tinyMCE.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));
|
||||
|
||||
// Clear deprecated attributes
|
||||
tr_elm.setAttribute('background', '');
|
||||
tr_elm.setAttribute('bgColor', '');
|
||||
tr_elm.setAttribute('height', '');
|
||||
|
||||
// Set styles
|
||||
tr_elm.style.height = getCSSSize(formObj.height.value);
|
||||
tr_elm.style.backgroundColor = formObj.bgcolor.value;
|
||||
|
||||
if (formObj.backgroundimage.value != "")
|
||||
tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
|
||||
else
|
||||
tr_elm.style.backgroundImage = '';
|
||||
|
||||
// Setup new rowtype
|
||||
if (curRowType != rowtype && !skip_parent) {
|
||||
// first, clone the node we are working on
|
||||
var newRow = tr_elm.cloneNode(1);
|
||||
|
||||
// next, find the parent of its new destination (creating it if necessary)
|
||||
var theTable = tinyMCE.getParentElement(tr_elm, "table");
|
||||
var dest = rowtype;
|
||||
var newParent = null;
|
||||
for (var i = 0; i < theTable.childNodes.length; i++) {
|
||||
if (theTable.childNodes[i].nodeName.toLowerCase() == dest)
|
||||
newParent = theTable.childNodes[i];
|
||||
}
|
||||
|
||||
if (newParent == null) {
|
||||
newParent = doc.createElement(dest);
|
||||
|
||||
if (dest == "thead")
|
||||
theTable.insertBefore(newParent, theTable.firstChild);
|
||||
else
|
||||
theTable.appendChild(newParent);
|
||||
}
|
||||
|
||||
// append the row to the new parent
|
||||
newParent.appendChild(newRow);
|
||||
|
||||
// remove the original
|
||||
tr_elm.parentNode.removeChild(tr_elm);
|
||||
|
||||
// set tr_elm to the new node
|
||||
tr_elm = newRow;
|
||||
}
|
||||
}
|
||||
|
||||
function changedBackgroundImage() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
|
||||
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedStyle() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
if (st['background-image'])
|
||||
formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
else
|
||||
formObj.backgroundimage.value = '';
|
||||
|
||||
if (st['height'])
|
||||
formObj.height.value = trimSize(st['height']);
|
||||
|
||||
if (st['background-color']) {
|
||||
formObj.bgcolor.value = st['background-color'];
|
||||
updateColor('bgcolor_pick','bgcolor');
|
||||
}
|
||||
}
|
||||
|
||||
function changedSize() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
var height = formObj.height.value;
|
||||
if (height != "")
|
||||
st['height'] = getCSSSize(height);
|
||||
else
|
||||
st['height'] = "";
|
||||
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedColor() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-color'] = formObj.bgcolor.value;
|
||||
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
}
|
344
source/web/scripts/tiny_mce/plugins/table/jscripts/table.js
vendored
Normal file
@@ -0,0 +1,344 @@
|
||||
var action, orgTableWidth, orgTableHeight;
|
||||
|
||||
function insertTable() {
|
||||
var formObj = document.forms[0];
|
||||
var inst = tinyMCE.selectedInstance;
|
||||
var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className;
|
||||
var html = '';
|
||||
var elm = tinyMCE.tableElm;
|
||||
var cellLimit, rowLimit, colLimit;
|
||||
|
||||
tinyMCEPopup.restoreSelection();
|
||||
|
||||
// Get form data
|
||||
cols = formObj.elements['cols'].value;
|
||||
rows = formObj.elements['rows'].value;
|
||||
border = formObj.elements['border'].value != "" ? formObj.elements['border'].value : 0;
|
||||
cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";
|
||||
cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";
|
||||
align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;
|
||||
width = formObj.elements['width'].value;
|
||||
height = formObj.elements['height'].value;
|
||||
bordercolor = formObj.elements['bordercolor'].value;
|
||||
bgcolor = formObj.elements['bgcolor'].value;
|
||||
className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;
|
||||
id = formObj.elements['id'].value;
|
||||
summary = formObj.elements['summary'].value;
|
||||
style = formObj.elements['style'].value;
|
||||
dir = formObj.elements['dir'].value;
|
||||
lang = formObj.elements['lang'].value;
|
||||
background = formObj.elements['backgroundimage'].value;
|
||||
|
||||
cellLimit = tinyMCE.getParam('table_cell_limit', false);
|
||||
rowLimit = tinyMCE.getParam('table_row_limit', false);
|
||||
colLimit = tinyMCE.getParam('table_col_limit', false);
|
||||
|
||||
// Validate table size
|
||||
if (colLimit && cols > colLimit) {
|
||||
alert(tinyMCE.getLang('lang_table_col_limit', '', true, {cols : colLimit}));
|
||||
return false;
|
||||
} else if (rowLimit && rows > rowLimit) {
|
||||
alert(tinyMCE.getLang('lang_table_row_limit', '', true, {rows : rowLimit}));
|
||||
return false;
|
||||
} else if (cellLimit && cols * rows > cellLimit) {
|
||||
alert(tinyMCE.getLang('lang_table_cell_limit', '', true, {cells : cellLimit}));
|
||||
return false;
|
||||
}
|
||||
|
||||
// Update table
|
||||
if (action == "update") {
|
||||
inst.execCommand('mceBeginUndoLevel');
|
||||
|
||||
tinyMCE.setAttrib(elm, 'cellPadding', cellpadding, true);
|
||||
tinyMCE.setAttrib(elm, 'cellSpacing', cellspacing, true);
|
||||
tinyMCE.setAttrib(elm, 'border', border, true);
|
||||
tinyMCE.setAttrib(elm, 'align', align);
|
||||
tinyMCE.setAttrib(elm, 'class', className);
|
||||
tinyMCE.setAttrib(elm, 'style', style);
|
||||
tinyMCE.setAttrib(elm, 'id', id);
|
||||
tinyMCE.setAttrib(elm, 'summary', summary);
|
||||
tinyMCE.setAttrib(elm, 'dir', dir);
|
||||
tinyMCE.setAttrib(elm, 'lang', lang);
|
||||
|
||||
// Not inline styles
|
||||
if (!tinyMCE.getParam("inline_styles"))
|
||||
tinyMCE.setAttrib(elm, 'width', width, true);
|
||||
|
||||
// Remove these since they are not valid XHTML
|
||||
tinyMCE.setAttrib(elm, 'borderColor', '');
|
||||
tinyMCE.setAttrib(elm, 'bgColor', '');
|
||||
tinyMCE.setAttrib(elm, 'background', '');
|
||||
tinyMCE.setAttrib(elm, 'height', '');
|
||||
|
||||
if (background != '')
|
||||
elm.style.backgroundImage = "url('" + background + "')";
|
||||
else
|
||||
elm.style.backgroundImage = '';
|
||||
|
||||
if (tinyMCE.getParam("inline_styles"))
|
||||
elm.style.borderWidth = border + "px";
|
||||
|
||||
if (tinyMCE.getParam("inline_styles")) {
|
||||
if (width != '')
|
||||
elm.style.width = getCSSSize(width);
|
||||
}
|
||||
|
||||
if (bordercolor != "") {
|
||||
elm.style.borderColor = bordercolor;
|
||||
elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;
|
||||
elm.style.borderWidth = border == "" ? "1px" : border;
|
||||
} else
|
||||
elm.style.borderColor = '';
|
||||
|
||||
elm.style.backgroundColor = bgcolor;
|
||||
elm.style.height = getCSSSize(height);
|
||||
|
||||
tinyMCE.handleVisualAid(tinyMCE.tableElm, false, inst.visualAid, inst);
|
||||
|
||||
// Fix for stange MSIE align bug
|
||||
tinyMCE.tableElm.outerHTML = tinyMCE.tableElm.outerHTML;
|
||||
|
||||
tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
|
||||
tinyMCE.triggerNodeChange();
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
|
||||
// Repaint if dimensions changed
|
||||
if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)
|
||||
inst.repaint();
|
||||
|
||||
tinyMCEPopup.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
// Create new table
|
||||
html += '<table';
|
||||
|
||||
html += makeAttrib('id', id);
|
||||
html += makeAttrib('border', border);
|
||||
html += makeAttrib('cellpadding', cellpadding);
|
||||
html += makeAttrib('cellspacing', cellspacing);
|
||||
html += makeAttrib('width', width);
|
||||
//html += makeAttrib('height', height);
|
||||
//html += makeAttrib('bordercolor', bordercolor);
|
||||
//html += makeAttrib('bgcolor', bgcolor);
|
||||
html += makeAttrib('align', align);
|
||||
html += makeAttrib('class', tinyMCE.getVisualAidClass(className, border == 0));
|
||||
html += makeAttrib('style', style);
|
||||
html += makeAttrib('summary', summary);
|
||||
html += makeAttrib('dir', dir);
|
||||
html += makeAttrib('lang', lang);
|
||||
|
||||
html += '>';
|
||||
|
||||
for (var y=0; y<rows; y++) {
|
||||
html += "<tr>";
|
||||
|
||||
for (var x=0; x<cols; x++)
|
||||
html += '<td> </td>';
|
||||
|
||||
html += "</tr>";
|
||||
}
|
||||
|
||||
html += "</table>";
|
||||
|
||||
inst.execCommand('mceBeginUndoLevel');
|
||||
inst.execCommand('mceInsertContent', false, html);
|
||||
tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings['visual']);
|
||||
inst.execCommand('mceEndUndoLevel');
|
||||
|
||||
tinyMCEPopup.close();
|
||||
}
|
||||
|
||||
function makeAttrib(attrib, value) {
|
||||
var formObj = document.forms[0];
|
||||
var valueElm = formObj.elements[attrib];
|
||||
|
||||
if (typeof(value) == "undefined" || value == null) {
|
||||
value = "";
|
||||
|
||||
if (valueElm)
|
||||
value = valueElm.value;
|
||||
}
|
||||
|
||||
if (value == "")
|
||||
return "";
|
||||
|
||||
// XML encode it
|
||||
value = value.replace(/&/g, '&');
|
||||
value = value.replace(/\"/g, '"');
|
||||
value = value.replace(/</g, '<');
|
||||
value = value.replace(/>/g, '>');
|
||||
|
||||
return ' ' + attrib + '="' + value + '"';
|
||||
}
|
||||
|
||||
function init() {
|
||||
tinyMCEPopup.resizeToInnerSize();
|
||||
|
||||
document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
|
||||
document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
|
||||
document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
|
||||
document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
|
||||
|
||||
var cols = 2, rows = 2, border = 0, cellpadding = "", cellspacing = "";
|
||||
var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";
|
||||
var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "";
|
||||
var inst = tinyMCE.selectedInstance;
|
||||
var formObj = document.forms[0];
|
||||
var elm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
|
||||
|
||||
tinyMCE.tableElm = elm;
|
||||
action = tinyMCE.getWindowArg('action');
|
||||
if (action == null)
|
||||
action = tinyMCE.tableElm ? "update" : "insert";
|
||||
|
||||
if (tinyMCE.tableElm && action != "insert") {
|
||||
var rowsAr = tinyMCE.tableElm.rows;
|
||||
var cols = 0;
|
||||
for (var i=0; i<rowsAr.length; i++)
|
||||
if (rowsAr[i].cells.length > cols)
|
||||
cols = rowsAr[i].cells.length;
|
||||
|
||||
cols = cols;
|
||||
rows = rowsAr.length;
|
||||
|
||||
st = tinyMCE.parseStyle(tinyMCE.getAttrib(tinyMCE.tableElm, "style"));
|
||||
border = trimSize(getStyle(elm, 'border', 'borderWidth'));
|
||||
cellpadding = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellpadding', "");
|
||||
cellspacing = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellspacing', "");
|
||||
width = trimSize(getStyle(elm, 'width', 'width'));
|
||||
height = trimSize(getStyle(elm, 'height', 'height'));
|
||||
bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));
|
||||
bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));
|
||||
align = tinyMCE.getAttrib(tinyMCE.tableElm, 'align', align);
|
||||
className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tinyMCE.tableElm, 'class'), false);
|
||||
id = tinyMCE.getAttrib(tinyMCE.tableElm, 'id');
|
||||
summary = tinyMCE.getAttrib(tinyMCE.tableElm, 'summary');
|
||||
style = tinyMCE.serializeStyle(st);
|
||||
dir = tinyMCE.getAttrib(tinyMCE.tableElm, 'dir');
|
||||
lang = tinyMCE.getAttrib(tinyMCE.tableElm, 'lang');
|
||||
background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
|
||||
orgTableWidth = width;
|
||||
orgTableHeight = height;
|
||||
|
||||
action = "update";
|
||||
}
|
||||
|
||||
addClassesToList('class', "table_styles");
|
||||
|
||||
// Update form
|
||||
selectByValue(formObj, 'align', align);
|
||||
selectByValue(formObj, 'class', className);
|
||||
formObj.cols.value = cols;
|
||||
formObj.rows.value = rows;
|
||||
formObj.border.value = border;
|
||||
formObj.cellpadding.value = cellpadding;
|
||||
formObj.cellspacing.value = cellspacing;
|
||||
formObj.width.value = width;
|
||||
formObj.height.value = height;
|
||||
formObj.bordercolor.value = bordercolor;
|
||||
formObj.bgcolor.value = bgcolor;
|
||||
formObj.id.value = id;
|
||||
formObj.summary.value = summary;
|
||||
formObj.style.value = style;
|
||||
formObj.dir.value = dir;
|
||||
formObj.lang.value = lang;
|
||||
formObj.backgroundimage.value = background;
|
||||
formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);
|
||||
|
||||
updateColor('bordercolor_pick', 'bordercolor');
|
||||
updateColor('bgcolor_pick', 'bgcolor');
|
||||
|
||||
// Resize some elements
|
||||
if (isVisible('backgroundimagebrowser'))
|
||||
document.getElementById('backgroundimage').style.width = '180px';
|
||||
|
||||
// Disable some fields in update mode
|
||||
if (action == "update") {
|
||||
formObj.cols.disabled = true;
|
||||
formObj.rows.disabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
function changedSize() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
var width = formObj.width.value;
|
||||
if (width != "")
|
||||
st['width'] = tinyMCE.getParam("inline_styles") ? getCSSSize(width) : "";
|
||||
else
|
||||
st['width'] = "";
|
||||
|
||||
var height = formObj.height.value;
|
||||
if (height != "")
|
||||
st['height'] = getCSSSize(height);
|
||||
else
|
||||
st['height'] = "";
|
||||
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedBackgroundImage() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
|
||||
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedBorder() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
// Update border width if the element has a color
|
||||
if (formObj.border.value != "" && formObj.bordercolor.value != "")
|
||||
st['border-width'] = formObj.border.value + "px";
|
||||
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedColor() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
st['background-color'] = formObj.bgcolor.value;
|
||||
|
||||
if (formObj.bordercolor.value != "") {
|
||||
st['border-color'] = formObj.bordercolor.value;
|
||||
|
||||
// Add border-width if it's missing
|
||||
if (!st['border-width'])
|
||||
st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px";
|
||||
}
|
||||
|
||||
formObj.style.value = tinyMCE.serializeStyle(st);
|
||||
}
|
||||
|
||||
function changedStyle() {
|
||||
var formObj = document.forms[0];
|
||||
var st = tinyMCE.parseStyle(formObj.style.value);
|
||||
|
||||
if (st['background-image'])
|
||||
formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
||||
else
|
||||
formObj.backgroundimage.value = '';
|
||||
|
||||
if (st['width'])
|
||||
formObj.width.value = trimSize(st['width']);
|
||||
|
||||
if (st['height'])
|
||||
formObj.height.value = trimSize(st['height']);
|
||||
|
||||
if (st['background-color']) {
|
||||
formObj.bgcolor.value = st['background-color'];
|
||||
updateColor('bgcolor_pick','bgcolor');
|
||||
}
|
||||
|
||||
if (st['border-color']) {
|
||||
formObj.bordercolor.value = st['border-color'];
|
||||
updateColor('bordercolor_pick','bordercolor');
|
||||
}
|
||||
}
|
78
source/web/scripts/tiny_mce/plugins/table/langs/en.js
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
// UK lang variables
|
||||
|
||||
tinyMCE.addToLang('table',{
|
||||
general_tab : 'General',
|
||||
advanced_tab : 'Advanced',
|
||||
general_props : 'General properties',
|
||||
advanced_props : 'Advanced properties',
|
||||
desc : 'Inserts a new table',
|
||||
row_before_desc : 'Insert row before',
|
||||
row_after_desc : 'Insert row after',
|
||||
delete_row_desc : 'Delete row',
|
||||
col_before_desc : 'Insert column before',
|
||||
col_after_desc : 'Insert column after',
|
||||
delete_col_desc : 'Remove column',
|
||||
rowtype : 'Row in table part',
|
||||
title : 'Insert/Modify table',
|
||||
width : 'Width',
|
||||
height : 'Height',
|
||||
cols : 'Columns',
|
||||
rows : 'Rows',
|
||||
cellspacing : 'Cellspacing',
|
||||
cellpadding : 'Cellpadding',
|
||||
border : 'Border',
|
||||
align : 'Alignment',
|
||||
align_default : 'Default',
|
||||
align_left : 'Left',
|
||||
align_right : 'Right',
|
||||
align_middle : 'Center',
|
||||
row_title : 'Table row properties',
|
||||
cell_title : 'Table cell properties',
|
||||
cell_type : 'Cell type',
|
||||
row_desc : 'Table row properties',
|
||||
cell_desc : 'Table cell properties',
|
||||
valign : 'Vertical alignment',
|
||||
align_top : 'Top',
|
||||
align_bottom : 'Bottom',
|
||||
props_desc : 'Table properties',
|
||||
bordercolor : 'Border color',
|
||||
bgcolor : 'Background color',
|
||||
merge_cells_title : 'Merge table cells',
|
||||
split_cells_desc : 'Split table cells',
|
||||
merge_cells_desc : 'Merge table cells',
|
||||
cut_row_desc : 'Cut table row',
|
||||
copy_row_desc : 'Copy table row',
|
||||
paste_row_before_desc : 'Paste table row before',
|
||||
paste_row_after_desc : 'Paste table row after',
|
||||
id : 'Id',
|
||||
style: 'Style',
|
||||
langdir : 'Language direction',
|
||||
langcode : 'Language code',
|
||||
mime : 'Target MIME type',
|
||||
ltr : 'Left to right',
|
||||
rtl : 'Right to left',
|
||||
bgimage : 'Background image',
|
||||
summary : 'Summary',
|
||||
td : "Data",
|
||||
th : "Header",
|
||||
cell_cell : 'Update current cell',
|
||||
cell_row : 'Update all cells in row',
|
||||
cell_all : 'Update all cells in table',
|
||||
row_row : 'Update current row',
|
||||
row_odd : 'Update odd rows in table',
|
||||
row_even : 'Update even rows in table',
|
||||
row_all : 'Update all rows in table',
|
||||
thead : 'Table Head',
|
||||
tbody : 'Table Body',
|
||||
tfoot : 'Table Foot',
|
||||
del : 'Delete table',
|
||||
scope : 'Scope',
|
||||
row : 'Row',
|
||||
col : 'Col',
|
||||
rowgroup : 'Row Group',
|
||||
colgroup : 'Col Group',
|
||||
col_limit : 'You\'ve exceeded the maximum number of columns of {$cols}.',
|
||||
row_limit : 'You\'ve exceeded the maximum number of rows of {$rows}.',
|
||||
cell_limit : 'You\'ve exceeded the maximum number of cells of {$cells}.',
|
||||
missing_scope: 'Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.'
|
||||
});
|
37
source/web/scripts/tiny_mce/plugins/table/merge_cells.htm
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>{$lang_table_merge_cells_title}</title>
|
||||
<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="jscripts/merge_cells.js"></script>
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body onload="tinyMCEPopup.executeOnLoad('init();');" style="margin: 8px" style="display: none">
|
||||
<form onsubmit="insertTable();return false;" action="#">
|
||||
<fieldset>
|
||||
<legend>{$lang_table_merge_cells_title}</legend>
|
||||
<table border="0" cellpadding="0" cellspacing="3" width="100%">
|
||||
<tr>
|
||||
<td>{$lang_table_cols}:</td>
|
||||
<td align="right"><input type="text" name="numcols" value="" style="width: 30px" /></td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$lang_table_rows}:</td>
|
||||
<td align="right"><input type="text" name="numrows" value="" style="width: 30px" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
<div class="mceActionPanel">
|
||||
<div style="float: left">
|
||||
<input type="button" id="insert" name="insert" value="{$lang_update}" onclick="mergeCells();" />
|
||||
</div>
|
||||
|
||||
<div style="float: right">
|
||||
<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
159
source/web/scripts/tiny_mce/plugins/table/row.htm
vendored
Normal file
@@ -0,0 +1,159 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>{$lang_table_row_title}</title>
|
||||
<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="jscripts/row.js"></script>
|
||||
<link href="css/row.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="tablerow" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
|
||||
<form onsubmit="updateAction();return false;">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_table_general_tab}</a></span></li>
|
||||
<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_table_advanced_tab}</a></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel_wrapper">
|
||||
<div id="general_panel" class="panel current">
|
||||
<fieldset>
|
||||
<legend>{$lang_table_general_props}</legend>
|
||||
|
||||
<table border="0" cellpadding="4" cellspacing="0">
|
||||
<tr>
|
||||
<td><label for="rowtype">{$lang_table_rowtype}</label></td>
|
||||
<td class="col2">
|
||||
<select id="rowtype" name="rowtype">
|
||||
<option value="thead">{$lang_table_thead}</option>
|
||||
<option value="tbody">{$lang_table_tbody}</option>
|
||||
<option value="tfoot">{$lang_table_tfoot}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><label for="align">{$lang_table_align}</label></td>
|
||||
<td class="col2">
|
||||
<select id="align" name="align">
|
||||
<option value="">{$lang_not_set}</option>
|
||||
<option value="center">{$lang_table_align_middle}</option>
|
||||
<option value="left">{$lang_table_align_left}</option>
|
||||
<option value="right">{$lang_table_align_right}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><label for="valign">{$lang_table_valign}</label></td>
|
||||
<td class="col2">
|
||||
<select id="valign" name="valign">
|
||||
<option value="">{$lang_not_set}</option>
|
||||
<option value="top">{$lang_table_align_top}</option>
|
||||
<option value="middle">{$lang_table_align_middle}</option>
|
||||
<option value="bottom">{$lang_table_align_bottom}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr id="styleSelectRow">
|
||||
<td><label for="class">{$lang_class_name}</label></td>
|
||||
<td class="col2">
|
||||
<select id="class" name="class">
|
||||
<option value="" selected="selected">{$lang_not_set}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><label for="height">{$lang_table_height}</label></td>
|
||||
<td class="col2"><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div id="advanced_panel" class="panel">
|
||||
<fieldset>
|
||||
<legend>{$lang_table_advanced_props}</legend>
|
||||
|
||||
<table border="0" cellpadding="0" cellspacing="4">
|
||||
<tr>
|
||||
<td class="column1"><label for="id">{$lang_table_id}</label></td>
|
||||
<td><input id="id" name="id" type="text" value="" style="width: 200px" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><label for="style">{$lang_table_style}</label></td>
|
||||
<td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="dir">{$lang_table_langdir}</label></td>
|
||||
<td>
|
||||
<select id="dir" name="dir" style="width: 200px">
|
||||
<option value="">{$lang_not_set}</option>
|
||||
<option value="ltr">{$lang_table_ltr}</option>
|
||||
<option value="rtl">{$lang_table_rtl}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="lang">{$lang_table_langcode}</label></td>
|
||||
<td>
|
||||
<input id="lang" name="lang" type="text" value="" style="width: 200px" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="backgroundimage">{$lang_table_bgimage}</label></td>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>
|
||||
<td id="backgroundimagebrowsercontainer"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="bgcolor">{$lang_table_bgcolor}</label></td>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>
|
||||
<td id="bgcolor_pickcontainer"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mceActionPanel">
|
||||
<div>
|
||||
<select id="action" name="action">
|
||||
<option value="row">{$lang_table_row_row}</option>
|
||||
<option value="odd">{$lang_table_row_odd}</option>
|
||||
<option value="even">{$lang_table_row_even}</option>
|
||||
<option value="all">{$lang_table_row_all}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div style="float: left">
|
||||
<div><input type="button" id="insert" name="insert" value="{$lang_update}" onclick="updateAction();" /></div>
|
||||
</div>
|
||||
|
||||
<div style="float: right">
|
||||
<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
155
source/web/scripts/tiny_mce/plugins/table/table.htm
vendored
Normal file
@@ -0,0 +1,155 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>{$lang_table_title}</title>
|
||||
<script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
|
||||
<script language="javascript" type="text/javascript" src="jscripts/table.js"></script>
|
||||
<link href="css/table.css" rel="stylesheet" type="text/css" />
|
||||
<base target="_self" />
|
||||
</head>
|
||||
<body id="table" onload="tinyMCEPopup.executeOnLoad('init();');" style="display: none">
|
||||
<form onsubmit="insertTable();return false;" action="#">
|
||||
<div class="tabs">
|
||||
<ul>
|
||||
<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_table_general_tab}</a></span></li>
|
||||
<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_table_advanced_tab}</a></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="panel_wrapper">
|
||||
<div id="general_panel" class="panel current">
|
||||
<fieldset>
|
||||
<legend>{$lang_table_general_props}</legend>
|
||||
|
||||
<table border="0" cellpadding="4" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td><label id="colslabel" for="cols">{$lang_table_cols}</label></td>
|
||||
<td><input id="cols" name="cols" type="text" value="" size="3" maxlength="3" /></td>
|
||||
<td><label id="rowslabel" for="rows">{$lang_table_rows}</label></td>
|
||||
<td><input id="rows" name="rows" type="text" value="" size="3" maxlength="3" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label id="cellpaddinglabel" for="cellpadding">{$lang_table_cellpadding}</label></td>
|
||||
<td><input id="cellpadding" name="cellpadding" type="text" value="" size="3" maxlength="3" /></td>
|
||||
<td><label id="cellspacinglabel" for="cellspacing">{$lang_table_cellspacing}</label></td>
|
||||
<td><input id="cellspacing" name="cellspacing" type="text" value="" size="3" maxlength="3" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label id="alignlabel" for="align">{$lang_table_align}</label></td>
|
||||
<td><select id="align" name="align">
|
||||
<option value="">{$lang_not_set}</option>
|
||||
<option value="center">{$lang_table_align_middle}</option>
|
||||
<option value="left">{$lang_table_align_left}</option>
|
||||
<option value="right">{$lang_table_align_right}</option>
|
||||
</select></td>
|
||||
<td><label id="borderlabel" for="border">{$lang_table_border}</label></td>
|
||||
<td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="changedBorder();" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label id="widthlabel" for="width">{$lang_table_width}</label></td>
|
||||
<td><input name="width" type="text" id="width" value="" size="4" maxlength="4" onchange="changedSize();" /></td>
|
||||
<td><label id="heightlabel" for="height">{$lang_table_height}</label></td>
|
||||
<td><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" /></td>
|
||||
</tr>
|
||||
<tr id="styleSelectRow">
|
||||
<td><label id="classlabel" for="class">{$lang_class_name}</label></td>
|
||||
<td colspan="3">
|
||||
<select id="class" name="class">
|
||||
<option value="" selected>{$lang_not_set}</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div id="advanced_panel" class="panel">
|
||||
<fieldset>
|
||||
<legend>{$lang_table_advanced_props}</legend>
|
||||
|
||||
<table border="0" cellpadding="0" cellspacing="4">
|
||||
<tr>
|
||||
<td class="column1"><label for="id">{$lang_table_id}</label></td>
|
||||
<td><input id="id" name="id" type="text" value="" class="advfield" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="summary">{$lang_table_summary}</label></td>
|
||||
<td><input id="summary" name="summary" type="text" value="" class="advfield" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><label for="style">{$lang_table_style}</label></td>
|
||||
<td><input type="text" id="style" name="style" value="" class="advfield" onchange="changedStyle();" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="dir">{$lang_table_langdir}</label></td>
|
||||
<td>
|
||||
<select id="dir" name="dir" class="advfield">
|
||||
<option value="">{$lang_not_set}</option>
|
||||
<option value="ltr">{$lang_table_ltr}</option>
|
||||
<option value="rtl">{$lang_table_rtl}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label id="langlabel" for="lang">{$lang_table_langcode}</label></td>
|
||||
<td>
|
||||
<input id="lang" name="lang" type="text" value="" class="advfield" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="backgroundimage">{$lang_table_bgimage}</label></td>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td><input id="backgroundimage" name="backgroundimage" type="text" value="" class="advfield" onchange="changedBackgroundImage();" /></td>
|
||||
<td id="backgroundimagebrowsercontainer"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="bordercolor">{$lang_table_bordercolor}</label></td>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>
|
||||
<td id="bordercolor_pickcontainer"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="column1"><label for="bgcolor">{$lang_table_bgcolor}</label></td>
|
||||
<td>
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>
|
||||
<td id="bgcolor_pickcontainer"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mceActionPanel">
|
||||
<div style="float: left">
|
||||
<input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertTable();" />
|
||||
</div>
|
||||
|
||||
<div style="float: right">
|
||||
<input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|