Вход Регистрация
Файл: usr/plugins/htmleditor/plugins/table/js/row.js
Строк: 230
<?php
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 tinyMCEPopup.editor;
    var 
dom inst.dom;
    var 
trElm dom.getParent(inst.selection.getStart(), "tr");
    var 
formObj document.forms[0];
    var 
st dom.parseStyle(dom.getAttrib(trElm"style"));

    
// Get table row data
    
var rowtype trElm.parentNode.nodeName.toLowerCase();
    var 
align dom.getAttrib(trElm'align');
    var 
valign dom.getAttrib(trElm'valign');
    var 
height trimSize(getStyle(trElm'height''height'));
    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 dom.getAttrib(trElm'id');
    var 
lang dom.getAttrib(trElm'lang');
    var 
dir dom.getAttrib(trElm'dir');

    
selectByValue(formObj'rowtype'rowtype);

    
// Any cells selected
    
if (dom.select('td.mceSelected,th.mceSelected'trElm).length == 0) {
        
// 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 dom.serializeStyle(st);
        
selectByValue(formObj'align'align);
        
selectByValue(formObj'valign'valign);
        
selectByValue(formObj'class'classNametruetrue);
        
selectByValue(formObj'dir'dir);

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

        
updateColor('bgcolor_pick''bgcolor');
    } else
        
tinyMCEPopup.dom.hide('action');
}

function 
updateAction() {
    var 
inst tinyMCEPopup.editordom inst.domtrElmtableElmformObj document.forms[0];
    var 
action getSelectValue(formObj'action');

    
tinyMCEPopup.restoreSelection();
    
trElm dom.getParent(inst.selection.getStart(), "tr");
    
tableElm dom.getParent(inst.selection.getStart(), "table");

    
// Update all selected rows
    
if (dom.select('td.mceSelected,th.mceSelected'trElm).length 0) {
        
tinymce.each(tableElm.rows, function(tr) {
            var 
i;

            for (
0tr.cells.lengthi++) {
                if (
dom.hasClass(tr.cells[i], 'mceSelected')) {
                    
updateRow(trtrue);
                    return;
                }
            }
        });

        
inst.addVisual();
        
inst.nodeChanged();
        
inst.execCommand('mceEndUndoLevel');
        
tinyMCEPopup.close();
        return;
    }

    
inst.execCommand('mceBeginUndoLevel');

    switch (
action) {
        case 
"row":
            
updateRow(trElm);
            break;

        case 
"all":
            var 
rows tableElm.getElementsByTagName("tr");

            for (var 
i=0i<rows.lengthi++)
                
updateRow(rows[i], true);

            break;

        case 
"odd":
        case 
"even":
            var 
rows tableElm.getElementsByTagName("tr");

            for (var 
i=0i<rows.lengthi++) {
                if ((
== && action == "odd") || (!= && action == "even"))
                    
updateRow(rows[i], truetrue);
            }

            break;
    }

    
inst.addVisual();
    
inst.nodeChanged();
    
inst.execCommand('mceEndUndoLevel');
    
tinyMCEPopup.close();
}

function 
updateRow(tr_elmskip_idskip_parent) {
    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();

    
// Update row element
    
if (!skip_id)
        
tr_elm.setAttribute('id'formObj.id.value);

    
tr_elm.setAttribute('align'getSelectValue(formObj'align'));
    
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'dom.serializeStyle(dom.parseStyle(formObj.style.value)));
    
dom.setAttrib(tr_elm'class'getSelectValue(formObj'class'));

    
// Clear deprecated attributes
    
tr_elm.setAttribute('background''');
    
tr_elm.setAttribute('bgColor''');
    
tr_elm.setAttribute('height''');

    
// Set styles
    
tr_elm.style.height getCSSSize(formObj.height.value);
    
tr_elm.style.backgroundColor formObj.bgcolor.value;

    if (
formObj.backgroundimage.value != "")
        
tr_elm.style.backgroundImage "url('" formObj.backgroundimage.value "')";
    else
        
tr_elm.style.backgroundImage '';

    
// Setup new rowtype
    
if (curRowType != rowtype && !skip_parent) {
        
// first, clone the node we are working on
        
var newRow tr_elm.cloneNode(1);

        
// next, find the parent of its new destination (creating it if necessary)
        
var theTable dom.getParent(tr_elm"table");
        var 
dest rowtype;
        var 
newParent null;
        for (var 
0theTable.childNodes.lengthi++) {
            if (
theTable.childNodes[i].nodeName.toLowerCase() == dest)
                
newParent theTable.childNodes[i];
        }

        if (
newParent == null) {
            
newParent doc.createElement(dest);

            if (
dest == "thead") {
                if (
theTable.firstChild.nodeName == 'CAPTION')
                    
inst.dom.insertAfter(newParenttheTable.firstChild);
                else
                    
theTable.insertBefore(newParenttheTable.firstChild);
            } else
                
theTable.appendChild(newParent);
        }

        
// append the row to the new parent
        
newParent.appendChild(newRow);

        
// remove the original
        
tr_elm.parentNode.removeChild(tr_elm);

        
// 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], dom tinyMCEPopup.editor.dom;
    var 
st dom.parseStyle(formObj.style.value);

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

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

function 
changedStyle() {
    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");
    else
        
formObj.backgroundimage.value '';

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

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

function 
changedSize() {
    var 
formObj document.forms[0], dom tinyMCEPopup.editor.dom;
    var 
st dom.parseStyle(formObj.style.value);

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

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

function 
changedColor() {
    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 dom.serializeStyle(st);
}

tinyMCEPopup.onInit.add(init);
?>
Онлайн: 3
Реклама