CPAN-Testers-WWW-Blog
view release on metacpan or search on metacpan
vhost/html/js/tiny_mce/plugins/table/editor_plugin_src.js view on Meta::CPAN
case "mceTableSplitCells":
if (!trElm || !tdElm)
return true;
var spandata = getColRowSpan(tdElm);
var colspan = spandata["colspan"];
var rowspan = spandata["rowspan"];
// Needs splitting
if (colspan > 1 || rowspan > 1) {
// Generate cols
tdElm.colSpan = 1;
for (var i=1; i<colspan; i++) {
var newTD = doc.createElement("td");
if (!tinymce.isIE)
newTD.innerHTML = '<br mce_bogus="1"/>';
trElm.insertBefore(newTD, nextElm(tdElm, "TD,TH"));
if (rowspan > 1)
addRows(newTD, trElm, rowspan);
}
addRows(tdElm, trElm, rowspan);
}
// Apply visual aids
tableElm = inst.dom.getParent(inst.selection.getNode(), "table");
break;
case "mceTableMergeCells":
var rows = [];
var sel = inst.selection.getSel();
var grid = getTableGrid(tableElm);
if (tinymce.isIE || sel.rangeCount == 1) {
if (user_interface) {
// Setup template
var sp = getColRowSpan(tdElm);
inst.windowManager.open({
url : url + '/merge_cells.htm',
width : 240 + parseInt(inst.getLang('table.merge_cells_delta_width', 0)),
height : 110 + parseInt(inst.getLang('table.merge_cells_delta_height', 0)),
inline : 1
}, {
action : "update",
numcols : sp.colspan,
numrows : sp.rowspan,
plugin_url : url
});
return true;
} else {
var numRows = parseInt(value['numrows']);
var numCols = parseInt(value['numcols']);
var cpos = getCellPos(grid, tdElm);
if (("" + numRows) == "NaN")
numRows = 1;
if (("" + numCols) == "NaN")
numCols = 1;
// Get rows and cells
var tRows = tableElm.rows;
for (var y=cpos.rowindex; y<grid.length; y++) {
var rowCells = [];
for (var x=cpos.cellindex; x<grid[y].length; x++) {
var td = getCell(grid, y, x);
if (td && !inArray(rows, td) && !inArray(rowCells, td)) {
var cp = getCellPos(grid, td);
// Within range
if (cp.cellindex < cpos.cellindex+numCols && cp.rowindex < cpos.rowindex+numRows)
rowCells[rowCells.length] = td;
}
}
if (rowCells.length > 0)
rows[rows.length] = rowCells;
var td = getCell(grid, cpos.rowindex, cpos.cellindex);
each(ed.dom.select('br', td), function(e, i) {
if (i > 0 && ed.dom.getAttrib('mce_bogus'))
ed.dom.remove(e);
});
}
//return true;
}
} else {
var cells = [];
var sel = inst.selection.getSel();
var lastTR = null;
var curRow = null;
var x1 = -1, y1 = -1, x2, y2;
// Only one cell selected, whats the point?
if (sel.rangeCount < 2)
return true;
// Get all selected cells
for (var i=0; i<sel.rangeCount; i++) {
var rng = sel.getRangeAt(i);
var tdElm = rng.startContainer.childNodes[rng.startOffset];
if (!tdElm)
break;
if (tdElm.nodeName == "TD" || tdElm.nodeName == "TH")
cells[cells.length] = tdElm;
}
// Get rows and cells
var tRows = tableElm.rows;
for (var y=0; y<tRows.length; y++) {
var rowCells = [];
for (var x=0; x<tRows[y].cells.length; x++) {
( run in 1.432 second using v1.01-cache-2.11-cpan-39bf76dae61 )