MySQL-Admin

 view release on metacpan or  search on metacpan

htdocs/javascript/cms.js  view on Meta::CPAN

maxLength = 1000;
m_sid = '123';
m_txt = '';

/**
 *
 *
 * @param {*} inXml XmL Document or filename
 * @param {*} inXsl XsL Document or filename
 * @param {string} outId
 * @param {string} tabId
 * @param {string} title
 */
function loadPage(inXml, inXsl, outId, tabId, title) {
    xml = typeof inXml == 'object' ? inXml : loadXMLDoc(inXml);
    xsl = typeof inXsl == 'object' ? inXsl : loadXMLDoc(inXsl);
    if (typeof XSLTProcessor == 'undefined') {
        var xslt = new ActiveXObject("Msxml2.XSLTemplate");
        if (xslt) {
            var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
            var xmlstr = xsl.xml ? xsl.xml : (new XMLSerializer()).serializeToString(xsl);
            xslDoc.loadXML(xmlstr);
            xslt.stylesheet = xslDoc;
            var xslProc = xslt.createProcessor();
            xslProc.input = xslDoc;
            xslProc.transform();
            document.getElementById(outId).innerHTML = xslProc.output;
        } else {
            ex = xml.transformNode(xsl);
            document.getElementById(outId).innerHTML = ex;
        }
    } else if (document.implementation && document.implementation.createDocument) {
        xsltProcessor = new XSLTProcessor();
        xsltProcessor.importStylesheet(xsl);
        resultDocument = xsltProcessor.transformToFragment(xml, document);
        node = document.getElementById(outId);
        setText(outId, '');
        if (node.childNodes[0])
            node.removeChild(node.childNodes[0]);
        if (node) node.appendChild(resultDocument);
    }
    setCurrentTab(tabId, title);
    if (outId == 'content') disableOutputEscaping('content');
}

/**
 * onkeydown="intputMask(this.id,"(\w+)")"
 *  Would only accept chars for given id as Input.
 * @param {string} id
 * @param {string} regexp
 */
function intputMask(id, regexp) {
    var rxObj = regexp;
    rxObj.exec(document.getElementById(id).value);
    document.getElementById(id).value = RegExp.$1;
}
var tmpTxt;
var tmpID;

function showPopup(id, hideCloseButton) {
    visible('popup');
    if (hideCloseButton) hide('closeButton');
    else visible('closeButton');
    tmpTxt = getText(id);
    tmpID = id;
    setText(id, '');
    setText('popupTitle', translate(id));
    setText('popupContent', tmpTxt);
    evalId(id);
}

function showEditorOptions() {
    visible('popup');
    visible('closeButton');
    tmpTxt = getText('editorOptions');
    tmpID = 'editorOptions';
    setText('popupTitle', translate('editorOptions'));
    setText('popupContent', tmpTxt);
}

function closePopup() {
    hide('popup');
    if (tmpID !== 'editorOptions')
        setText(tmpID, tmpTxt);
    document.getElementById('popupContent1').style.left = '25%';
    document.getElementById('popupContent1').style.width = '50%';
}

function setCurrentTab(id, title) {
    var body = document.getElementsByTagName('body')[0];
    var nodes = body.getElementsByTagName("td");

    for (var i = 0; i < nodes.length; i++) {
        if (nodes[i].className == 'headerItemHover') {
            nodes[i].className = 'headerItem';
            nodes[i].firstChild.className = 'menuLink';
        }
    }

    var entry = document.getElementById(id);
    var entryDynamic = document.getElementById('dynamicTab');

    if (entry) {

        for (var j = 0; j < nodes.length; j++) {
            if (nodes[j].className == 'headerItemHover') {
                nodes[j].className = 'headerItem';
                if (nodes[j].firstChild) nodes[j].firstChild.className = 'menuLink';
            }
        }

        if (entry.className == 'headerItem')
            entry.className = 'headerItemHover';

        if (entryDynamic) {
            entryDynamic.style.display = 'none';
            entryDynamic.className = 'headerItem';
        }
        return;
    }
    if (entryDynamic && title) {
        entryDynamic.style.display = '';
        entryDynamic.className = 'headerItemHover';
        entryDynamic.innerHTML = '<a class="dynamicLink">' + translate(title) + '</a>';
    }
}
var currentId, currentTxt;
var act = 'save';

/**
 *<pre><code>
 * <form onsubmit="submitForm(this,'$m_sAction','$m_sTitle');return false;" method="GET" enctype="multipart/form-data">
 * <input type="hidden" name="action" value="foo">
 * </code></pre>
 * @param {HTMLElement} node
 * @param {string} tabId Tabwidget id
 * @param {string} tabTitle Tabwidget text
 * @param {boolean} bHistory Browser History
 * @param {string} Submit Type GET or POST
 * @param {sting} uri script url
 */
function submitForm(node, tabId, tabTitle, bHistory, method, uri) {
    bHistory = typeof bHistory !== 'undefined' ? bHistory : true;
    method = typeof method !== 'undefined' ? method : 'POST';
    var url = typeof uri !== 'undefined' ? uri : 'cgi-bin/mysql.pl?';
    try {

htdocs/javascript/cms.js  view on Meta::CPAN


    if (window.ActiveXObject) {
        xhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } else {
        xhttp = new XMLHttpRequest();
    }
    xhttp.open("GET", filename, false);
    xhttp.overrideMimeType("text/xml");
    if (window.ActiveXObject) {
        try {
            xhttp.responseType = "msxml-document";
        } catch (err) {
            alert(err);
        }
    }
    xhttp.send(null);
    return xhttp.responseXML;
}

function setContent() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            hide('load');
            response = http_request.responseXML;
            for (var i = 0; i < response.getElementsByTagName('output').length; i++) {
                var obj = response.getElementsByTagName('output')[i];
                var outID = obj.getAttribute('id');
                var typeName = obj.getAttribute('type');

                var txt = response.getElementsByTagName('output')[i].textContent;
                if (navigator.userAgent.indexOf("Firefox") != -1)
                    txt = txt.replace("<![CDATA[", "").replace("]]>", "");
                if (typeName === 'script') {
                    eval(txt);
                } else if (typeName === 'xml') {
                    var xsl = obj.getAttribute('xsl');
                    var title = obj.getAttribute('title');
                    var tabId = obj.getAttribute('tabId');
                    var parser = new DOMParser();
                    var xmlDoc = parser.parseFromString(txt, "text/xml");
                    loadPage(xmlDoc, xsl, outID, tabId, title);
                    evalId(outID);
                } else {
                    setText(outID, txt);
                    evalId(outID);
                }
            }
            if (!m_blogin && (bAction == 'login' || bAction == 'logout')) loadMenu();
            setCurrentTab(cAction, m_txt);
        } else {
            if (oldpage.length > 0) {
                setText('content', oldpage);
                setCurrentTab(currentId, currentTxt);
            } else {
                errorPopUp('<div style="overflow:auto">' + http_request.status + " " + http_request.responseText + "</div>", errorMessage);
            }
            return false;
        }
        if (m_sid == '123' && m_blogin && (cAction != 'reg' && cAction != 'datenschutz' && cAction != 'lostPassword' && cAction != 'make' && cAction != 'makePassword')) {
            showPopup('loginContent', true);
            evalId('popupContent');
        } else {
            var closeButton = document.getElementById("closeButton");
            closeButton.addEventListener('click', closePopup);
        }
    }
}

function alert(txt) {
    visible('popup');
    setText('popupContent', '<div align="center">' + txt + '<br/><input type="submit" id="confirmButton" value="Ok"/></div>');
    var node = document.getElementById("confirmButton");
    node.addEventListener('click', function (evt) {
        hide('popup');
    });
}
window.onerror = logError;

function logError(message, file, line) {

    var formData = new FormData();
    formData.append("message", message);
    formData.append("file", file);
    formData.append("line", line);
    formData.append("action", "logJsError");
    requestURI("cgi-bin/mysql.pl", "", "", false, formData, "POST");
    console.log("Message: " + message + "file: " + file + "line: " + line);
}

function confirm2(txt, sub, arg, arg2, arg3) {
    visible('popup');
    setText('popupContent', '<b>' + txt +
        '</b><div align="right" style="padding:0.4em;"><input type="submit" name="cancelButton" id="cancelButton" value="Cancel"/>&#160;<input  type="submit" id="confirmButton" value="Ok"/></div>'
    );
    var node = document.getElementById("confirmButton");
    node.addEventListener('click', function (evt) {
        hide('popup');
        sub(arg, arg2, arg3);
    });
    var node2 = document.getElementById("cancelButton");
    node2.addEventListener('click', function (evt) {
        hide('popup');
    });
}

function moveHere(txt, sub, arg, arg2, arg3) {
    visible('moveHere');
    window.document.title = txt;
    setText('moveHere', '<div id="moveButton" class="moveButton" style="padding:0.4em;">' + translate('MoveHere') +
        '</div><div id="moveCancelButton" class="moveButton" style="padding:0.4em;">' + translate('Cancel') + '</div>');
    var node = document.getElementById("moveButton");
    document.getElementById('moveHere').style.position = "absolute";
    document.getElementById('moveHere').style.left = (posX - dragX) + "px";
    document.getElementById('moveHere').style.top = (posY - dragY) + "px";
    document.getElementById('moveHere').style.zIndex = 4;

    node.addEventListener('click', function (evt) {
        stopDrop();
        evt.stopPropagation();
        sub(arg, arg2, arg3);
    });
    var node2 = document.getElementById("moveCancelButton");
    node2.addEventListener('click', function (evt) {
        stopDrop();
        evt.stopPropagation();
        window.document.title = translate('links');
    });
}

function stopDrop() {
    hide('moveHere');
    dragobjekt.style.position = "";
    dropenabled = false;
    dragobjekt.className = "treeviewLink";
    dragobjekt = null;
    m_bNoDrop = false;
}

function prompt(txt, sub) {
    visible('popup');
    setText('popupContent', '<b>' + txt + '</b><br/><input  type="text" align="center" id="promptPopUp"/><br/><div align="right" style="padding:0.4em;"><input type="submit" name="cancelButton" id="cancelButton" value="Cancel"/>&#160;<input type="subm...
    var node = document.getElementById("confirmButton");
    node.addEventListener('click', function (evt) {
        hide('popup');
        sub(document.getElementById('promptPopUp').value);
    });
    var node2 = document.getElementById("cancelButton");
    node2.addEventListener('click', function (evt) {
        hide('popup');
        evt.stopPropagation();
    });
}

function disclaimer(txt, sub) {
    visible('disclaimer');
    setText('disclaimerContent', '<div align="center" style="padding:0.4em;"><b>' + txt + '</b>&#160;<input type="checkbox" onclick="$(\'#confirmButtonDisclaimer\').toggle()" /><div id="datenschutz"><a href="javascript:requestURI(\'cgi-bin/mysql.pl?a...
    var node = document.getElementById("confirmButtonDisclaimer");
    node.addEventListener('click', function (evt) {
        hide('disclaimer');
        $('#confirmButtonDisclaimer').toggle();
        privatPolicy = true;
        sub();
    });
}


function errorPopUp(txt, sub, arg, arg2, arg3) {
    visible('popup');
    setText('popupContent', '<b>' + txt + '</b><div align="right" style="padding:0.4em;">&#160;<input type="submit" id="confirmButton" value="Ok"/></div>');
    var node = document.getElementById("confirmButton");
    node.addEventListener('click', function (evt) {
        hide('popup');
        sub(arg, arg2, arg3);
    });
}

function checkForm(form) {
    var selectElement = form.querySelectorAll('input');
    var ret = true;
    for (i = 0; i < form.length; i++) {
        if (selectElement[i]) {
            var value = selectElement[i].value;
            var regexp = selectElement[i].dataset.regexp;
            if (value && regexp) {
                if (eval('value.match(' + regexp + ')')) {
                    selectElement[i].style.borderColor = 'green';
                    selectElement[i].title = selectElement[i].dataset.right;
                } else {
                    selectElement[i].style.borderColor = 'red';
                    selectElement[i].title = selectElement[i].dataset.error;
                    ret = false;
                }
            }
        }
    }
    return ret;
}

function errorMessage(text) {
    location.href = "install.html";
}

function evalId(id) {
    var content = document.getElementById(id);

    if (content) {
        var node = content.getElementsByTagName("script");

        for (var i = 0, j = node.length; i < j; i++) {

            if (node[i] && node[i].childNodes[0]) {
                var code = node[i].childNodes[0].nodeValue;
                try {
                    eval(code);
                } catch (e) {
                    logError(e, code,node[i].childNodes[0].id);
                }
            }
        }
    }
}

function showEditor(txt) {
    if (document.getElementById('editor')) {
        editor = ace.edit("editor");
        editor.session.setMode("ace/mode/perl");
        editor.setTheme("ace/theme/chrome");
        if (txt) {
            editor.setValue(txt, 1);
        }
    }
}

htdocs/javascript/cms.js  view on Meta::CPAN

        oldDate = new Date();
        oldTime = oldDate.getTime();
        return false;
    } else {
        var date = new Date();
        var time = date.getTime();
        return (time - oldTime > 1000) ? false : true;
    }
}

/**
 * oAutocomplete = $("txt");
 * autocomplete.push("foo");
 * autocomplete.push("bar");
 * oAutocomplete.addEventListener('keyup', Autocomplete);
 * Autocomplete(evt)
 * <pre><code><textarea id="txt"></textarea></code></pre>
 *
 * @param {*} evt
 * @returns
 */
function Autocomplete(evt) {
    if (breakOut()) return;
    if (evt.which == 8 || evt.which == 16 || evt.which === 37 || evt.which === 38 || evt.which === 39 || evt.which === 39 || evt.which === 40) return;
    var offset = 3;
    while (oAutocomplete.selectionStart - offset >= 0 && offset < 10) {// todo port to IE
        var match = '';
        if (oAutocomplete.value.substr(oAutocomplete.selectionStart - offset - 1, 1) == ' ' || oAutocomplete.value.substr(oAutocomplete.selectionStart - offset - 1,
            1).search(new RegExp("\\b")) == -1 || oAutocomplete.selectionStart - offset == 0) {
            match = oAutocomplete.value.substr(oAutocomplete.selectionStart - offset, offset);
        }
        var i = 0;
        var j = autocomplete.length;
        while (i < autocomplete.length) {
            if (match == autocomplete[i].substr(0, offset)) {
                var selectionStart = oAutocomplete.selectionStart;
                var before = oAutocomplete.value.substr(0, selectionStart - offset);
                var behind = oAutocomplete.value.substr(selectionStart, oAutocomplete.value.length);
                oAutocomplete.value = before + autocomplete[i] + behind;
                oAutocomplete.selectionStart = selectionStart;
                oAutocomplete.selectionEnd = selectionStart + autocomplete[i].length - offset;
                break;
            }
            i++;
        }
        offset++;
    }
}

/**
 * insert vales from an select into autocomplete
 *
 * @param {string} id
 */
function selKeyword(id) {
    for (var i = 0; i < document.getElementById(id).options.length; i++) autocomplete.push(document.getElementById(id).options[i].value);
}
var uno = true;

function showSQLEditor() {
    document.getElementById('popupContent1').style.left = '5%';
    document.getElementById('popupContent1').style.width = '90%';
    showPopup('SqlEditor');
    oAutocomplete = document.getElementById("sqlEdit");
    oAutocomplete.addEventListener('keyup', Autocomplete);
    if (uno) {
        selKeyword('selKeyword');
        selKeyword('tablelist');
        for (var i = 0; i < document.getElementById('tablelist').options.length; i++) selKeyword(document.getElementById('tablelist').options[i].value);
    }
    uno = false;
}

function ShowNewRow() {
    document.getElementById('popupContent1').style.left = '2%';
    document.getElementById('popupContent1').style.width = '96%';
    showPopup('ShowNewRow');
}

/**
 * fake (styled) checkbox for HTML::Editor
 *
 * @param {string} id
 * @param {HTMLElement} parent
 */
function checkButton(id, parent) {
    if (parent.className == 'htmlButton') {
        document.getElementById(id).checked = "checked";
        parent.className = 'htmlButtonChecked';
    } else {
        parent.className = 'htmlButton';
        document.getElementById(id).checked = "";
    }
}

/**
 * @copyright
 *     Copyright (C) 2006-2018 by Hr. Dirk Lindner
 *     perl -e'sub lze_Rocks{print/(...)/ for shift;}sub{&{"@_"}}->("lze_Rocks")'
 *     This program is free software; you can redistribute it and/or modify it
 *     under the terms of the GNU Lesser General Public License as published by
 *     the Free Software Foundation; This program is distributed in the hope
 *     that it will be useful, but WITHOUT ANY WARRANTY; without even
 *     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *     See the GNU Lesser General Public License for more details
 */



( run in 0.690 second using v1.01-cache-2.11-cpan-364913b4093 )