Вход Регистрация
Файл: mailist/wys/jscripts/tiny_mce/plugins/table/jscripts/table.js
Строк: 396
<?php
var actionorgTableWidthorgTableHeight;

function 
insertTable() {
    var 
formObj document.forms[0];
    var 
inst tinyMCE.selectedInstance;
    var 
cols 2rows 2border 0cellpadding = -1cellspacing = -1alignwidthheightclassNamecaption;
    var 
html ''capEl;
    var 
elm tinyMCE.tableElm;
    var 
cellLimitrowLimitcolLimit;

    if (!
AutoValidator.validate(formObj)) {
        
alert(tinyMCE.getLang('lang_invalid_data'));
        return 
false;
    }

    
tinyMCEPopup.restoreSelection();

    
// Get form data
    
cols formObj.elements['cols'].value;
    
rows formObj.elements['rows'].value;
    
border formObj.elements['border'].value != "" formObj.elements['border'].value  0;
    
cellpadding formObj.elements['cellpadding'].value != "" formObj.elements['cellpadding'].value "";
    
cellspacing formObj.elements['cellspacing'].value != "" formObj.elements['cellspacing'].value "";
    
align formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;
    
width formObj.elements['width'].value;
    
height formObj.elements['height'].value;
    
bordercolor formObj.elements['bordercolor'].value;
    
bgcolor formObj.elements['bgcolor'].value;
    
className formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;
    
id formObj.elements['id'].value;
    
summary formObj.elements['summary'].value;
    
style formObj.elements['style'].value;
    
dir formObj.elements['dir'].value;
    
lang formObj.elements['lang'].value;
    
background formObj.elements['backgroundimage'].value;
    
caption formObj.elements['caption'].checked;

    
cellLimit tinyMCE.getParam('table_cell_limit'false);
    
rowLimit tinyMCE.getParam('table_row_limit'false);
    
colLimit tinyMCE.getParam('table_col_limit'false);

    
// Validate table size
    
if (colLimit && cols colLimit) {
        
alert(tinyMCE.getLang('lang_table_col_limit'''true, {cols colLimit}));
        return 
false;
    } else if (
rowLimit && rows rowLimit) {
        
alert(tinyMCE.getLang('lang_table_row_limit'''true, {rows rowLimit}));
        return 
false;
    } else if (
cellLimit && cols rows cellLimit) {
        
alert(tinyMCE.getLang('lang_table_cell_limit'''true, {cells cellLimit}));
        return 
false;
    }

    
// Update table
    
if (action == "update") {
        
inst.execCommand('mceBeginUndoLevel');

        
tinyMCE.setAttrib(elm'cellPadding'cellpaddingtrue);
        
tinyMCE.setAttrib(elm'cellSpacing'cellspacingtrue);
        
tinyMCE.setAttrib(elm'border'bordertrue);
        
tinyMCE.setAttrib(elm'align'align);
        
tinyMCE.setAttrib(elm'class'className);
        
tinyMCE.setAttrib(elm'style'style);
        
tinyMCE.setAttrib(elm'id'id);
        
tinyMCE.setAttrib(elm'summary'summary);
        
tinyMCE.setAttrib(elm'dir'dir);
        
tinyMCE.setAttrib(elm'lang'lang);

        
capEl elm.getElementsByTagName('caption')[0];

        if (
capEl && !caption)
            
capEl.parentNode.removeChild(capEl);

        if (!
capEl && caption) {
            
capEl elm.ownerDocument.createElement('caption');
            
capEl.innerHTML '&nbsp;';
            
elm.insertBefore(capElelm.firstChild);
        }

        
// Not inline styles
        
if (!tinyMCE.getParam("inline_styles"))
            
tinyMCE.setAttrib(elm'width'widthtrue);

        
// Remove these since they are not valid XHTML
        
tinyMCE.setAttrib(elm'borderColor''');
        
tinyMCE.setAttrib(elm'bgColor''');
        
tinyMCE.setAttrib(elm'background''');
        
tinyMCE.setAttrib(elm'height''');

        if (
background != '')
            
elm.style.backgroundImage "url('" background "')";
        else
            
elm.style.backgroundImage '';

        if (
tinyMCE.getParam("inline_styles"))
            
elm.style.borderWidth border "px";

        if (
tinyMCE.getParam("inline_styles")) {
            if (
width != '')
                
elm.style.width getCSSSize(width);
        }

        if (
bordercolor != "") {
            
elm.style.borderColor bordercolor;
            
elm.style.borderStyle elm.style.borderStyle == "" "solid" elm.style.borderStyle;
            
elm.style.borderWidth border == "" "1px" border;
        } else
            
elm.style.borderColor '';

        
elm.style.backgroundColor bgcolor;
        
elm.style.height getCSSSize(height);

        
tinyMCE.handleVisualAid(tinyMCE.tableElmfalseinst.visualAidinst);

        
// Fix for stange MSIE align bug
        
tinyMCE.tableElm.outerHTML tinyMCE.tableElm.outerHTML;

        
tinyMCE.handleVisualAid(inst.getBody(), trueinst.visualAidinst);
        
tinyMCE.triggerNodeChange();
        
inst.execCommand('mceEndUndoLevel');

        
// Repaint if dimensions changed
        
if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)
            
inst.repaint();

        
tinyMCEPopup.close();
        return 
true;
    }

    
// Create new table
    
html += '<table';

    
html += makeAttrib('id'id);
    
html += makeAttrib('border'border);
    
html += makeAttrib('cellpadding'cellpadding);
    
html += makeAttrib('cellspacing'cellspacing);
    
html += makeAttrib('width'width);
    
//html += makeAttrib('height', height);
    //html += makeAttrib('bordercolor', bordercolor);
    //html += makeAttrib('bgcolor', bgcolor);
    
html += makeAttrib('align'align);
    
html += makeAttrib('class'tinyMCE.getVisualAidClass(classNameborder == 0));
    
html += makeAttrib('style'style);
    
html += makeAttrib('summary'summary);
    
html += makeAttrib('dir'dir);
    
html += makeAttrib('lang'lang);
    
html += '>';

    if (
caption)
        
html += '<caption>&nbsp;</caption>';

    for (var 
y=0y<rowsy++) {
        
html += "<tr>";

        for (var 
x=0x<colsx++)
            
html += '<td>&nbsp;</td>';

        
html += "</tr>";
    }

    
html += "</table>";

    
inst.execCommand('mceBeginUndoLevel');
    
inst.execCommand('mceInsertContent'falsehtml);
    
tinyMCE.handleVisualAid(inst.getBody(), truetinyMCE.settings['visual']);
    
inst.execCommand('mceEndUndoLevel');

    
tinyMCEPopup.close();
}

function 
makeAttrib(attribvalue) {
    var 
formObj document.forms[0];
    var 
valueElm formObj.elements[attrib];

    if (
typeof(value) == "undefined" || value == null) {
        
value "";

        if (
valueElm)
            
value valueElm.value;
    }

    if (
value == "")
        return 
"";

    
// XML encode it
    
value value.replace(/&/g'&amp;');
    
value value.replace(/"/g, '&quot;');
    value = value.replace(/</g, '&lt;');
    value = value.replace(/>/g, '&gt;');

    return ' ' + attrib + '="' + value + '"';
}

function init() {
    tinyMCEPopup.resizeToInnerSize();

    document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
    document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
    document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
    document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');

    var cols = 2, rows = 2, border = tinyMCE.getParam('table_default_border', '0'), cellpadding = tinyMCE.getParam('table_default_cellpadding', ''), cellspacing = tinyMCE.getParam('table_default_cellspacing', '');
    var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";
    var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "";
    var inst = tinyMCE.selectedInstance;
    var formObj = document.forms[0];
    var elm = tinyMCE.getParentElement(inst.getFocusElement(), "
table");

    tinyMCE.tableElm = elm;
    action = tinyMCE.getWindowArg('action');
    if (action == null)
        action = tinyMCE.tableElm ? "
update" : "insert";

    if (tinyMCE.tableElm && action != "
insert") {
        var rowsAr = tinyMCE.tableElm.rows;
        var cols = 0;
        for (var i=0; i<rowsAr.length; i++)
            if (rowsAr[i].cells.length > cols)
                cols = rowsAr[i].cells.length;

        cols = cols;
        rows = rowsAr.length;

        st = tinyMCE.parseStyle(tinyMCE.getAttrib(tinyMCE.tableElm, "
style"));
        border = trimSize(getStyle(elm, 'border', 'borderWidth'));
        cellpadding = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellpadding', "");
        cellspacing = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellspacing', "");
        width = trimSize(getStyle(elm, 'width', 'width'));
        height = trimSize(getStyle(elm, 'height', 'height'));
        bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));
        bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));
        align = tinyMCE.getAttrib(tinyMCE.tableElm, 'align', align);
        className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tinyMCE.tableElm, 'class'), false);
        id = tinyMCE.getAttrib(tinyMCE.tableElm, 'id');
        summary = tinyMCE.getAttrib(tinyMCE.tableElm, 'summary');
        style = tinyMCE.serializeStyle(st);
        dir = tinyMCE.getAttrib(tinyMCE.tableElm, 'dir');
        lang = tinyMCE.getAttrib(tinyMCE.tableElm, 'lang');
        background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("
url\('?([^']*)'?\)", 'gi'), "$1");
        formObj.caption.checked = tinyMCE.tableElm.getElementsByTagName('
caption').length > 0;

        orgTableWidth = width;
        orgTableHeight = height;

        action = "update";
    }

    addClassesToList('
class', "table_styles");

    // Update form
    selectByValue(formObj, '
align', align);
    selectByValue(formObj, '
class', className);
    formObj.cols.value = cols;
    formObj.rows.value = rows;
    formObj.border.value = border;
    formObj.cellpadding.value = cellpadding;
    formObj.cellspacing.value = cellspacing;
    formObj.width.value = width;
    formObj.height.value = height;
    formObj.bordercolor.value = bordercolor;
    formObj.bgcolor.value = bgcolor;
    formObj.id.value = id;
    formObj.summary.value = summary;
    formObj.style.value = style;
    formObj.dir.value = dir;
    formObj.lang.value = lang;
    formObj.backgroundimage.value = background;
    formObj.insert.value = tinyMCE.getLang('
lang_' + action, 'Insert', true); 

    updateColor('
bordercolor_pick', 'bordercolor');
    updateColor('
bgcolor_pick', 'bgcolor');

    // Resize some elements
    if (isVisible('
backgroundimagebrowser'))
        document.getElementById('
backgroundimage').style.width = '180px';

    // Disable some fields in update mode
    if (action == "update") {
        formObj.cols.disabled = true;
        formObj.rows.disabled = true;
    }
}

function changedSize() {
    var formObj = document.forms[0];
    var st = tinyMCE.parseStyle(formObj.style.value);

    var width = formObj.width.value;
    if (width != "")
        st['
width'] = tinyMCE.getParam("inline_styles") ? getCSSSize(width) : "";
    else
        st['
width'] = "";

    var height = formObj.height.value;
    if (height != "")
        st['
height'] = getCSSSize(height);
    else
        st['
height'] = "";

    formObj.style.value = tinyMCE.serializeStyle(st);
}

function changedBackgroundImage() {
    var formObj = document.forms[0];
    var st = tinyMCE.parseStyle(formObj.style.value);

    st['
background-image'] = "url('" + formObj.backgroundimage.value + "')";

    formObj.style.value = tinyMCE.serializeStyle(st);
}

function changedBorder() {
    var formObj = document.forms[0];
    var st = tinyMCE.parseStyle(formObj.style.value);

    // Update border width if the element has a color
    if (formObj.border.value != "" && formObj.bordercolor.value != "")
        st['
border-width'] = formObj.border.value + "px";

    formObj.style.value = tinyMCE.serializeStyle(st);
}

function changedColor() {
    var formObj = document.forms[0];
    var st = tinyMCE.parseStyle(formObj.style.value);

    st['
background-color'] = formObj.bgcolor.value;

    if (formObj.bordercolor.value != "") {
        st['
border-color'] = formObj.bordercolor.value;

        // Add border-width if it'
s missing
        
if (!st['border-width'])
            
st['border-width'] = formObj.border.value == "" "1px" formObj.border.value "px";
    }

    
formObj.style.value tinyMCE.serializeStyle(st);
}

function 
changedStyle() {
    var 
formObj document.forms[0];
    var 
st tinyMCE.parseStyle(formObj.style.value);

    if (
st['background-image'])
        
formObj.backgroundimage.value st['background-image'].replace(new RegExp("url\('?([^']*)'?\)"'gi'), "$1");
    else
        
formObj.backgroundimage.value '';

    if (
st['width'])
        
formObj.width.value trimSize(st['width']);

    if (
st['height'])
        
formObj.height.value trimSize(st['height']);

    if (
st['background-color']) {
        
formObj.bgcolor.value st['background-color'];
        
updateColor('bgcolor_pick','bgcolor');
    }

    if (
st['border-color']) {
        
formObj.bordercolor.value st['border-color'];
        
updateColor('bordercolor_pick','bordercolor');
    }
}
?>
Онлайн: 1
Реклама