]> git.donarmstrong.com Git - roundcube.git/blobdiff - program/js/tiny_mce/plugins/table/js/cell.js
Imported Debian patch 0.5.2+dfsg-1
[roundcube.git] / program / js / tiny_mce / plugins / table / js / cell.js
index 7d7f977fa4b044cfd7f789439164e82338e14d63..45e6061fd081a5f18894ff301afc54c69a36ffd0 100644 (file)
@@ -11,7 +11,7 @@ function init() {
        document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')\r
 \r
        var inst = ed;\r
-       var tdElm = ed.dom.getParent(ed.selection.getNode(), "td,th");\r
+       var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th");\r
        var formObj = document.forms[0];\r
        var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));\r
 \r
@@ -24,7 +24,7 @@ function init() {
        var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));\r
        var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));\r
        var className = ed.dom.getAttrib(tdElm, 'class');\r
-       var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;\r
+       var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");\r
        var id = ed.dom.getAttrib(tdElm, 'id');\r
        var lang = ed.dom.getAttrib(tdElm, 'lang');\r
        var dir = ed.dom.getAttrib(tdElm, 'dir');\r
@@ -34,53 +34,78 @@ function init() {
        addClassesToList('class', 'table_cell_styles');\r
        TinyMCE_EditableSelects.init();\r
 \r
-       formObj.bordercolor.value = bordercolor;\r
-       formObj.bgcolor.value = bgcolor;\r
-       formObj.backgroundimage.value = backgroundimage;\r
-       formObj.width.value = width;\r
-       formObj.height.value = height;\r
-       formObj.id.value = id;\r
-       formObj.lang.value = lang;\r
-       formObj.style.value = ed.dom.serializeStyle(st);\r
-       selectByValue(formObj, 'align', align);\r
-       selectByValue(formObj, 'valign', valign);\r
-       selectByValue(formObj, 'class', className, true, true);\r
-       selectByValue(formObj, 'celltype', celltype);\r
-       selectByValue(formObj, 'dir', dir);\r
-       selectByValue(formObj, 'scope', scope);\r
-\r
-       // Resize some elements\r
-       if (isVisible('backgroundimagebrowser'))\r
-               document.getElementById('backgroundimage').style.width = '180px';\r
-\r
-       updateColor('bordercolor_pick', 'bordercolor');\r
-       updateColor('bgcolor_pick', 'bgcolor');\r
+       if (!ed.dom.hasClass(tdElm, 'mceSelected')) {\r
+               formObj.bordercolor.value = bordercolor;\r
+               formObj.bgcolor.value = bgcolor;\r
+               formObj.backgroundimage.value = backgroundimage;\r
+               formObj.width.value = width;\r
+               formObj.height.value = height;\r
+               formObj.id.value = id;\r
+               formObj.lang.value = lang;\r
+               formObj.style.value = ed.dom.serializeStyle(st);\r
+               selectByValue(formObj, 'align', align);\r
+               selectByValue(formObj, 'valign', valign);\r
+               selectByValue(formObj, 'class', className, true, true);\r
+               selectByValue(formObj, 'celltype', celltype);\r
+               selectByValue(formObj, 'dir', dir);\r
+               selectByValue(formObj, 'scope', scope);\r
+\r
+               // Resize some elements\r
+               if (isVisible('backgroundimagebrowser'))\r
+                       document.getElementById('backgroundimage').style.width = '180px';\r
+\r
+               updateColor('bordercolor_pick', 'bordercolor');\r
+               updateColor('bgcolor_pick', 'bgcolor');\r
+       } else\r
+               tinyMCEPopup.dom.hide('action');\r
 }\r
 \r
 function updateAction() {\r
        var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];\r
 \r
        tinyMCEPopup.restoreSelection();\r
-       el = ed.selection.getNode();\r
+       el = ed.selection.getStart();\r
        tdElm = ed.dom.getParent(el, "td,th");\r
        trElm = ed.dom.getParent(el, "tr");\r
        tableElm = ed.dom.getParent(el, "table");\r
 \r
-       ed.execCommand('mceBeginUndoLevel');\r
+       // Cell is selected\r
+       if (ed.dom.hasClass(tdElm, 'mceSelected')) {\r
+               // Update all selected sells\r
+               tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) {\r
+                       updateCell(td);\r
+               });\r
+\r
+               ed.addVisual();\r
+               ed.nodeChanged();\r
+               inst.execCommand('mceEndUndoLevel');\r
+               tinyMCEPopup.close();\r
+               return;\r
+       }\r
 \r
        switch (getSelectValue(formObj, 'action')) {\r
                case "cell":\r
                        var celltype = getSelectValue(formObj, 'celltype');\r
                        var scope = getSelectValue(formObj, 'scope');\r
 \r
-                       if (ed.getParam("accessibility_warnings")) {\r
+                       function doUpdate(s) {\r
+                               if (s) {\r
+                                       updateCell(tdElm);\r
+\r
+                                       ed.addVisual();\r
+                                       ed.nodeChanged();\r
+                                       inst.execCommand('mceEndUndoLevel');\r
+                                       tinyMCEPopup.close();\r
+                               }\r
+                       };\r
+\r
+                       if (ed.getParam("accessibility_warnings", 1)) {\r
                                if (celltype == "th" && scope == "")\r
-                                       var answer = confirm(ed.getLang('table_dlg.missing_scope', '', true));\r
+                                       tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate);\r
                                else\r
-                                       var answer = true;\r
+                                       doUpdate(1);\r
 \r
-                               if (!answer)\r
-                                       return;\r
+                               return;\r
                        }\r
 \r
                        updateCell(tdElm);\r
@@ -139,15 +164,15 @@ function updateCell(td, skip_id) {
        var dom = ed.dom;\r
 \r
        if (!skip_id)\r
-               td.setAttribute('id', formObj.id.value);\r
-\r
-       td.setAttribute('align', formObj.align.value);\r
-       td.setAttribute('vAlign', formObj.valign.value);\r
-       td.setAttribute('lang', formObj.lang.value);\r
-       td.setAttribute('dir', getSelectValue(formObj, 'dir'));\r
-       td.setAttribute('style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));\r
-       td.setAttribute('scope', formObj.scope.value);\r
-       ed.dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));\r
+               dom.setAttrib(td, 'id', formObj.id.value);\r
+\r
+       dom.setAttrib(td, 'align', formObj.align.value);\r
+       dom.setAttrib(td, 'vAlign', formObj.valign.value);\r
+       dom.setAttrib(td, 'lang', formObj.lang.value);\r
+       dom.setAttrib(td, 'dir', getSelectValue(formObj, 'dir'));\r
+       dom.setAttrib(td, 'style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));\r
+       dom.setAttrib(td, 'scope', formObj.scope.value);\r
+       dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));\r
 \r
        // Clear deprecated attributes\r
        ed.dom.setAttrib(td, 'width', '');\r