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,237 +0,0 @@
1
-tinyMCEPopup.requireLangPack();
2
-
3
-function init() {
4
-	tinyMCEPopup.resizeToInnerSize();
5
-
6
-	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
7
-	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
8
-
9
-	var inst = tinyMCEPopup.editor;
10
-	var dom = inst.dom;
11
-	var trElm = dom.getParent(inst.selection.getStart(), "tr");
12
-	var formObj = document.forms[0];
13
-	var st = dom.parseStyle(dom.getAttrib(trElm, "style"));
14
-
15
-	// Get table row data
16
-	var rowtype = trElm.parentNode.nodeName.toLowerCase();
17
-	var align = dom.getAttrib(trElm, 'align');
18
-	var valign = dom.getAttrib(trElm, 'valign');
19
-	var height = trimSize(getStyle(trElm, 'height', 'height'));
20
-	var className = dom.getAttrib(trElm, 'class');
21
-	var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));
22
-	var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
23
-	var id = dom.getAttrib(trElm, 'id');
24
-	var lang = dom.getAttrib(trElm, 'lang');
25
-	var dir = dom.getAttrib(trElm, 'dir');
26
-
27
-	selectByValue(formObj, 'rowtype', rowtype);
28
-
29
-	// Any cells selected
30
-	if (dom.select('td.mceSelected,th.mceSelected', trElm).length == 0) {
31
-		// Setup form
32
-		addClassesToList('class', 'table_row_styles');
33
-		TinyMCE_EditableSelects.init();
34
-
35
-		formObj.bgcolor.value = bgcolor;
36
-		formObj.backgroundimage.value = backgroundimage;
37
-		formObj.height.value = height;
38
-		formObj.id.value = id;
39
-		formObj.lang.value = lang;
40
-		formObj.style.value = dom.serializeStyle(st);
41
-		selectByValue(formObj, 'align', align);
42
-		selectByValue(formObj, 'valign', valign);
43
-		selectByValue(formObj, 'class', className, true, true);
44
-		selectByValue(formObj, 'dir', dir);
45
-
46
-		// Resize some elements
47
-		if (isVisible('backgroundimagebrowser'))
48
-			document.getElementById('backgroundimage').style.width = '180px';
49
-
50
-		updateColor('bgcolor_pick', 'bgcolor');
51
-	} else
52
-		tinyMCEPopup.dom.hide('action');
53
-}
54
-
55
-function updateAction() {
56
-	var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0];
57
-	var action = getSelectValue(formObj, 'action');
58
-
59
-	if (!AutoValidator.validate(formObj)) {
60
-		tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.');
61
-		return false;
62
-	}
63
-
64
-	tinyMCEPopup.restoreSelection();
65
-	trElm = dom.getParent(inst.selection.getStart(), "tr");
66
-	tableElm = dom.getParent(inst.selection.getStart(), "table");
67
-
68
-	// Update all selected rows
69
-	if (dom.select('td.mceSelected,th.mceSelected', trElm).length > 0) {
70
-		tinymce.each(tableElm.rows, function(tr) {
71
-			var i;
72
-
73
-			for (i = 0; i < tr.cells.length; i++) {
74
-				if (dom.hasClass(tr.cells[i], 'mceSelected')) {
75
-					updateRow(tr, true);
76
-					return;
77
-				}
78
-			}
79
-		});
80
-
81
-		inst.addVisual();
82
-		inst.nodeChanged();
83
-		inst.execCommand('mceEndUndoLevel');
84
-		tinyMCEPopup.close();
85
-		return;
86
-	}
87
-
88
-	switch (action) {
89
-		case "row":
90
-			updateRow(trElm);
91
-			break;
92
-
93
-		case "all":
94
-			var rows = tableElm.getElementsByTagName("tr");
95
-
96
-			for (var i=0; i<rows.length; i++)
97
-				updateRow(rows[i], true);
98
-
99
-			break;
100
-
101
-		case "odd":
102
-		case "even":
103
-			var rows = tableElm.getElementsByTagName("tr");
104
-
105
-			for (var i=0; i<rows.length; i++) {
106
-				if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))
107
-					updateRow(rows[i], true, true);
108
-			}
109
-
110
-			break;
111
-	}
112
-
113
-	inst.addVisual();
114
-	inst.nodeChanged();
115
-	inst.execCommand('mceEndUndoLevel');
116
-	tinyMCEPopup.close();
117
-}
118
-
119
-function updateRow(tr_elm, skip_id, skip_parent) {
120
-	var inst = tinyMCEPopup.editor;
121
-	var formObj = document.forms[0];
122
-	var dom = inst.dom;
123
-	var curRowType = tr_elm.parentNode.nodeName.toLowerCase();
124
-	var rowtype = getSelectValue(formObj, 'rowtype');
125
-	var doc = inst.getDoc();
126
-
127
-	// Update row element
128
-	if (!skip_id)
129
-		dom.setAttrib(tr_elm, 'id', formObj.id.value);
130
-
131
-	dom.setAttrib(tr_elm, 'align', getSelectValue(formObj, 'align'));
132
-	dom.setAttrib(tr_elm, 'vAlign', getSelectValue(formObj, 'valign'));
133
-	dom.setAttrib(tr_elm, 'lang', formObj.lang.value);
134
-	dom.setAttrib(tr_elm, 'dir', getSelectValue(formObj, 'dir'));
135
-	dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(formObj.style.value)));
136
-	dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));
137
-
138
-	// Clear deprecated attributes
139
-	dom.setAttrib(tr_elm, 'background', '');
140
-	dom.setAttrib(tr_elm, 'bgColor', '');
141
-	dom.setAttrib(tr_elm, 'height', '');
142
-
143
-	// Set styles
144
-	tr_elm.style.height = getCSSSize(formObj.height.value);
145
-	tr_elm.style.backgroundColor = formObj.bgcolor.value;
146
-
147
-	if (formObj.backgroundimage.value != "")
148
-		tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
149
-	else
150
-		tr_elm.style.backgroundImage = '';
151
-
152
-	// Setup new rowtype
153
-	if (curRowType != rowtype && !skip_parent) {
154
-		// first, clone the node we are working on
155
-		var newRow = tr_elm.cloneNode(1);
156
-
157
-		// next, find the parent of its new destination (creating it if necessary)
158
-		var theTable = dom.getParent(tr_elm, "table");
159
-		var dest = rowtype;
160
-		var newParent = null;
161
-		for (var i = 0; i < theTable.childNodes.length; i++) {
162
-			if (theTable.childNodes[i].nodeName.toLowerCase() == dest)
163
-				newParent = theTable.childNodes[i];
164
-		}
165
-
166
-		if (newParent == null) {
167
-			newParent = doc.createElement(dest);
168
-
169
-			if (theTable.firstChild.nodeName == 'CAPTION')
170
-				inst.dom.insertAfter(newParent, theTable.firstChild);
171
-			else
172
-				theTable.insertBefore(newParent, theTable.firstChild);
173
-		}
174
-
175
-		// append the row to the new parent
176
-		newParent.appendChild(newRow);
177
-
178
-		// remove the original
179
-		tr_elm.parentNode.removeChild(tr_elm);
180
-
181
-		// set tr_elm to the new node
182
-		tr_elm = newRow;
183
-	}
184
-
185
-	dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText)));
186
-}
187
-
188
-function changedBackgroundImage() {
189
-	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
190
-	var st = dom.parseStyle(formObj.style.value);
191
-
192
-	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
193
-
194
-	formObj.style.value = dom.serializeStyle(st);
195
-}
196
-
197
-function changedStyle() {
198
-	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
199
-	var st = dom.parseStyle(formObj.style.value);
200
-
201
-	if (st['background-image'])
202
-		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
203
-	else
204
-		formObj.backgroundimage.value = '';
205
-
206
-	if (st['height'])
207
-		formObj.height.value = trimSize(st['height']);
208
-
209
-	if (st['background-color']) {
210
-		formObj.bgcolor.value = st['background-color'];
211
-		updateColor('bgcolor_pick','bgcolor');
212
-	}
213
-}
214
-
215
-function changedSize() {
216
-	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
217
-	var st = dom.parseStyle(formObj.style.value);
218
-
219
-	var height = formObj.height.value;
220
-	if (height != "")
221
-		st['height'] = getCSSSize(height);
222
-	else
223
-		st['height'] = "";
224
-
225
-	formObj.style.value = dom.serializeStyle(st);
226
-}
227
-
228
-function changedColor() {
229
-	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
230
-	var st = dom.parseStyle(formObj.style.value);
231
-
232
-	st['background-color'] = formObj.bgcolor.value;
233
-
234
-	formObj.style.value = dom.serializeStyle(st);
235
-}
236
-
237
-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,212 +1,237 @@
1
-tinyMCEPopup.requireLangPack();
2
-
3
-function init() {
4
-	tinyMCEPopup.resizeToInnerSize();
5
-
6
-	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
7
-	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
8
-
9
-	var inst = tinyMCEPopup.editor;
10
-	var dom = inst.dom;
11
-	var trElm = dom.getParent(inst.selection.getNode(), "tr");
12
-	var formObj = document.forms[0];
13
-	var st = dom.parseStyle(dom.getAttrib(trElm, "style"));
14
-
15
-	// Get table row data
16
-	var rowtype = trElm.parentNode.nodeName.toLowerCase();
17
-	var align = dom.getAttrib(trElm, 'align');
18
-	var valign = dom.getAttrib(trElm, 'valign');
19
-	var height = trimSize(getStyle(trElm, 'height', 'height'));
20
-	var className = dom.getAttrib(trElm, 'class');
21
-	var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));
22
-	var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
23
-	var id = dom.getAttrib(trElm, 'id');
24
-	var lang = dom.getAttrib(trElm, 'lang');
25
-	var dir = dom.getAttrib(trElm, 'dir');
26
-
27
-	// Setup form
28
-	addClassesToList('class', 'table_row_styles');
29
-	TinyMCE_EditableSelects.init();
30
-
31
-	formObj.bgcolor.value = bgcolor;
32
-	formObj.backgroundimage.value = backgroundimage;
33
-	formObj.height.value = height;
34
-	formObj.id.value = id;
35
-	formObj.lang.value = lang;
36
-	formObj.style.value = dom.serializeStyle(st);
37
-	selectByValue(formObj, 'align', align);
38
-	selectByValue(formObj, 'valign', valign);
39
-	selectByValue(formObj, 'class', className, true, true);
40
-	selectByValue(formObj, 'rowtype', rowtype);
41
-	selectByValue(formObj, 'dir', dir);
42
-
43
-	// Resize some elements
44
-	if (isVisible('backgroundimagebrowser'))
45
-		document.getElementById('backgroundimage').style.width = '180px';
46
-
47
-	updateColor('bgcolor_pick', 'bgcolor');
48
-}
49
-
50
-function updateAction() {
51
-	var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0];
52
-	var action = getSelectValue(formObj, 'action');
53
-
54
-	tinyMCEPopup.restoreSelection();
55
-	trElm = dom.getParent(inst.selection.getNode(), "tr");
56
-	tableElm = dom.getParent(inst.selection.getNode(), "table");
57
-
58
-	inst.execCommand('mceBeginUndoLevel');
59
-
60
-	switch (action) {
61
-		case "row":
62
-			updateRow(trElm);
63
-			break;
64
-
65
-		case "all":
66
-			var rows = tableElm.getElementsByTagName("tr");
67
-
68
-			for (var i=0; i<rows.length; i++)
69
-				updateRow(rows[i], true);
70
-
71
-			break;
72
-
73
-		case "odd":
74
-		case "even":
75
-			var rows = tableElm.getElementsByTagName("tr");
76
-
77
-			for (var i=0; i<rows.length; i++) {
78
-				if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))
79
-					updateRow(rows[i], true, true);
80
-			}
81
-
82
-			break;
83
-	}
84
-
85
-	inst.addVisual();
86
-	inst.nodeChanged();
87
-	inst.execCommand('mceEndUndoLevel');
88
-	tinyMCEPopup.close();
89
-}
90
-
91
-function updateRow(tr_elm, skip_id, skip_parent) {
92
-	var inst = tinyMCEPopup.editor;
93
-	var formObj = document.forms[0];
94
-	var dom = inst.dom;
95
-	var curRowType = tr_elm.parentNode.nodeName.toLowerCase();
96
-	var rowtype = getSelectValue(formObj, 'rowtype');
97
-	var doc = inst.getDoc();
98
-
99
-	// Update row element
100
-	if (!skip_id)
101
-		tr_elm.setAttribute('id', formObj.id.value);
102
-
103
-	tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));
104
-	tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));
105
-	tr_elm.setAttribute('lang', formObj.lang.value);
106
-	tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));
107
-	tr_elm.setAttribute('style', dom.serializeStyle(dom.parseStyle(formObj.style.value)));
108
-	dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));
109
-
110
-	// Clear deprecated attributes
111
-	tr_elm.setAttribute('background', '');
112
-	tr_elm.setAttribute('bgColor', '');
113
-	tr_elm.setAttribute('height', '');
114
-
115
-	// Set styles
116
-	tr_elm.style.height = getCSSSize(formObj.height.value);
117
-	tr_elm.style.backgroundColor = formObj.bgcolor.value;
118
-
119
-	if (formObj.backgroundimage.value != "")
120
-		tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
121
-	else
122
-		tr_elm.style.backgroundImage = '';
123
-
124
-	// Setup new rowtype
125
-	if (curRowType != rowtype && !skip_parent) {
126
-		// first, clone the node we are working on
127
-		var newRow = tr_elm.cloneNode(1);
128
-
129
-		// next, find the parent of its new destination (creating it if necessary)
130
-		var theTable = dom.getParent(tr_elm, "table");
131
-		var dest = rowtype;
132
-		var newParent = null;
133
-		for (var i = 0; i < theTable.childNodes.length; i++) {
134
-			if (theTable.childNodes[i].nodeName.toLowerCase() == dest)
135
-				newParent = theTable.childNodes[i];
136
-		}
137
-
138
-		if (newParent == null) {
139
-			newParent = doc.createElement(dest);
140
-
141
-			if (dest == "thead") {
142
-				if (theTable.firstChild.nodeName == 'CAPTION')
143
-					inst.dom.insertAfter(newParent, theTable.firstChild);
144
-				else
145
-					theTable.insertBefore(newParent, theTable.firstChild);
146
-			} else
147
-				theTable.appendChild(newParent);
148
-		}
149
-
150
-		// append the row to the new parent
151
-		newParent.appendChild(newRow);
152
-
153
-		// remove the original
154
-		tr_elm.parentNode.removeChild(tr_elm);
155
-
156
-		// set tr_elm to the new node
157
-		tr_elm = newRow;
158
-	}
159
-
160
-	dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText)));
161
-}
162
-
163
-function changedBackgroundImage() {
164
-	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
165
-	var st = dom.parseStyle(formObj.style.value);
166
-
167
-	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
168
-
169
-	formObj.style.value = dom.serializeStyle(st);
170
-}
171
-
172
-function changedStyle() {
173
-	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
174
-	var st = dom.parseStyle(formObj.style.value);
175
-
176
-	if (st['background-image'])
177
-		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
178
-	else
179
-		formObj.backgroundimage.value = '';
180
-
181
-	if (st['height'])
182
-		formObj.height.value = trimSize(st['height']);
183
-
184
-	if (st['background-color']) {
185
-		formObj.bgcolor.value = st['background-color'];
186
-		updateColor('bgcolor_pick','bgcolor');
187
-	}
188
-}
189
-
190
-function changedSize() {
191
-	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
192
-	var st = dom.parseStyle(formObj.style.value);
193
-
194
-	var height = formObj.height.value;
195
-	if (height != "")
196
-		st['height'] = getCSSSize(height);
197
-	else
198
-		st['height'] = "";
199
-
200
-	formObj.style.value = dom.serializeStyle(st);
201
-}
202
-
203
-function changedColor() {
204
-	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
205
-	var st = dom.parseStyle(formObj.style.value);
206
-
207
-	st['background-color'] = formObj.bgcolor.value;
208
-
209
-	formObj.style.value = dom.serializeStyle(st);
210
-}
211
-
212
-tinyMCEPopup.onInit.add(init);
1
+tinyMCEPopup.requireLangPack();
2
+
3
+function init() {
4
+	tinyMCEPopup.resizeToInnerSize();
5
+
6
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
7
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
8
+
9
+	var inst = tinyMCEPopup.editor;
10
+	var dom = inst.dom;
11
+	var trElm = dom.getParent(inst.selection.getStart(), "tr");
12
+	var formObj = document.forms[0];
13
+	var st = dom.parseStyle(dom.getAttrib(trElm, "style"));
14
+
15
+	// Get table row data
16
+	var rowtype = trElm.parentNode.nodeName.toLowerCase();
17
+	var align = dom.getAttrib(trElm, 'align');
18
+	var valign = dom.getAttrib(trElm, 'valign');
19
+	var height = trimSize(getStyle(trElm, 'height', 'height'));
20
+	var className = dom.getAttrib(trElm, 'class');
21
+	var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));
22
+	var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
23
+	var id = dom.getAttrib(trElm, 'id');
24
+	var lang = dom.getAttrib(trElm, 'lang');
25
+	var dir = dom.getAttrib(trElm, 'dir');
26
+
27
+	selectByValue(formObj, 'rowtype', rowtype);
28
+
29
+	// Any cells selected
30
+	if (dom.select('td.mceSelected,th.mceSelected', trElm).length == 0) {
31
+		// Setup form
32
+		addClassesToList('class', 'table_row_styles');
33
+		TinyMCE_EditableSelects.init();
34
+
35
+		formObj.bgcolor.value = bgcolor;
36
+		formObj.backgroundimage.value = backgroundimage;
37
+		formObj.height.value = height;
38
+		formObj.id.value = id;
39
+		formObj.lang.value = lang;
40
+		formObj.style.value = dom.serializeStyle(st);
41
+		selectByValue(formObj, 'align', align);
42
+		selectByValue(formObj, 'valign', valign);
43
+		selectByValue(formObj, 'class', className, true, true);
44
+		selectByValue(formObj, 'dir', dir);
45
+
46
+		// Resize some elements
47
+		if (isVisible('backgroundimagebrowser'))
48
+			document.getElementById('backgroundimage').style.width = '180px';
49
+
50
+		updateColor('bgcolor_pick', 'bgcolor');
51
+	} else
52
+		tinyMCEPopup.dom.hide('action');
53
+}
54
+
55
+function updateAction() {
56
+	var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0];
57
+	var action = getSelectValue(formObj, 'action');
58
+
59
+	if (!AutoValidator.validate(formObj)) {
60
+		tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.');
61
+		return false;
62
+	}
63
+
64
+	tinyMCEPopup.restoreSelection();
65
+	trElm = dom.getParent(inst.selection.getStart(), "tr");
66
+	tableElm = dom.getParent(inst.selection.getStart(), "table");
67
+
68
+	// Update all selected rows
69
+	if (dom.select('td.mceSelected,th.mceSelected', trElm).length > 0) {
70
+		tinymce.each(tableElm.rows, function(tr) {
71
+			var i;
72
+
73
+			for (i = 0; i < tr.cells.length; i++) {
74
+				if (dom.hasClass(tr.cells[i], 'mceSelected')) {
75
+					updateRow(tr, true);
76
+					return;
77
+				}
78
+			}
79
+		});
80
+
81
+		inst.addVisual();
82
+		inst.nodeChanged();
83
+		inst.execCommand('mceEndUndoLevel');
84
+		tinyMCEPopup.close();
85
+		return;
86
+	}
87
+
88
+	switch (action) {
89
+		case "row":
90
+			updateRow(trElm);
91
+			break;
92
+
93
+		case "all":
94
+			var rows = tableElm.getElementsByTagName("tr");
95
+
96
+			for (var i=0; i<rows.length; i++)
97
+				updateRow(rows[i], true);
98
+
99
+			break;
100
+
101
+		case "odd":
102
+		case "even":
103
+			var rows = tableElm.getElementsByTagName("tr");
104
+
105
+			for (var i=0; i<rows.length; i++) {
106
+				if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))
107
+					updateRow(rows[i], true, true);
108
+			}
109
+
110
+			break;
111
+	}
112
+
113
+	inst.addVisual();
114
+	inst.nodeChanged();
115
+	inst.execCommand('mceEndUndoLevel');
116
+	tinyMCEPopup.close();
117
+}
118
+
119
+function updateRow(tr_elm, skip_id, skip_parent) {
120
+	var inst = tinyMCEPopup.editor;
121
+	var formObj = document.forms[0];
122
+	var dom = inst.dom;
123
+	var curRowType = tr_elm.parentNode.nodeName.toLowerCase();
124
+	var rowtype = getSelectValue(formObj, 'rowtype');
125
+	var doc = inst.getDoc();
126
+
127
+	// Update row element
128
+	if (!skip_id)
129
+		dom.setAttrib(tr_elm, 'id', formObj.id.value);
130
+
131
+	dom.setAttrib(tr_elm, 'align', getSelectValue(formObj, 'align'));
132
+	dom.setAttrib(tr_elm, 'vAlign', getSelectValue(formObj, 'valign'));
133
+	dom.setAttrib(tr_elm, 'lang', formObj.lang.value);
134
+	dom.setAttrib(tr_elm, 'dir', getSelectValue(formObj, 'dir'));
135
+	dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(formObj.style.value)));
136
+	dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));
137
+
138
+	// Clear deprecated attributes
139
+	dom.setAttrib(tr_elm, 'background', '');
140
+	dom.setAttrib(tr_elm, 'bgColor', '');
141
+	dom.setAttrib(tr_elm, 'height', '');
142
+
143
+	// Set styles
144
+	tr_elm.style.height = getCSSSize(formObj.height.value);
145
+	tr_elm.style.backgroundColor = formObj.bgcolor.value;
146
+
147
+	if (formObj.backgroundimage.value != "")
148
+		tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
149
+	else
150
+		tr_elm.style.backgroundImage = '';
151
+
152
+	// Setup new rowtype
153
+	if (curRowType != rowtype && !skip_parent) {
154
+		// first, clone the node we are working on
155
+		var newRow = tr_elm.cloneNode(1);
156
+
157
+		// next, find the parent of its new destination (creating it if necessary)
158
+		var theTable = dom.getParent(tr_elm, "table");
159
+		var dest = rowtype;
160
+		var newParent = null;
161
+		for (var i = 0; i < theTable.childNodes.length; i++) {
162
+			if (theTable.childNodes[i].nodeName.toLowerCase() == dest)
163
+				newParent = theTable.childNodes[i];
164
+		}
165
+
166
+		if (newParent == null) {
167
+			newParent = doc.createElement(dest);
168
+
169
+			if (theTable.firstChild.nodeName == 'CAPTION')
170
+				inst.dom.insertAfter(newParent, theTable.firstChild);
171
+			else
172
+				theTable.insertBefore(newParent, theTable.firstChild);
173
+		}
174
+
175
+		// append the row to the new parent
176
+		newParent.appendChild(newRow);
177
+
178
+		// remove the original
179
+		tr_elm.parentNode.removeChild(tr_elm);
180
+
181
+		// set tr_elm to the new node
182
+		tr_elm = newRow;
183
+	}
184
+
185
+	dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText)));
186
+}
187
+
188
+function changedBackgroundImage() {
189
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
190
+	var st = dom.parseStyle(formObj.style.value);
191
+
192
+	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
193
+
194
+	formObj.style.value = dom.serializeStyle(st);
195
+}
196
+
197
+function changedStyle() {
198
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
199
+	var st = dom.parseStyle(formObj.style.value);
200
+
201
+	if (st['background-image'])
202
+		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
203
+	else
204
+		formObj.backgroundimage.value = '';
205
+
206
+	if (st['height'])
207
+		formObj.height.value = trimSize(st['height']);
208
+
209
+	if (st['background-color']) {
210
+		formObj.bgcolor.value = st['background-color'];
211
+		updateColor('bgcolor_pick','bgcolor');
212
+	}
213
+}
214
+
215
+function changedSize() {
216
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
217
+	var st = dom.parseStyle(formObj.style.value);
218
+
219
+	var height = formObj.height.value;
220
+	if (height != "")
221
+		st['height'] = getCSSSize(height);
222
+	else
223
+		st['height'] = "";
224
+
225
+	formObj.style.value = dom.serializeStyle(st);
226
+}
227
+
228
+function changedColor() {
229
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
230
+	var st = dom.parseStyle(formObj.style.value);
231
+
232
+	st['background-color'] = formObj.bgcolor.value;
233
+
234
+	formObj.style.value = dom.serializeStyle(st);
235
+}
236
+
237
+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,212 @@
1
+tinyMCEPopup.requireLangPack();
2
+
3
+function init() {
4
+	tinyMCEPopup.resizeToInnerSize();
5
+
6
+	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
7
+	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
8
+
9
+	var inst = tinyMCEPopup.editor;
10
+	var dom = inst.dom;
11
+	var trElm = dom.getParent(inst.selection.getNode(), "tr");
12
+	var formObj = document.forms[0];
13
+	var st = dom.parseStyle(dom.getAttrib(trElm, "style"));
14
+
15
+	// Get table row data
16
+	var rowtype = trElm.parentNode.nodeName.toLowerCase();
17
+	var align = dom.getAttrib(trElm, 'align');
18
+	var valign = dom.getAttrib(trElm, 'valign');
19
+	var height = trimSize(getStyle(trElm, 'height', 'height'));
20
+	var className = dom.getAttrib(trElm, 'class');
21
+	var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));
22
+	var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
23
+	var id = dom.getAttrib(trElm, 'id');
24
+	var lang = dom.getAttrib(trElm, 'lang');
25
+	var dir = dom.getAttrib(trElm, 'dir');
26
+
27
+	// Setup form
28
+	addClassesToList('class', 'table_row_styles');
29
+	TinyMCE_EditableSelects.init();
30
+
31
+	formObj.bgcolor.value = bgcolor;
32
+	formObj.backgroundimage.value = backgroundimage;
33
+	formObj.height.value = height;
34
+	formObj.id.value = id;
35
+	formObj.lang.value = lang;
36
+	formObj.style.value = dom.serializeStyle(st);
37
+	selectByValue(formObj, 'align', align);
38
+	selectByValue(formObj, 'valign', valign);
39
+	selectByValue(formObj, 'class', className, true, true);
40
+	selectByValue(formObj, 'rowtype', rowtype);
41
+	selectByValue(formObj, 'dir', dir);
42
+
43
+	// Resize some elements
44
+	if (isVisible('backgroundimagebrowser'))
45
+		document.getElementById('backgroundimage').style.width = '180px';
46
+
47
+	updateColor('bgcolor_pick', 'bgcolor');
48
+}
49
+
50
+function updateAction() {
51
+	var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0];
52
+	var action = getSelectValue(formObj, 'action');
53
+
54
+	tinyMCEPopup.restoreSelection();
55
+	trElm = dom.getParent(inst.selection.getNode(), "tr");
56
+	tableElm = dom.getParent(inst.selection.getNode(), "table");
57
+
58
+	inst.execCommand('mceBeginUndoLevel');
59
+
60
+	switch (action) {
61
+		case "row":
62
+			updateRow(trElm);
63
+			break;
64
+
65
+		case "all":
66
+			var rows = tableElm.getElementsByTagName("tr");
67
+
68
+			for (var i=0; i<rows.length; i++)
69
+				updateRow(rows[i], true);
70
+
71
+			break;
72
+
73
+		case "odd":
74
+		case "even":
75
+			var rows = tableElm.getElementsByTagName("tr");
76
+
77
+			for (var i=0; i<rows.length; i++) {
78
+				if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))
79
+					updateRow(rows[i], true, true);
80
+			}
81
+
82
+			break;
83
+	}
84
+
85
+	inst.addVisual();
86
+	inst.nodeChanged();
87
+	inst.execCommand('mceEndUndoLevel');
88
+	tinyMCEPopup.close();
89
+}
90
+
91
+function updateRow(tr_elm, skip_id, skip_parent) {
92
+	var inst = tinyMCEPopup.editor;
93
+	var formObj = document.forms[0];
94
+	var dom = inst.dom;
95
+	var curRowType = tr_elm.parentNode.nodeName.toLowerCase();
96
+	var rowtype = getSelectValue(formObj, 'rowtype');
97
+	var doc = inst.getDoc();
98
+
99
+	// Update row element
100
+	if (!skip_id)
101
+		tr_elm.setAttribute('id', formObj.id.value);
102
+
103
+	tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));
104
+	tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));
105
+	tr_elm.setAttribute('lang', formObj.lang.value);
106
+	tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));
107
+	tr_elm.setAttribute('style', dom.serializeStyle(dom.parseStyle(formObj.style.value)));
108
+	dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));
109
+
110
+	// Clear deprecated attributes
111
+	tr_elm.setAttribute('background', '');
112
+	tr_elm.setAttribute('bgColor', '');
113
+	tr_elm.setAttribute('height', '');
114
+
115
+	// Set styles
116
+	tr_elm.style.height = getCSSSize(formObj.height.value);
117
+	tr_elm.style.backgroundColor = formObj.bgcolor.value;
118
+
119
+	if (formObj.backgroundimage.value != "")
120
+		tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
121
+	else
122
+		tr_elm.style.backgroundImage = '';
123
+
124
+	// Setup new rowtype
125
+	if (curRowType != rowtype && !skip_parent) {
126
+		// first, clone the node we are working on
127
+		var newRow = tr_elm.cloneNode(1);
128
+
129
+		// next, find the parent of its new destination (creating it if necessary)
130
+		var theTable = dom.getParent(tr_elm, "table");
131
+		var dest = rowtype;
132
+		var newParent = null;
133
+		for (var i = 0; i < theTable.childNodes.length; i++) {
134
+			if (theTable.childNodes[i].nodeName.toLowerCase() == dest)
135
+				newParent = theTable.childNodes[i];
136
+		}
137
+
138
+		if (newParent == null) {
139
+			newParent = doc.createElement(dest);
140
+
141
+			if (dest == "thead") {
142
+				if (theTable.firstChild.nodeName == 'CAPTION')
143
+					inst.dom.insertAfter(newParent, theTable.firstChild);
144
+				else
145
+					theTable.insertBefore(newParent, theTable.firstChild);
146
+			} else
147
+				theTable.appendChild(newParent);
148
+		}
149
+
150
+		// append the row to the new parent
151
+		newParent.appendChild(newRow);
152
+
153
+		// remove the original
154
+		tr_elm.parentNode.removeChild(tr_elm);
155
+
156
+		// set tr_elm to the new node
157
+		tr_elm = newRow;
158
+	}
159
+
160
+	dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText)));
161
+}
162
+
163
+function changedBackgroundImage() {
164
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
165
+	var st = dom.parseStyle(formObj.style.value);
166
+
167
+	st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
168
+
169
+	formObj.style.value = dom.serializeStyle(st);
170
+}
171
+
172
+function changedStyle() {
173
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
174
+	var st = dom.parseStyle(formObj.style.value);
175
+
176
+	if (st['background-image'])
177
+		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
178
+	else
179
+		formObj.backgroundimage.value = '';
180
+
181
+	if (st['height'])
182
+		formObj.height.value = trimSize(st['height']);
183
+
184
+	if (st['background-color']) {
185
+		formObj.bgcolor.value = st['background-color'];
186
+		updateColor('bgcolor_pick','bgcolor');
187
+	}
188
+}
189
+
190
+function changedSize() {
191
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
192
+	var st = dom.parseStyle(formObj.style.value);
193
+
194
+	var height = formObj.height.value;
195
+	if (height != "")
196
+		st['height'] = getCSSSize(height);
197
+	else
198
+		st['height'] = "";
199
+
200
+	formObj.style.value = dom.serializeStyle(st);
201
+}
202
+
203
+function changedColor() {
204
+	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;
205
+	var st = dom.parseStyle(formObj.style.value);
206
+
207
+	st['background-color'] = formObj.bgcolor.value;
208
+
209
+	formObj.style.value = dom.serializeStyle(st);
210
+}
211
+
212
+tinyMCEPopup.onInit.add(init);