From d9344fc349e8c5765898c90bf5061e56cd21c8a0 Mon Sep 17 00:00:00 2001 From: svncommit <devs@roundcube.net> Date: Tue, 15 Apr 2008 17:22:00 -0400 Subject: [PATCH] HTML editing fixes, upgrade to TinyMCE v3.0.6 --- program/js/tiny_mce/plugins/table/js/row.js | 86 ++++++++++++++++++++++++------------------ 1 files changed, 49 insertions(+), 37 deletions(-) diff --git a/program/js/tiny_mce/plugins/table/jscripts/row.js b/program/js/tiny_mce/plugins/table/js/row.js similarity index 68% rename from program/js/tiny_mce/plugins/table/jscripts/row.js rename to program/js/tiny_mce/plugins/table/js/row.js index 395ddf0..d25f635 100644 --- a/program/js/tiny_mce/plugins/table/jscripts/row.js +++ b/program/js/tiny_mce/plugins/table/js/row.js @@ -1,37 +1,42 @@ +tinyMCEPopup.requireLangPack(); + function init() { tinyMCEPopup.resizeToInnerSize(); document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); - var inst = tinyMCE.selectedInstance; - var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr"); + var inst = tinyMCEPopup.editor; + var dom = inst.dom; + var trElm = dom.getParent(inst.selection.getNode(), "tr"); var formObj = document.forms[0]; - var st = tinyMCE.parseStyle(tinyMCE.getAttrib(trElm, "style")); + var st = dom.parseStyle(dom.getAttrib(trElm, "style")); // Get table row data var rowtype = trElm.parentNode.nodeName.toLowerCase(); - var align = tinyMCE.getAttrib(trElm, 'align'); - var valign = tinyMCE.getAttrib(trElm, 'valign'); + var align = dom.getAttrib(trElm, 'align'); + var valign = dom.getAttrib(trElm, 'valign'); var height = trimSize(getStyle(trElm, 'height', 'height')); - var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(trElm, 'class'), false); + var className = dom.getAttrib(trElm, 'class'); var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor')); var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");; - var id = tinyMCE.getAttrib(trElm, 'id'); - var lang = tinyMCE.getAttrib(trElm, 'lang'); - var dir = tinyMCE.getAttrib(trElm, 'dir'); + var id = dom.getAttrib(trElm, 'id'); + 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 = tinyMCE.serializeStyle(st); + formObj.style.value = dom.serializeStyle(st); selectByValue(formObj, 'align', align); selectByValue(formObj, 'valign', valign); - selectByValue(formObj, 'class', className); + selectByValue(formObj, 'class', className, true, true); selectByValue(formObj, 'rowtype', rowtype); selectByValue(formObj, 'dir', dir); @@ -43,13 +48,12 @@ } function updateAction() { - tinyMCEPopup.restoreSelection(); - - var inst = tinyMCE.selectedInstance; - var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr"); - var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table"); - var formObj = document.forms[0]; + var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0]; var action = getSelectValue(formObj, 'action'); + + tinyMCEPopup.restoreSelection(); + trElm = dom.getParent(inst.selection.getNode(), "tr"); + tableElm = dom.getParent(inst.selection.getNode(), "table"); inst.execCommand('mceBeginUndoLevel'); @@ -78,15 +82,16 @@ break; } - tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst); - tinyMCE.triggerNodeChange(); + inst.addVisual(); + inst.nodeChanged(); inst.execCommand('mceEndUndoLevel'); tinyMCEPopup.close(); } function updateRow(tr_elm, skip_id, skip_parent) { - var inst = tinyMCE.selectedInstance; + var inst = tinyMCEPopup.editor; var formObj = document.forms[0]; + var dom = inst.dom; var curRowType = tr_elm.parentNode.nodeName.toLowerCase(); var rowtype = getSelectValue(formObj, 'rowtype'); var doc = inst.getDoc(); @@ -99,8 +104,8 @@ tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign')); tr_elm.setAttribute('lang', formObj.lang.value); tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir')); - tr_elm.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value))); - tinyMCE.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class')); + tr_elm.setAttribute('style', dom.serializeStyle(dom.parseStyle(formObj.style.value))); + dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class')); // Clear deprecated attributes tr_elm.setAttribute('background', ''); @@ -122,7 +127,7 @@ var newRow = tr_elm.cloneNode(1); // next, find the parent of its new destination (creating it if necessary) - var theTable = tinyMCE.getParentElement(tr_elm, "table"); + var theTable = dom.getParent(tr_elm, "table"); var dest = rowtype; var newParent = null; for (var i = 0; i < theTable.childNodes.length; i++) { @@ -133,9 +138,12 @@ if (newParent == null) { newParent = doc.createElement(dest); - if (dest == "thead") - theTable.insertBefore(newParent, theTable.firstChild); - else + if (dest == "thead") { + if (theTable.firstChild.nodeName == 'CAPTION') + inst.dom.insertAfter(newParent, theTable.firstChild); + else + theTable.insertBefore(newParent, theTable.firstChild); + } else theTable.appendChild(newParent); } @@ -148,20 +156,22 @@ // set tr_elm to the new node tr_elm = newRow; } + + dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText))); } function changedBackgroundImage() { - var formObj = document.forms[0]; - var st = tinyMCE.parseStyle(formObj.style.value); + var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom; + var st = dom.parseStyle(formObj.style.value); st['background-image'] = "url('" + formObj.backgroundimage.value + "')"; - formObj.style.value = tinyMCE.serializeStyle(st); + formObj.style.value = dom.serializeStyle(st); } function changedStyle() { - var formObj = document.forms[0]; - var st = tinyMCE.parseStyle(formObj.style.value); + var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom; + var st = dom.parseStyle(formObj.style.value); if (st['background-image']) formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); @@ -178,8 +188,8 @@ } function changedSize() { - var formObj = document.forms[0]; - var st = tinyMCE.parseStyle(formObj.style.value); + var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom; + var st = dom.parseStyle(formObj.style.value); var height = formObj.height.value; if (height != "") @@ -187,14 +197,16 @@ else st['height'] = ""; - formObj.style.value = tinyMCE.serializeStyle(st); + formObj.style.value = dom.serializeStyle(st); } function changedColor() { - var formObj = document.forms[0]; - var st = tinyMCE.parseStyle(formObj.style.value); + var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom; + var st = dom.parseStyle(formObj.style.value); st['background-color'] = formObj.bgcolor.value; - formObj.style.value = tinyMCE.serializeStyle(st); + formObj.style.value = dom.serializeStyle(st); } + +tinyMCEPopup.onInit.add(init); -- Gitblit v1.9.1