Browse code

Re-add TinyMCE 2.0.1 to the site settings list - TinyMCE directoy names changed - installer submission settings layout dirty fix

Clarissa Walker authored on 2026/07/27 11:20:38
Showing 1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,319 +0,0 @@
1
-tinyMCEPopup.requireLangPack();
2
-
3
-var ed;
4
-
5
-function init() {
6
-	ed = tinyMCEPopup.editor;
7
-	tinyMCEPopup.resizeToInnerSize();
8
-
9
-	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
10
-	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
11
-	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
12
-
13
-	var inst = ed;
14
-	var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th");
15
-	var formObj = document.forms[0];
16
-	var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));
17
-
18
-	// Get table cell data
19
-	var celltype = tdElm.nodeName.toLowerCase();
20
-	var align = ed.dom.getAttrib(tdElm, 'align');
21
-	var valign = ed.dom.getAttrib(tdElm, 'valign');
22
-	var width = trimSize(getStyle(tdElm, 'width', 'width'));
23
-	var height = trimSize(getStyle(tdElm, 'height', 'height'));
24
-	var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
25
-	var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
26
-	var className = ed.dom.getAttrib(tdElm, 'class');
27
-	var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
28
-	var id = ed.dom.getAttrib(tdElm, 'id');
29
-	var lang = ed.dom.getAttrib(tdElm, 'lang');
30
-	var dir = ed.dom.getAttrib(tdElm, 'dir');
31
-	var scope = ed.dom.getAttrib(tdElm, 'scope');
32
-
33
-	// Setup form
34
-	addClassesToList('class', 'table_cell_styles');
35
-	TinyMCE_EditableSelects.init();
36
-
37
-	if (!ed.dom.hasClass(tdElm, 'mceSelected')) {
38
-		formObj.bordercolor.value = bordercolor;
39
-		formObj.bgcolor.value = bgcolor;
40
-		formObj.backgroundimage.value = backgroundimage;
41
-		formObj.width.value = width;
42
-		formObj.height.value = height;
43
-		formObj.id.value = id;
44
-		formObj.lang.value = lang;
45
-		formObj.style.value = ed.dom.serializeStyle(st);
46
-		selectByValue(formObj, 'align', align);
47
-		selectByValue(formObj, 'valign', valign);
48
-		selectByValue(formObj, 'class', className, true, true);
49
-		selectByValue(formObj, 'celltype', celltype);
50
-		selectByValue(formObj, 'dir', dir);
51
-		selectByValue(formObj, 'scope', scope);
52
-
53
-		// Resize some elements
54
-		if (isVisible('backgroundimagebrowser'))
55
-			document.getElementById('backgroundimage').style.width = '180px';
56
-
57
-		updateColor('bordercolor_pick', 'bordercolor');
58
-		updateColor('bgcolor_pick', 'bgcolor');
59
-	} else
60
-		tinyMCEPopup.dom.hide('action');
61
-}
62
-
63
-function updateAction() {
64
-	var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];
65
-
66
-	if (!AutoValidator.validate(formObj)) {
67
-		tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.');
68
-		return false;
69
-	}
70
-
71
-	tinyMCEPopup.restoreSelection();
72
-	el = ed.selection.getStart();
73
-	tdElm = ed.dom.getParent(el, "td,th");
74
-	trElm = ed.dom.getParent(el, "tr");
75
-	tableElm = ed.dom.getParent(el, "table");
76
-
77
-	// Cell is selected
78
-	if (ed.dom.hasClass(tdElm, 'mceSelected')) {
79
-		// Update all selected sells
80
-		tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) {
81
-			updateCell(td);
82
-		});
83
-
84
-		ed.addVisual();
85
-		ed.nodeChanged();
86
-		inst.execCommand('mceEndUndoLevel');
87
-		tinyMCEPopup.close();
88
-		return;
89
-	}
90
-
91
-	switch (getSelectValue(formObj, 'action')) {
92
-		case "cell":
93
-			var celltype = getSelectValue(formObj, 'celltype');
94
-			var scope = getSelectValue(formObj, 'scope');
95
-
96
-			function doUpdate(s) {
97
-				if (s) {
98
-					updateCell(tdElm);
99
-
100
-					ed.addVisual();
101
-					ed.nodeChanged();
102
-					inst.execCommand('mceEndUndoLevel');
103
-					tinyMCEPopup.close();
104
-				}
105
-			};
106
-
107
-			if (ed.getParam("accessibility_warnings", 1)) {
108
-				if (celltype == "th" && scope == "")
109
-					tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate);
110
-				else
111
-					doUpdate(1);
112
-
113
-				return;
114
-			}
115
-
116
-			updateCell(tdElm);
117
-			break;
118
-
119
-		case "row":
120
-			var cell = trElm.firstChild;
121
-
122
-			if (cell.nodeName != "TD" && cell.nodeName != "TH")
123
-				cell = nextCell(cell);
124
-
125
-			do {
126
-				cell = updateCell(cell, true);
127
-			} while ((cell = nextCell(cell)) != null);
128
-
129
-			break;
130
-
131
-		case "col":
132
-			var curr, col = 0, cell = trElm.firstChild, rows = tableElm.getElementsByTagName("tr");
133
-
134
-			if (cell.nodeName != "TD" && cell.nodeName != "TH")
135
-				cell = nextCell(cell);
136
-
137
-			do {
138
-				if (cell == tdElm)
139
-					break;
140
-				col += cell.getAttribute("colspan");
141
-			} while ((cell = nextCell(cell)) != null);
142
-
143
-			for (var i=0; i<rows.length; i++) {
144
-				cell = rows[i].firstChild;
145
-
146
-				if (cell.nodeName != "TD" && cell.nodeName != "TH")
147
-					cell = nextCell(cell);
148
-
149
-				curr = 0;
150
-				do {
151
-					if (curr == col) {
152
-						cell = updateCell(cell, true);
153
-						break;
154
-					}
155
-					curr += cell.getAttribute("colspan");
156
-				} while ((cell = nextCell(cell)) != null);
157
-			}
158
-
159
-			break;
160
-
161
-		case "all":
162
-			var rows = tableElm.getElementsByTagName("tr");
163
-
164
-			for (var i=0; i<rows.length; i++) {
165
-				var cell = rows[i].firstChild;
166
-
167
-				if (cell.nodeName != "TD" && cell.nodeName != "TH")
168
-					cell = nextCell(cell);
169
-
170
-				do {
171
-					cell = updateCell(cell, true);
172
-				} while ((cell = nextCell(cell)) != null);
173
-			}
174
-
175
-			break;
176
-	}
177
-
178
-	ed.addVisual();
179
-	ed.nodeChanged();
180
-	inst.execCommand('mceEndUndoLevel');
181
-	tinyMCEPopup.close();
182
-}
183
-
184
-function nextCell(elm) {
185
-	while ((elm = elm.nextSibling) != null) {
186
-		if (elm.nodeName == "TD" || elm.nodeName == "TH")
187
-			return elm;
188
-	}
189
-
190
-	return null;
191
-}
192
-
193
-function updateCell(td, skip_id) {
194
-	var inst = ed;
195
-	var formObj = document.forms[0];
196
-	var curCellType = td.nodeName.toLowerCase();
197
-	var celltype = getSelectValue(formObj, 'celltype');
198
-	var doc = inst.getDoc();
199
-	var dom = ed.dom;
200
-
201
-	if (!skip_id)
202
-		dom.setAttrib(td, 'id', formObj.id.value);
203
-
204
-	dom.setAttrib(td, 'align', formObj.align.value);
205
-	dom.setAttrib(td, 'vAlign', formObj.valign.value);
206
-	dom.setAttrib(td, 'lang', formObj.lang.value);
207
-	dom.setAttrib(td, 'dir', getSelectValue(formObj, 'dir'));
208
-	dom.setAttrib(td, 'style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));
209
-	dom.setAttrib(td, 'scope', formObj.scope.value);
210
-	dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
211
-
212
-	// Clear deprecated attributes
213
-	ed.dom.setAttrib(td, 'width', '');
214
-	ed.dom.setAttrib(td, 'height', '');
215
-	ed.dom.setAttrib(td, 'bgColor', '');
216
-	ed.dom.setAttrib(td, 'borderColor', '');
217
-	ed.dom.setAttrib(td, 'background', '');
218
-
219
-	// Set styles
220
-	td.style.width = getCSSSize(formObj.width.value);
221
-	td.style.height = getCSSSize(formObj.height.value);
222
-	if (formObj.bordercolor.value != "") {
223
-		td.style.borderColor = formObj.bordercolor.value;
224
-		td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
225
-		td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
226
-	} else
227
-		td.style.borderColor = '';
228
-
229
-	td.style.backgroundColor = formObj.bgcolor.value;
230
-
231
-	if (formObj.backgroundimage.value != "")
232
-		td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
233
-	else
234
-		td.style.backgroundImage = '';
235
-
236
-	if (curCellType != celltype) {
237
-		// changing to a different node type
238
-		var newCell = doc.createElement(celltype);
239
-
240
-		for (var c=0; c<td.childNodes.length; c++)
241
-			newCell.appendChild(td.childNodes[c].cloneNode(1));
242
-
243
-		for (var a=0; a<td.attributes.length; a++)
244
-			ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));
245
-
246
-		td.parentNode.replaceChild(newCell, td);
247
-		td = newCell;
248
-	}
249
-
250
-	dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));
251
-
252
-	return td;
253
-}
254
-
255
-function changedBackgroundImage() {
256
-	var formObj = document.forms[0];
257
-	var st = ed.dom.parseStyle(formObj.style.value);
258
-
259
-	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
260
-
261
-	formObj.style.value = ed.dom.serializeStyle(st);
262
-}
263
-
264
-function changedSize() {
265
-	var formObj = document.forms[0];
266
-	var st = ed.dom.parseStyle(formObj.style.value);
267
-
268
-	var width = formObj.width.value;
269
-	if (width != "")
270
-		st['width'] = getCSSSize(width);
271
-	else
272
-		st['width'] = "";
273
-
274
-	var height = formObj.height.value;
275
-	if (height != "")
276
-		st['height'] = getCSSSize(height);
277
-	else
278
-		st['height'] = "";
279
-
280
-	formObj.style.value = ed.dom.serializeStyle(st);
281
-}
282
-
283
-function changedColor() {
284
-	var formObj = document.forms[0];
285
-	var st = ed.dom.parseStyle(formObj.style.value);
286
-
287
-	st['background-color'] = formObj.bgcolor.value;
288
-	st['border-color'] = formObj.bordercolor.value;
289
-
290
-	formObj.style.value = ed.dom.serializeStyle(st);
291
-}
292
-
293
-function changedStyle() {
294
-	var formObj = document.forms[0];
295
-	var st = ed.dom.parseStyle(formObj.style.value);
296
-
297
-	if (st['background-image'])
298
-		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
299
-	else
300
-		formObj.backgroundimage.value = '';
301
-
302
-	if (st['width'])
303
-		formObj.width.value = trimSize(st['width']);
304
-
305
-	if (st['height'])
306
-		formObj.height.value = trimSize(st['height']);
307
-
308
-	if (st['background-color']) {
309
-		formObj.bgcolor.value = st['background-color'];
310
-		updateColor('bgcolor_pick','bgcolor');
311
-	}
312
-
313
-	if (st['border-color']) {
314
-		formObj.bordercolor.value = st['border-color'];
315
-		updateColor('bordercolor_pick','bordercolor');
316
-	}
317
-}
318
-
319
-tinyMCEPopup.onInit.add(init);
Browse code

Actually use TinyMCE 3.4.8 for TinyMCE3 option instead of original 2.0.1; that version is moved to 'tinymce2' directory

Clarissa Walker authored on 2026/07/27 09:02:31
Showing 1 changed files
... ...
@@ -1,259 +1,319 @@
1
-tinyMCEPopup.requireLangPack();
2
-
3
-var ed;
4
-
5
-function init() {
6
-	ed = tinyMCEPopup.editor;
7
-	tinyMCEPopup.resizeToInnerSize();
8
-
9
-	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
10
-	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
11
-	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
12
-
13
-	var inst = ed;
14
-	var tdElm = ed.dom.getParent(ed.selection.getNode(), "td,th");
15
-	var formObj = document.forms[0];
16
-	var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));
17
-
18
-	// Get table cell data
19
-	var celltype = tdElm.nodeName.toLowerCase();
20
-	var align = ed.dom.getAttrib(tdElm, 'align');
21
-	var valign = ed.dom.getAttrib(tdElm, 'valign');
22
-	var width = trimSize(getStyle(tdElm, 'width', 'width'));
23
-	var height = trimSize(getStyle(tdElm, 'height', 'height'));
24
-	var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
25
-	var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
26
-	var className = ed.dom.getAttrib(tdElm, 'class');
27
-	var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
28
-	var id = ed.dom.getAttrib(tdElm, 'id');
29
-	var lang = ed.dom.getAttrib(tdElm, 'lang');
30
-	var dir = ed.dom.getAttrib(tdElm, 'dir');
31
-	var scope = ed.dom.getAttrib(tdElm, 'scope');
32
-
33
-	// Setup form
34
-	addClassesToList('class', 'table_cell_styles');
35
-	TinyMCE_EditableSelects.init();
36
-
37
-	formObj.bordercolor.value = bordercolor;
38
-	formObj.bgcolor.value = bgcolor;
39
-	formObj.backgroundimage.value = backgroundimage;
40
-	formObj.width.value = width;
41
-	formObj.height.value = height;
42
-	formObj.id.value = id;
43
-	formObj.lang.value = lang;
44
-	formObj.style.value = ed.dom.serializeStyle(st);
45
-	selectByValue(formObj, 'align', align);
46
-	selectByValue(formObj, 'valign', valign);
47
-	selectByValue(formObj, 'class', className, true, true);
48
-	selectByValue(formObj, 'celltype', celltype);
49
-	selectByValue(formObj, 'dir', dir);
50
-	selectByValue(formObj, 'scope', scope);
51
-
52
-	// Resize some elements
53
-	if (isVisible('backgroundimagebrowser'))
54
-		document.getElementById('backgroundimage').style.width = '180px';
55
-
56
-	updateColor('bordercolor_pick', 'bordercolor');
57
-	updateColor('bgcolor_pick', 'bgcolor');
58
-}
59
-
60
-function updateAction() {
61
-	var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];
62
-
63
-	tinyMCEPopup.restoreSelection();
64
-	el = ed.selection.getNode();
65
-	tdElm = ed.dom.getParent(el, "td,th");
66
-	trElm = ed.dom.getParent(el, "tr");
67
-	tableElm = ed.dom.getParent(el, "table");
68
-
69
-	ed.execCommand('mceBeginUndoLevel');
70
-
71
-	switch (getSelectValue(formObj, 'action')) {
72
-		case "cell":
73
-			var celltype = getSelectValue(formObj, 'celltype');
74
-			var scope = getSelectValue(formObj, 'scope');
75
-
76
-			if (ed.getParam("accessibility_warnings")) {
77
-				if (celltype == "th" && scope == "")
78
-					var answer = confirm(ed.getLang('table_dlg.missing_scope', '', true));
79
-				else
80
-					var answer = true;
81
-
82
-				if (!answer)
83
-					return;
84
-			}
85
-
86
-			updateCell(tdElm);
87
-			break;
88
-
89
-		case "row":
90
-			var cell = trElm.firstChild;
91
-
92
-			if (cell.nodeName != "TD" && cell.nodeName != "TH")
93
-				cell = nextCell(cell);
94
-
95
-			do {
96
-				cell = updateCell(cell, true);
97
-			} while ((cell = nextCell(cell)) != null);
98
-
99
-			break;
100
-
101
-		case "all":
102
-			var rows = tableElm.getElementsByTagName("tr");
103
-
104
-			for (var i=0; i<rows.length; i++) {
105
-				var cell = rows[i].firstChild;
106
-
107
-				if (cell.nodeName != "TD" && cell.nodeName != "TH")
108
-					cell = nextCell(cell);
109
-
110
-				do {
111
-					cell = updateCell(cell, true);
112
-				} while ((cell = nextCell(cell)) != null);
113
-			}
114
-
115
-			break;
116
-	}
117
-
118
-	ed.addVisual();
119
-	ed.nodeChanged();
120
-	inst.execCommand('mceEndUndoLevel');
121
-	tinyMCEPopup.close();
122
-}
123
-
124
-function nextCell(elm) {
125
-	while ((elm = elm.nextSibling) != null) {
126
-		if (elm.nodeName == "TD" || elm.nodeName == "TH")
127
-			return elm;
128
-	}
129
-
130
-	return null;
131
-}
132
-
133
-function updateCell(td, skip_id) {
134
-	var inst = ed;
135
-	var formObj = document.forms[0];
136
-	var curCellType = td.nodeName.toLowerCase();
137
-	var celltype = getSelectValue(formObj, 'celltype');
138
-	var doc = inst.getDoc();
139
-	var dom = ed.dom;
140
-
141
-	if (!skip_id)
142
-		td.setAttribute('id', formObj.id.value);
143
-
144
-	td.setAttribute('align', formObj.align.value);
145
-	td.setAttribute('vAlign', formObj.valign.value);
146
-	td.setAttribute('lang', formObj.lang.value);
147
-	td.setAttribute('dir', getSelectValue(formObj, 'dir'));
148
-	td.setAttribute('style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));
149
-	td.setAttribute('scope', formObj.scope.value);
150
-	ed.dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
151
-
152
-	// Clear deprecated attributes
153
-	ed.dom.setAttrib(td, 'width', '');
154
-	ed.dom.setAttrib(td, 'height', '');
155
-	ed.dom.setAttrib(td, 'bgColor', '');
156
-	ed.dom.setAttrib(td, 'borderColor', '');
157
-	ed.dom.setAttrib(td, 'background', '');
158
-
159
-	// Set styles
160
-	td.style.width = getCSSSize(formObj.width.value);
161
-	td.style.height = getCSSSize(formObj.height.value);
162
-	if (formObj.bordercolor.value != "") {
163
-		td.style.borderColor = formObj.bordercolor.value;
164
-		td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
165
-		td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
166
-	} else
167
-		td.style.borderColor = '';
168
-
169
-	td.style.backgroundColor = formObj.bgcolor.value;
170
-
171
-	if (formObj.backgroundimage.value != "")
172
-		td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
173
-	else
174
-		td.style.backgroundImage = '';
175
-
176
-	if (curCellType != celltype) {
177
-		// changing to a different node type
178
-		var newCell = doc.createElement(celltype);
179
-
180
-		for (var c=0; c<td.childNodes.length; c++)
181
-			newCell.appendChild(td.childNodes[c].cloneNode(1));
182
-
183
-		for (var a=0; a<td.attributes.length; a++)
184
-			ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));
185
-
186
-		td.parentNode.replaceChild(newCell, td);
187
-		td = newCell;
188
-	}
189
-
190
-	dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));
191
-
192
-	return td;
193
-}
194
-
195
-function changedBackgroundImage() {
196
-	var formObj = document.forms[0];
197
-	var st = ed.dom.parseStyle(formObj.style.value);
198
-
199
-	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
200
-
201
-	formObj.style.value = ed.dom.serializeStyle(st);
202
-}
203
-
204
-function changedSize() {
205
-	var formObj = document.forms[0];
206
-	var st = ed.dom.parseStyle(formObj.style.value);
207
-
208
-	var width = formObj.width.value;
209
-	if (width != "")
210
-		st['width'] = getCSSSize(width);
211
-	else
212
-		st['width'] = "";
213
-
214
-	var height = formObj.height.value;
215
-	if (height != "")
216
-		st['height'] = getCSSSize(height);
217
-	else
218
-		st['height'] = "";
219
-
220
-	formObj.style.value = ed.dom.serializeStyle(st);
221
-}
222
-
223
-function changedColor() {
224
-	var formObj = document.forms[0];
225
-	var st = ed.dom.parseStyle(formObj.style.value);
226
-
227
-	st['background-color'] = formObj.bgcolor.value;
228
-	st['border-color'] = formObj.bordercolor.value;
229
-
230
-	formObj.style.value = ed.dom.serializeStyle(st);
231
-}
232
-
233
-function changedStyle() {
234
-	var formObj = document.forms[0];
235
-	var st = ed.dom.parseStyle(formObj.style.value);
236
-
237
-	if (st['background-image'])
238
-		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
239
-	else
240
-		formObj.backgroundimage.value = '';
241
-
242
-	if (st['width'])
243
-		formObj.width.value = trimSize(st['width']);
244
-
245
-	if (st['height'])
246
-		formObj.height.value = trimSize(st['height']);
247
-
248
-	if (st['background-color']) {
249
-		formObj.bgcolor.value = st['background-color'];
250
-		updateColor('bgcolor_pick','bgcolor');
251
-	}
252
-
253
-	if (st['border-color']) {
254
-		formObj.bordercolor.value = st['border-color'];
255
-		updateColor('bordercolor_pick','bordercolor');
256
-	}
257
-}
258
-
259
-tinyMCEPopup.onInit.add(init);
1
+tinyMCEPopup.requireLangPack();
2
+
3
+var ed;
4
+
5
+function init() {
6
+	ed = tinyMCEPopup.editor;
7
+	tinyMCEPopup.resizeToInnerSize();
8
+
9
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
10
+	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
11
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
12
+
13
+	var inst = ed;
14
+	var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th");
15
+	var formObj = document.forms[0];
16
+	var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));
17
+
18
+	// Get table cell data
19
+	var celltype = tdElm.nodeName.toLowerCase();
20
+	var align = ed.dom.getAttrib(tdElm, 'align');
21
+	var valign = ed.dom.getAttrib(tdElm, 'valign');
22
+	var width = trimSize(getStyle(tdElm, 'width', 'width'));
23
+	var height = trimSize(getStyle(tdElm, 'height', 'height'));
24
+	var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
25
+	var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
26
+	var className = ed.dom.getAttrib(tdElm, 'class');
27
+	var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
28
+	var id = ed.dom.getAttrib(tdElm, 'id');
29
+	var lang = ed.dom.getAttrib(tdElm, 'lang');
30
+	var dir = ed.dom.getAttrib(tdElm, 'dir');
31
+	var scope = ed.dom.getAttrib(tdElm, 'scope');
32
+
33
+	// Setup form
34
+	addClassesToList('class', 'table_cell_styles');
35
+	TinyMCE_EditableSelects.init();
36
+
37
+	if (!ed.dom.hasClass(tdElm, 'mceSelected')) {
38
+		formObj.bordercolor.value = bordercolor;
39
+		formObj.bgcolor.value = bgcolor;
40
+		formObj.backgroundimage.value = backgroundimage;
41
+		formObj.width.value = width;
42
+		formObj.height.value = height;
43
+		formObj.id.value = id;
44
+		formObj.lang.value = lang;
45
+		formObj.style.value = ed.dom.serializeStyle(st);
46
+		selectByValue(formObj, 'align', align);
47
+		selectByValue(formObj, 'valign', valign);
48
+		selectByValue(formObj, 'class', className, true, true);
49
+		selectByValue(formObj, 'celltype', celltype);
50
+		selectByValue(formObj, 'dir', dir);
51
+		selectByValue(formObj, 'scope', scope);
52
+
53
+		// Resize some elements
54
+		if (isVisible('backgroundimagebrowser'))
55
+			document.getElementById('backgroundimage').style.width = '180px';
56
+
57
+		updateColor('bordercolor_pick', 'bordercolor');
58
+		updateColor('bgcolor_pick', 'bgcolor');
59
+	} else
60
+		tinyMCEPopup.dom.hide('action');
61
+}
62
+
63
+function updateAction() {
64
+	var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];
65
+
66
+	if (!AutoValidator.validate(formObj)) {
67
+		tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.');
68
+		return false;
69
+	}
70
+
71
+	tinyMCEPopup.restoreSelection();
72
+	el = ed.selection.getStart();
73
+	tdElm = ed.dom.getParent(el, "td,th");
74
+	trElm = ed.dom.getParent(el, "tr");
75
+	tableElm = ed.dom.getParent(el, "table");
76
+
77
+	// Cell is selected
78
+	if (ed.dom.hasClass(tdElm, 'mceSelected')) {
79
+		// Update all selected sells
80
+		tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) {
81
+			updateCell(td);
82
+		});
83
+
84
+		ed.addVisual();
85
+		ed.nodeChanged();
86
+		inst.execCommand('mceEndUndoLevel');
87
+		tinyMCEPopup.close();
88
+		return;
89
+	}
90
+
91
+	switch (getSelectValue(formObj, 'action')) {
92
+		case "cell":
93
+			var celltype = getSelectValue(formObj, 'celltype');
94
+			var scope = getSelectValue(formObj, 'scope');
95
+
96
+			function doUpdate(s) {
97
+				if (s) {
98
+					updateCell(tdElm);
99
+
100
+					ed.addVisual();
101
+					ed.nodeChanged();
102
+					inst.execCommand('mceEndUndoLevel');
103
+					tinyMCEPopup.close();
104
+				}
105
+			};
106
+
107
+			if (ed.getParam("accessibility_warnings", 1)) {
108
+				if (celltype == "th" && scope == "")
109
+					tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate);
110
+				else
111
+					doUpdate(1);
112
+
113
+				return;
114
+			}
115
+
116
+			updateCell(tdElm);
117
+			break;
118
+
119
+		case "row":
120
+			var cell = trElm.firstChild;
121
+
122
+			if (cell.nodeName != "TD" && cell.nodeName != "TH")
123
+				cell = nextCell(cell);
124
+
125
+			do {
126
+				cell = updateCell(cell, true);
127
+			} while ((cell = nextCell(cell)) != null);
128
+
129
+			break;
130
+
131
+		case "col":
132
+			var curr, col = 0, cell = trElm.firstChild, rows = tableElm.getElementsByTagName("tr");
133
+
134
+			if (cell.nodeName != "TD" && cell.nodeName != "TH")
135
+				cell = nextCell(cell);
136
+
137
+			do {
138
+				if (cell == tdElm)
139
+					break;
140
+				col += cell.getAttribute("colspan");
141
+			} while ((cell = nextCell(cell)) != null);
142
+
143
+			for (var i=0; i<rows.length; i++) {
144
+				cell = rows[i].firstChild;
145
+
146
+				if (cell.nodeName != "TD" && cell.nodeName != "TH")
147
+					cell = nextCell(cell);
148
+
149
+				curr = 0;
150
+				do {
151
+					if (curr == col) {
152
+						cell = updateCell(cell, true);
153
+						break;
154
+					}
155
+					curr += cell.getAttribute("colspan");
156
+				} while ((cell = nextCell(cell)) != null);
157
+			}
158
+
159
+			break;
160
+
161
+		case "all":
162
+			var rows = tableElm.getElementsByTagName("tr");
163
+
164
+			for (var i=0; i<rows.length; i++) {
165
+				var cell = rows[i].firstChild;
166
+
167
+				if (cell.nodeName != "TD" && cell.nodeName != "TH")
168
+					cell = nextCell(cell);
169
+
170
+				do {
171
+					cell = updateCell(cell, true);
172
+				} while ((cell = nextCell(cell)) != null);
173
+			}
174
+
175
+			break;
176
+	}
177
+
178
+	ed.addVisual();
179
+	ed.nodeChanged();
180
+	inst.execCommand('mceEndUndoLevel');
181
+	tinyMCEPopup.close();
182
+}
183
+
184
+function nextCell(elm) {
185
+	while ((elm = elm.nextSibling) != null) {
186
+		if (elm.nodeName == "TD" || elm.nodeName == "TH")
187
+			return elm;
188
+	}
189
+
190
+	return null;
191
+}
192
+
193
+function updateCell(td, skip_id) {
194
+	var inst = ed;
195
+	var formObj = document.forms[0];
196
+	var curCellType = td.nodeName.toLowerCase();
197
+	var celltype = getSelectValue(formObj, 'celltype');
198
+	var doc = inst.getDoc();
199
+	var dom = ed.dom;
200
+
201
+	if (!skip_id)
202
+		dom.setAttrib(td, 'id', formObj.id.value);
203
+
204
+	dom.setAttrib(td, 'align', formObj.align.value);
205
+	dom.setAttrib(td, 'vAlign', formObj.valign.value);
206
+	dom.setAttrib(td, 'lang', formObj.lang.value);
207
+	dom.setAttrib(td, 'dir', getSelectValue(formObj, 'dir'));
208
+	dom.setAttrib(td, 'style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));
209
+	dom.setAttrib(td, 'scope', formObj.scope.value);
210
+	dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
211
+
212
+	// Clear deprecated attributes
213
+	ed.dom.setAttrib(td, 'width', '');
214
+	ed.dom.setAttrib(td, 'height', '');
215
+	ed.dom.setAttrib(td, 'bgColor', '');
216
+	ed.dom.setAttrib(td, 'borderColor', '');
217
+	ed.dom.setAttrib(td, 'background', '');
218
+
219
+	// Set styles
220
+	td.style.width = getCSSSize(formObj.width.value);
221
+	td.style.height = getCSSSize(formObj.height.value);
222
+	if (formObj.bordercolor.value != "") {
223
+		td.style.borderColor = formObj.bordercolor.value;
224
+		td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
225
+		td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
226
+	} else
227
+		td.style.borderColor = '';
228
+
229
+	td.style.backgroundColor = formObj.bgcolor.value;
230
+
231
+	if (formObj.backgroundimage.value != "")
232
+		td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
233
+	else
234
+		td.style.backgroundImage = '';
235
+
236
+	if (curCellType != celltype) {
237
+		// changing to a different node type
238
+		var newCell = doc.createElement(celltype);
239
+
240
+		for (var c=0; c<td.childNodes.length; c++)
241
+			newCell.appendChild(td.childNodes[c].cloneNode(1));
242
+
243
+		for (var a=0; a<td.attributes.length; a++)
244
+			ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));
245
+
246
+		td.parentNode.replaceChild(newCell, td);
247
+		td = newCell;
248
+	}
249
+
250
+	dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));
251
+
252
+	return td;
253
+}
254
+
255
+function changedBackgroundImage() {
256
+	var formObj = document.forms[0];
257
+	var st = ed.dom.parseStyle(formObj.style.value);
258
+
259
+	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
260
+
261
+	formObj.style.value = ed.dom.serializeStyle(st);
262
+}
263
+
264
+function changedSize() {
265
+	var formObj = document.forms[0];
266
+	var st = ed.dom.parseStyle(formObj.style.value);
267
+
268
+	var width = formObj.width.value;
269
+	if (width != "")
270
+		st['width'] = getCSSSize(width);
271
+	else
272
+		st['width'] = "";
273
+
274
+	var height = formObj.height.value;
275
+	if (height != "")
276
+		st['height'] = getCSSSize(height);
277
+	else
278
+		st['height'] = "";
279
+
280
+	formObj.style.value = ed.dom.serializeStyle(st);
281
+}
282
+
283
+function changedColor() {
284
+	var formObj = document.forms[0];
285
+	var st = ed.dom.parseStyle(formObj.style.value);
286
+
287
+	st['background-color'] = formObj.bgcolor.value;
288
+	st['border-color'] = formObj.bordercolor.value;
289
+
290
+	formObj.style.value = ed.dom.serializeStyle(st);
291
+}
292
+
293
+function changedStyle() {
294
+	var formObj = document.forms[0];
295
+	var st = ed.dom.parseStyle(formObj.style.value);
296
+
297
+	if (st['background-image'])
298
+		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
299
+	else
300
+		formObj.backgroundimage.value = '';
301
+
302
+	if (st['width'])
303
+		formObj.width.value = trimSize(st['width']);
304
+
305
+	if (st['height'])
306
+		formObj.height.value = trimSize(st['height']);
307
+
308
+	if (st['background-color']) {
309
+		formObj.bgcolor.value = st['background-color'];
310
+		updateColor('bgcolor_pick','bgcolor');
311
+	}
312
+
313
+	if (st['border-color']) {
314
+		formObj.bordercolor.value = st['border-color'];
315
+		updateColor('bordercolor_pick','bordercolor');
316
+	}
317
+}
318
+
319
+tinyMCEPopup.onInit.add(init);
Browse code

3.5.6 efiction version

Jimako authored on 2024/03/09 16:09:42
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,259 @@
1
+tinyMCEPopup.requireLangPack();
2
+
3
+var ed;
4
+
5
+function init() {
6
+	ed = tinyMCEPopup.editor;
7
+	tinyMCEPopup.resizeToInnerSize();
8
+
9
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
10
+	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
11
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
12
+
13
+	var inst = ed;
14
+	var tdElm = ed.dom.getParent(ed.selection.getNode(), "td,th");
15
+	var formObj = document.forms[0];
16
+	var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));
17
+
18
+	// Get table cell data
19
+	var celltype = tdElm.nodeName.toLowerCase();
20
+	var align = ed.dom.getAttrib(tdElm, 'align');
21
+	var valign = ed.dom.getAttrib(tdElm, 'valign');
22
+	var width = trimSize(getStyle(tdElm, 'width', 'width'));
23
+	var height = trimSize(getStyle(tdElm, 'height', 'height'));
24
+	var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
25
+	var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
26
+	var className = ed.dom.getAttrib(tdElm, 'class');
27
+	var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
28
+	var id = ed.dom.getAttrib(tdElm, 'id');
29
+	var lang = ed.dom.getAttrib(tdElm, 'lang');
30
+	var dir = ed.dom.getAttrib(tdElm, 'dir');
31
+	var scope = ed.dom.getAttrib(tdElm, 'scope');
32
+
33
+	// Setup form
34
+	addClassesToList('class', 'table_cell_styles');
35
+	TinyMCE_EditableSelects.init();
36
+
37
+	formObj.bordercolor.value = bordercolor;
38
+	formObj.bgcolor.value = bgcolor;
39
+	formObj.backgroundimage.value = backgroundimage;
40
+	formObj.width.value = width;
41
+	formObj.height.value = height;
42
+	formObj.id.value = id;
43
+	formObj.lang.value = lang;
44
+	formObj.style.value = ed.dom.serializeStyle(st);
45
+	selectByValue(formObj, 'align', align);
46
+	selectByValue(formObj, 'valign', valign);
47
+	selectByValue(formObj, 'class', className, true, true);
48
+	selectByValue(formObj, 'celltype', celltype);
49
+	selectByValue(formObj, 'dir', dir);
50
+	selectByValue(formObj, 'scope', scope);
51
+
52
+	// Resize some elements
53
+	if (isVisible('backgroundimagebrowser'))
54
+		document.getElementById('backgroundimage').style.width = '180px';
55
+
56
+	updateColor('bordercolor_pick', 'bordercolor');
57
+	updateColor('bgcolor_pick', 'bgcolor');
58
+}
59
+
60
+function updateAction() {
61
+	var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];
62
+
63
+	tinyMCEPopup.restoreSelection();
64
+	el = ed.selection.getNode();
65
+	tdElm = ed.dom.getParent(el, "td,th");
66
+	trElm = ed.dom.getParent(el, "tr");
67
+	tableElm = ed.dom.getParent(el, "table");
68
+
69
+	ed.execCommand('mceBeginUndoLevel');
70
+
71
+	switch (getSelectValue(formObj, 'action')) {
72
+		case "cell":
73
+			var celltype = getSelectValue(formObj, 'celltype');
74
+			var scope = getSelectValue(formObj, 'scope');
75
+
76
+			if (ed.getParam("accessibility_warnings")) {
77
+				if (celltype == "th" && scope == "")
78
+					var answer = confirm(ed.getLang('table_dlg.missing_scope', '', true));
79
+				else
80
+					var answer = true;
81
+
82
+				if (!answer)
83
+					return;
84
+			}
85
+
86
+			updateCell(tdElm);
87
+			break;
88
+
89
+		case "row":
90
+			var cell = trElm.firstChild;
91
+
92
+			if (cell.nodeName != "TD" && cell.nodeName != "TH")
93
+				cell = nextCell(cell);
94
+
95
+			do {
96
+				cell = updateCell(cell, true);
97
+			} while ((cell = nextCell(cell)) != null);
98
+
99
+			break;
100
+
101
+		case "all":
102
+			var rows = tableElm.getElementsByTagName("tr");
103
+
104
+			for (var i=0; i<rows.length; i++) {
105
+				var cell = rows[i].firstChild;
106
+
107
+				if (cell.nodeName != "TD" && cell.nodeName != "TH")
108
+					cell = nextCell(cell);
109
+
110
+				do {
111
+					cell = updateCell(cell, true);
112
+				} while ((cell = nextCell(cell)) != null);
113
+			}
114
+
115
+			break;
116
+	}
117
+
118
+	ed.addVisual();
119
+	ed.nodeChanged();
120
+	inst.execCommand('mceEndUndoLevel');
121
+	tinyMCEPopup.close();
122
+}
123
+
124
+function nextCell(elm) {
125
+	while ((elm = elm.nextSibling) != null) {
126
+		if (elm.nodeName == "TD" || elm.nodeName == "TH")
127
+			return elm;
128
+	}
129
+
130
+	return null;
131
+}
132
+
133
+function updateCell(td, skip_id) {
134
+	var inst = ed;
135
+	var formObj = document.forms[0];
136
+	var curCellType = td.nodeName.toLowerCase();
137
+	var celltype = getSelectValue(formObj, 'celltype');
138
+	var doc = inst.getDoc();
139
+	var dom = ed.dom;
140
+
141
+	if (!skip_id)
142
+		td.setAttribute('id', formObj.id.value);
143
+
144
+	td.setAttribute('align', formObj.align.value);
145
+	td.setAttribute('vAlign', formObj.valign.value);
146
+	td.setAttribute('lang', formObj.lang.value);
147
+	td.setAttribute('dir', getSelectValue(formObj, 'dir'));
148
+	td.setAttribute('style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));
149
+	td.setAttribute('scope', formObj.scope.value);
150
+	ed.dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
151
+
152
+	// Clear deprecated attributes
153
+	ed.dom.setAttrib(td, 'width', '');
154
+	ed.dom.setAttrib(td, 'height', '');
155
+	ed.dom.setAttrib(td, 'bgColor', '');
156
+	ed.dom.setAttrib(td, 'borderColor', '');
157
+	ed.dom.setAttrib(td, 'background', '');
158
+
159
+	// Set styles
160
+	td.style.width = getCSSSize(formObj.width.value);
161
+	td.style.height = getCSSSize(formObj.height.value);
162
+	if (formObj.bordercolor.value != "") {
163
+		td.style.borderColor = formObj.bordercolor.value;
164
+		td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
165
+		td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
166
+	} else
167
+		td.style.borderColor = '';
168
+
169
+	td.style.backgroundColor = formObj.bgcolor.value;
170
+
171
+	if (formObj.backgroundimage.value != "")
172
+		td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
173
+	else
174
+		td.style.backgroundImage = '';
175
+
176
+	if (curCellType != celltype) {
177
+		// changing to a different node type
178
+		var newCell = doc.createElement(celltype);
179
+
180
+		for (var c=0; c<td.childNodes.length; c++)
181
+			newCell.appendChild(td.childNodes[c].cloneNode(1));
182
+
183
+		for (var a=0; a<td.attributes.length; a++)
184
+			ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));
185
+
186
+		td.parentNode.replaceChild(newCell, td);
187
+		td = newCell;
188
+	}
189
+
190
+	dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));
191
+
192
+	return td;
193
+}
194
+
195
+function changedBackgroundImage() {
196
+	var formObj = document.forms[0];
197
+	var st = ed.dom.parseStyle(formObj.style.value);
198
+
199
+	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
200
+
201
+	formObj.style.value = ed.dom.serializeStyle(st);
202
+}
203
+
204
+function changedSize() {
205
+	var formObj = document.forms[0];
206
+	var st = ed.dom.parseStyle(formObj.style.value);
207
+
208
+	var width = formObj.width.value;
209
+	if (width != "")
210
+		st['width'] = getCSSSize(width);
211
+	else
212
+		st['width'] = "";
213
+
214
+	var height = formObj.height.value;
215
+	if (height != "")
216
+		st['height'] = getCSSSize(height);
217
+	else
218
+		st['height'] = "";
219
+
220
+	formObj.style.value = ed.dom.serializeStyle(st);
221
+}
222
+
223
+function changedColor() {
224
+	var formObj = document.forms[0];
225
+	var st = ed.dom.parseStyle(formObj.style.value);
226
+
227
+	st['background-color'] = formObj.bgcolor.value;
228
+	st['border-color'] = formObj.bordercolor.value;
229
+
230
+	formObj.style.value = ed.dom.serializeStyle(st);
231
+}
232
+
233
+function changedStyle() {
234
+	var formObj = document.forms[0];
235
+	var st = ed.dom.parseStyle(formObj.style.value);
236
+
237
+	if (st['background-image'])
238
+		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
239
+	else
240
+		formObj.backgroundimage.value = '';
241
+
242
+	if (st['width'])
243
+		formObj.width.value = trimSize(st['width']);
244
+
245
+	if (st['height'])
246
+		formObj.height.value = trimSize(st['height']);
247
+
248
+	if (st['background-color']) {
249
+		formObj.bgcolor.value = st['background-color'];
250
+		updateColor('bgcolor_pick','bgcolor');
251
+	}
252
+
253
+	if (st['border-color']) {
254
+		formObj.bordercolor.value = st['border-color'];
255
+		updateColor('bordercolor_pick','bordercolor');
256
+	}
257
+}
258
+
259
+tinyMCEPopup.onInit.add(init);