bgneal@45: tinyMCEPopup.requireLangPack(); bgneal@45: bgneal@45: var ed; bgneal@45: bgneal@45: function init() { bgneal@45: ed = tinyMCEPopup.editor; bgneal@45: tinyMCEPopup.resizeToInnerSize(); bgneal@45: bgneal@45: document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); bgneal@45: document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); bgneal@45: document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor') bgneal@45: bgneal@45: var inst = ed; bgneal@183: var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th"); bgneal@45: var formObj = document.forms[0]; bgneal@45: var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style")); bgneal@45: bgneal@45: // Get table cell data bgneal@45: var celltype = tdElm.nodeName.toLowerCase(); bgneal@45: var align = ed.dom.getAttrib(tdElm, 'align'); bgneal@45: var valign = ed.dom.getAttrib(tdElm, 'valign'); bgneal@45: var width = trimSize(getStyle(tdElm, 'width', 'width')); bgneal@45: var height = trimSize(getStyle(tdElm, 'height', 'height')); bgneal@45: var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor')); bgneal@45: var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor')); bgneal@45: var className = ed.dom.getAttrib(tdElm, 'class'); bgneal@217: var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); bgneal@45: var id = ed.dom.getAttrib(tdElm, 'id'); bgneal@45: var lang = ed.dom.getAttrib(tdElm, 'lang'); bgneal@45: var dir = ed.dom.getAttrib(tdElm, 'dir'); bgneal@45: var scope = ed.dom.getAttrib(tdElm, 'scope'); bgneal@45: bgneal@45: // Setup form bgneal@45: addClassesToList('class', 'table_cell_styles'); bgneal@45: TinyMCE_EditableSelects.init(); bgneal@45: bgneal@183: if (!ed.dom.hasClass(tdElm, 'mceSelected')) { bgneal@183: formObj.bordercolor.value = bordercolor; bgneal@183: formObj.bgcolor.value = bgcolor; bgneal@183: formObj.backgroundimage.value = backgroundimage; bgneal@183: formObj.width.value = width; bgneal@183: formObj.height.value = height; bgneal@183: formObj.id.value = id; bgneal@183: formObj.lang.value = lang; bgneal@183: formObj.style.value = ed.dom.serializeStyle(st); bgneal@183: selectByValue(formObj, 'align', align); bgneal@183: selectByValue(formObj, 'valign', valign); bgneal@183: selectByValue(formObj, 'class', className, true, true); bgneal@183: selectByValue(formObj, 'celltype', celltype); bgneal@183: selectByValue(formObj, 'dir', dir); bgneal@183: selectByValue(formObj, 'scope', scope); bgneal@45: bgneal@183: // Resize some elements bgneal@183: if (isVisible('backgroundimagebrowser')) bgneal@183: document.getElementById('backgroundimage').style.width = '180px'; bgneal@45: bgneal@183: updateColor('bordercolor_pick', 'bordercolor'); bgneal@183: updateColor('bgcolor_pick', 'bgcolor'); bgneal@183: } else bgneal@183: tinyMCEPopup.dom.hide('action'); bgneal@45: } bgneal@45: bgneal@45: function updateAction() { bgneal@45: var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0]; bgneal@45: bgneal@45: tinyMCEPopup.restoreSelection(); bgneal@183: el = ed.selection.getStart(); bgneal@45: tdElm = ed.dom.getParent(el, "td,th"); bgneal@45: trElm = ed.dom.getParent(el, "tr"); bgneal@45: tableElm = ed.dom.getParent(el, "table"); bgneal@45: bgneal@183: // Cell is selected bgneal@183: if (ed.dom.hasClass(tdElm, 'mceSelected')) { bgneal@183: // Update all selected sells bgneal@183: tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) { bgneal@183: updateCell(td); bgneal@183: }); bgneal@183: bgneal@183: ed.addVisual(); bgneal@183: ed.nodeChanged(); bgneal@183: inst.execCommand('mceEndUndoLevel'); bgneal@183: tinyMCEPopup.close(); bgneal@183: return; bgneal@183: } bgneal@183: bgneal@45: ed.execCommand('mceBeginUndoLevel'); bgneal@45: bgneal@45: switch (getSelectValue(formObj, 'action')) { bgneal@45: case "cell": bgneal@45: var celltype = getSelectValue(formObj, 'celltype'); bgneal@45: var scope = getSelectValue(formObj, 'scope'); bgneal@45: bgneal@45: function doUpdate(s) { bgneal@45: if (s) { bgneal@45: updateCell(tdElm); bgneal@45: bgneal@45: ed.addVisual(); bgneal@45: ed.nodeChanged(); bgneal@45: inst.execCommand('mceEndUndoLevel'); bgneal@45: tinyMCEPopup.close(); bgneal@45: } bgneal@45: }; bgneal@45: bgneal@45: if (ed.getParam("accessibility_warnings", 1)) { bgneal@45: if (celltype == "th" && scope == "") bgneal@45: tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate); bgneal@45: else bgneal@45: doUpdate(1); bgneal@45: bgneal@45: return; bgneal@45: } bgneal@45: bgneal@45: updateCell(tdElm); bgneal@45: break; bgneal@45: bgneal@45: case "row": bgneal@45: var cell = trElm.firstChild; bgneal@45: bgneal@45: if (cell.nodeName != "TD" && cell.nodeName != "TH") bgneal@45: cell = nextCell(cell); bgneal@45: bgneal@45: do { bgneal@45: cell = updateCell(cell, true); bgneal@45: } while ((cell = nextCell(cell)) != null); bgneal@45: bgneal@45: break; bgneal@45: bgneal@45: case "all": bgneal@45: var rows = tableElm.getElementsByTagName("tr"); bgneal@45: bgneal@45: for (var i=0; i