]> code.citadel.org Git - citadel.git/blobdiff - webcit/tiny_mce/plugins/table/js/row.js
Upgrade TinyMCE
[citadel.git] / webcit / tiny_mce / plugins / table / js / row.js
index d25f635f6835d1c6c79e00592c5c1dc8ce703118..70d95b6729d78b16c9934f8fac9462e9bddb6aec 100644 (file)
@@ -8,7 +8,7 @@ function init() {
 \r
        var inst = tinyMCEPopup.editor;\r
        var dom = inst.dom;\r
-       var trElm = dom.getParent(inst.selection.getNode(), "tr");\r
+       var trElm = dom.getParent(inst.selection.getStart(), "tr");\r
        var formObj = document.forms[0];\r
        var st = dom.parseStyle(dom.getAttrib(trElm, "style"));\r
 \r
@@ -19,32 +19,37 @@ function init() {
        var height = trimSize(getStyle(trElm, 'height', 'height'));\r
        var className = dom.getAttrib(trElm, 'class');\r
        var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));\r
-       var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;\r
+       var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");\r
        var id = dom.getAttrib(trElm, 'id');\r
        var lang = dom.getAttrib(trElm, 'lang');\r
        var dir = dom.getAttrib(trElm, 'dir');\r
 \r
-       // Setup form\r
-       addClassesToList('class', 'table_row_styles');\r
-       TinyMCE_EditableSelects.init();\r
-\r
-       formObj.bgcolor.value = bgcolor;\r
-       formObj.backgroundimage.value = backgroundimage;\r
-       formObj.height.value = height;\r
-       formObj.id.value = id;\r
-       formObj.lang.value = lang;\r
-       formObj.style.value = dom.serializeStyle(st);\r
-       selectByValue(formObj, 'align', align);\r
-       selectByValue(formObj, 'valign', valign);\r
-       selectByValue(formObj, 'class', className, true, true);\r
        selectByValue(formObj, 'rowtype', rowtype);\r
-       selectByValue(formObj, 'dir', dir);\r
-\r
-       // Resize some elements\r
-       if (isVisible('backgroundimagebrowser'))\r
-               document.getElementById('backgroundimage').style.width = '180px';\r
 \r
-       updateColor('bgcolor_pick', 'bgcolor');\r
+       // Any cells selected\r
+       if (dom.select('td.mceSelected,th.mceSelected', trElm).length == 0) {\r
+               // Setup form\r
+               addClassesToList('class', 'table_row_styles');\r
+               TinyMCE_EditableSelects.init();\r
+\r
+               formObj.bgcolor.value = bgcolor;\r
+               formObj.backgroundimage.value = backgroundimage;\r
+               formObj.height.value = height;\r
+               formObj.id.value = id;\r
+               formObj.lang.value = lang;\r
+               formObj.style.value = dom.serializeStyle(st);\r
+               selectByValue(formObj, 'align', align);\r
+               selectByValue(formObj, 'valign', valign);\r
+               selectByValue(formObj, 'class', className, true, true);\r
+               selectByValue(formObj, 'dir', dir);\r
+\r
+               // Resize some elements\r
+               if (isVisible('backgroundimagebrowser'))\r
+                       document.getElementById('backgroundimage').style.width = '180px';\r
+\r
+               updateColor('bgcolor_pick', 'bgcolor');\r
+       } else\r
+               tinyMCEPopup.dom.hide('action');\r
 }\r
 \r
 function updateAction() {\r
@@ -52,8 +57,28 @@ function updateAction() {
        var action = getSelectValue(formObj, 'action');\r
 \r
        tinyMCEPopup.restoreSelection();\r
-       trElm = dom.getParent(inst.selection.getNode(), "tr");\r
-       tableElm = dom.getParent(inst.selection.getNode(), "table");\r
+       trElm = dom.getParent(inst.selection.getStart(), "tr");\r
+       tableElm = dom.getParent(inst.selection.getStart(), "table");\r
+\r
+       // Update all selected rows\r
+       if (dom.select('td.mceSelected,th.mceSelected', trElm).length > 0) {\r
+               tinymce.each(tableElm.rows, function(tr) {\r
+                       var i;\r
+\r
+                       for (i = 0; i < tr.cells.length; i++) {\r
+                               if (dom.hasClass(tr.cells[i], 'mceSelected')) {\r
+                                       updateRow(tr, true);\r
+                                       return;\r
+                               }\r
+                       }\r
+               });\r
+\r
+               inst.addVisual();\r
+               inst.nodeChanged();\r
+               inst.execCommand('mceEndUndoLevel');\r
+               tinyMCEPopup.close();\r
+               return;\r
+       }\r
 \r
        inst.execCommand('mceBeginUndoLevel');\r
 \r