2 tinyMCEPopup.resizeToInnerSize();
4 var inst = tinyMCE.selectedInstance;
5 var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
6 var formObj = document.forms[0];
7 var st = tinyMCE.parseStyle(tdElm.style.cssText);
10 var celltype = tdElm.nodeName.toLowerCase();
11 var align = tinyMCE.getAttrib(tdElm, 'align');
12 var valign = tinyMCE.getAttrib(tdElm, 'valign');
13 var width = trimSize(getStyle(tdElm, 'width', 'width'));
14 var height = trimSize(getStyle(tdElm, 'height', 'height'));
15 var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
16 var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
17 var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tdElm, 'class'), false);
18 var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
19 var id = tinyMCE.getAttrib(tdElm, 'id');
20 var lang = tinyMCE.getAttrib(tdElm, 'lang');
21 var dir = tinyMCE.getAttrib(tdElm, 'dir');
22 var scope = tinyMCE.getAttrib(tdElm, 'scope');
25 addClassesToList('class', 'table_cell_styles');
26 formObj.bordercolor.value = bordercolor;
27 formObj.bgcolor.value = bgcolor;
28 formObj.backgroundimage.value = backgroundimage;
29 formObj.width.value = width;
30 formObj.height.value = height;
31 formObj.id.value = id;
32 formObj.lang.value = lang;
33 formObj.style.value = tinyMCE.serializeStyle(st);
34 selectByValue(formObj, 'align', align);
35 selectByValue(formObj, 'valign', valign);
36 selectByValue(formObj, 'class', className);
37 selectByValue(formObj, 'celltype', celltype);
38 selectByValue(formObj, 'dir', dir);
39 selectByValue(formObj, 'scope', scope);
41 // Resize some elements
42 if (isVisible('backgroundimagebrowser'))
43 document.getElementById('backgroundimage').style.width = '180px';
45 updateColor('bordercolor_pick', 'bordercolor');
46 updateColor('bgcolor_pick', 'bgcolor');
49 function updateAction() {
50 var inst = tinyMCE.selectedInstance;
51 var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
52 var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
53 var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
54 var formObj = document.forms[0];
56 inst.execCommand('mceBeginUndoLevel');
58 switch (getSelectValue(formObj, 'action')) {
60 var celltype = getSelectValue(formObj, 'celltype');
61 var scope = getSelectValue(formObj, 'scope');
63 if (tinyMCE.getParam("accessibility_warnings")) {
64 if (celltype == "th" && scope == "")
65 var answer = confirm(tinyMCE.getLang('lang_table_missing_scope', '', true));
77 var cell = trElm.firstChild;
80 cell = updateCell(cell, true);
81 } while ((cell = nextCell(cell)));
86 var rows = tableElm.getElementsByTagName("tr");
88 for (var i=0; i<rows.length; i++) {
89 var cell = rows[i].firstChild;
92 cell = updateCell(cell, true);
93 } while ((cell = nextCell(cell)));
99 tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
100 tinyMCE.triggerNodeChange();
101 inst.execCommand('mceEndUndoLevel');
102 tinyMCEPopup.close();
105 function nextCell(elm) {
106 while ((elm = elm.nextSibling)) {
107 if (elm.nodeName == "TD" || elm.nodeName == "TH")
114 function updateCell(td, skip_id) {
115 var inst = tinyMCE.selectedInstance;
116 var formObj = document.forms[0];
117 var curCellType = td.nodeName.toLowerCase();
118 var celltype = getSelectValue(formObj, 'celltype');
119 var doc = inst.getDoc();
122 td.setAttribute('id', formObj.id.value);
124 td.setAttribute('align', formObj.align.value);
125 td.setAttribute('vAlign', formObj.valign.value);
126 td.setAttribute('lang', formObj.lang.value);
127 td.setAttribute('dir', getSelectValue(formObj, 'dir'));
128 td.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));
129 td.setAttribute('scope', formObj.scope.value);
130 tinyMCE.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
132 // Clear deprecated attributes
133 tinyMCE.setAttrib(td, 'width', '');
134 tinyMCE.setAttrib(td, 'height', '');
135 tinyMCE.setAttrib(td, 'bgColor', '');
136 tinyMCE.setAttrib(td, 'borderColor', '');
137 tinyMCE.setAttrib(td, 'background', '');
140 td.style.width = getCSSSize(formObj.width.value);
141 td.style.height = getCSSSize(formObj.height.value);
142 if (formObj.bordercolor.value != "") {
143 td.style.borderColor = formObj.bordercolor.value;
144 td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
145 td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
147 td.style.borderColor = '';
149 td.style.backgroundColor = formObj.bgcolor.value;
151 if (formObj.backgroundimage.value != "")
152 td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
154 td.style.backgroundImage = '';
156 if (curCellType != celltype) {
157 // changing to a different node type
158 var newCell = doc.createElement(celltype);
160 for (var c=0; c<td.childNodes.length; c++) {
161 newCell.appendChild(td.childNodes[c].cloneNode(1));
164 for (var a=0; a<td.attributes.length; a++) {
165 var attr = td.attributes[a];
166 newCell.setAttribute(attr.name, attr.value);
169 td.parentNode.replaceChild(newCell, td);
178 function changedBackgroundImage() {
179 var formObj = document.forms[0];
180 var st = tinyMCE.parseStyle(formObj.style.value);
182 st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
184 formObj.style.value = tinyMCE.serializeStyle(st);
187 function changedSize() {
188 var formObj = document.forms[0];
189 var st = tinyMCE.parseStyle(formObj.style.value);
191 var width = formObj.width.value;
193 st['width'] = getCSSSize(width);
197 var height = formObj.height.value;
199 st['height'] = getCSSSize(height);
203 formObj.style.value = tinyMCE.serializeStyle(st);
206 function changedColor() {
207 var formObj = document.forms[0];
208 var st = tinyMCE.parseStyle(formObj.style.value);
210 st['background-color'] = formObj.bgcolor.value;
211 st['border-color'] = formObj.bordercolor.value;
213 formObj.style.value = tinyMCE.serializeStyle(st);
216 function changedStyle() {
217 var formObj = document.forms[0];
218 var st = tinyMCE.parseStyle(formObj.style.value);
220 if (st['background-image'])
221 formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
223 formObj.backgroundimage.value = '';
226 formObj.width.value = trimSize(st['width']);
229 formObj.height.value = trimSize(st['height']);
231 if (st['background-color']) {
232 formObj.bgcolor.value = st['background-color'];
233 updateColor('bgcolor_pick','bgcolor');
236 if (st['border-color']) {
237 formObj.bordercolor.value = st['border-color'];
238 updateColor('bordercolor_pick','bordercolor');