From 69d05c371029b7915cf2a87d6e552d9853244644 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 19 Mar 2010 10:53:30 -0400
Subject: [PATCH] - TinyMCE 3.3.1

---
 program/js/tiny_mce/plugins/table/js/row.js |   67 +++++++++++++++++++++++----------
 1 files changed, 46 insertions(+), 21 deletions(-)

diff --git a/program/js/tiny_mce/plugins/table/js/row.js b/program/js/tiny_mce/plugins/table/js/row.js
index d25f635..7e188c3 100644
--- a/program/js/tiny_mce/plugins/table/js/row.js
+++ b/program/js/tiny_mce/plugins/table/js/row.js
@@ -8,7 +8,7 @@
 
 	var inst = tinyMCEPopup.editor;
 	var dom = inst.dom;
-	var trElm = dom.getParent(inst.selection.getNode(), "tr");
+	var trElm = dom.getParent(inst.selection.getStart(), "tr");
 	var formObj = document.forms[0];
 	var st = dom.parseStyle(dom.getAttrib(trElm, "style"));
 
@@ -24,27 +24,32 @@
 	var lang = dom.getAttrib(trElm, 'lang');
 	var dir = dom.getAttrib(trElm, 'dir');
 
-	// Setup form
-	addClassesToList('class', 'table_row_styles');
-	TinyMCE_EditableSelects.init();
-
-	formObj.bgcolor.value = bgcolor;
-	formObj.backgroundimage.value = backgroundimage;
-	formObj.height.value = height;
-	formObj.id.value = id;
-	formObj.lang.value = lang;
-	formObj.style.value = dom.serializeStyle(st);
-	selectByValue(formObj, 'align', align);
-	selectByValue(formObj, 'valign', valign);
-	selectByValue(formObj, 'class', className, true, true);
 	selectByValue(formObj, 'rowtype', rowtype);
-	selectByValue(formObj, 'dir', dir);
 
-	// Resize some elements
-	if (isVisible('backgroundimagebrowser'))
-		document.getElementById('backgroundimage').style.width = '180px';
+	// Any cells selected
+	if (dom.select('td.mceSelected,th.mceSelected', trElm).length == 0) {
+		// Setup form
+		addClassesToList('class', 'table_row_styles');
+		TinyMCE_EditableSelects.init();
 
-	updateColor('bgcolor_pick', 'bgcolor');
+		formObj.bgcolor.value = bgcolor;
+		formObj.backgroundimage.value = backgroundimage;
+		formObj.height.value = height;
+		formObj.id.value = id;
+		formObj.lang.value = lang;
+		formObj.style.value = dom.serializeStyle(st);
+		selectByValue(formObj, 'align', align);
+		selectByValue(formObj, 'valign', valign);
+		selectByValue(formObj, 'class', className, true, true);
+		selectByValue(formObj, 'dir', dir);
+
+		// Resize some elements
+		if (isVisible('backgroundimagebrowser'))
+			document.getElementById('backgroundimage').style.width = '180px';
+
+		updateColor('bgcolor_pick', 'bgcolor');
+	} else
+		tinyMCEPopup.dom.hide('action');
 }
 
 function updateAction() {
@@ -52,8 +57,28 @@
 	var action = getSelectValue(formObj, 'action');
 
 	tinyMCEPopup.restoreSelection();
-	trElm = dom.getParent(inst.selection.getNode(), "tr");
-	tableElm = dom.getParent(inst.selection.getNode(), "table");
+	trElm = dom.getParent(inst.selection.getStart(), "tr");
+	tableElm = dom.getParent(inst.selection.getStart(), "table");
+
+	// Update all selected rows
+	if (dom.select('td.mceSelected,th.mceSelected', trElm).length > 0) {
+		tinymce.each(tableElm.rows, function(tr) {
+			var i;
+
+			for (i = 0; i < tr.cells.length; i++) {
+				if (dom.hasClass(tr.cells[i], 'mceSelected')) {
+					updateRow(tr, true);
+					return;
+				}
+			}
+		});
+
+		inst.addVisual();
+		inst.nodeChanged();
+		inst.execCommand('mceEndUndoLevel');
+		tinyMCEPopup.close();
+		return;
+	}
 
 	inst.execCommand('mceBeginUndoLevel');
 

--
Gitblit v1.9.1