MediaWiki:Common.js: Difference between revisions

From fridemar.ai
Jump to navigation Jump to search
(Created page with "→‎Any JavaScript here will be loaded for all users on every page load.: function ai() { var WikiMap = ['http://google.com/search?q=', 'https://aipedia.eu/index.php?tit...")
 
No edit summary
Line 61: Line 61:




function ModifySidebar( action, section, name, link ) {
function ModifySidebar(action, section, name, link) {
try {
    try {
switch ( section ) {
        switch (section) {
case 'languages':
            case 'languages':
var target = 'p-lang';
                var target = 'p-lang';
break;
                break;
case 'toolbox':
            case 'toolbox':
var target = 'p-tb';
                var target = 'p-tb';
break;
                break;
case 'navigation':
            case 'navigation':
var target = 'p-navigation';
                var target = 'p-navigation';
break;
                break;
default:
            default:
var target = 'p-' + section;
                var target = 'p-' + section;
break;
                break;
}
        }


if ( action == 'add' ) {
        if (action == 'add') {
var node = document.getElementById( target )
            var node = document.getElementById(target)
  .getElementsByTagName( 'div' )[0]
                .getElementsByTagName('div')[0]
  .getElementsByTagName( 'ul' )[0];
                .getElementsByTagName('ul')[0];


var aNode = document.createElement( 'a' );
            var aNode = document.createElement('a');
var liNode = document.createElement( 'li' );
            var liNode = document.createElement('li');


aNode.appendChild( document.createTextNode( name ) );
            aNode.appendChild(document.createTextNode(name));
aNode.setAttribute( 'href', link );
            if (link.startsWith('javascript:')) {
liNode.appendChild( aNode );
                aNode.setAttribute('onclick', link);
liNode.className = 'plainlinks';
            } else {
node.appendChild( liNode );
                aNode.setAttribute('href', link);
}
            }


if ( action == 'remove' ) {
            liNode.appendChild(aNode);
var list = document.getElementById( target )
            liNode.className = 'plainlinks';
  .getElementsByTagName( 'div' )[0]
            node.appendChild(liNode);
  .getElementsByTagName( 'ul' )[0];
        }


var listelements = list.getElementsByTagName( 'li' );
        if (action == 'remove') {
            var list = document.getElementById(target)
                .getElementsByTagName('div')[0]
                .getElementsByTagName('ul')[0];


for ( var i = 0; i < listelements.length; i++ ) {
            var listelements = list.getElementsByTagName('li');
if (
listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
listelements[i].getElementsByTagName( 'a' )[0].href == link
)
{
list.removeChild( listelements[i] );
}
}
}


            for (var i = 0; i < listelements.length; i++) {
                if (
                    listelements[i].getElementsByTagName('a')[0].innerHTML == name ||
                    listelements[i].getElementsByTagName('a')[0].href == link
                ) {
                    list.removeChild(listelements[i]);
                }
            }
        }


} catch( e ) {
 
// let's just ignore what's happened
    } catch (e) {
return;
        // let's just ignore what's happened
}
        return;
    }
}
}


function CustomizeModificationsOfSidebar() {
function CustomizeModificationsOfSidebar() {
// adds [[Special:CategoryTree|Special:CategoryTree]] to toolbox
    // adds [[Special:CategoryTree|Special:CategoryTree]] to toolbox
//ModifySidebar( 'add', 'toolbox', 'CategoryTree', 'http://en.wikipedia.org/wiki/Special:CategoryTree' );
    //ModifySidebar( 'add', 'toolbox', 'CategoryTree', 'http://en.wikipedia.org/wiki/Special:CategoryTree' );


// removes [[Special:Upload|Special:Upload]] from toolbox
    // removes [[Special:Upload|Special:Upload]] from toolbox
//ModifySidebar( 'remove', 'toolbox', 'Upload file', 'http://en.wikipedia.org/wiki/Special:Upload' );
    //ModifySidebar( 'remove', 'toolbox', 'Upload file', 'http://en.wikipedia.org/wiki/Special:Upload' );


        ModifySidebar( 'add', 'toolbox', 'Ai', '#' );
    ModifySidebar('add', 'toolbox', 'Ai', 'javascript:ai()');
}
}


jQuery( CustomizeModificationsOfSidebar );
jQuery(CustomizeModificationsOfSidebar);

Revision as of 20:25, 16 November 2017

/* Any JavaScript here will be loaded for all users on every page load. */

function ai() {
    var WikiMap = ['http://google.com/search?q=', 'https://aipedia.eu/index.php?title='],
        i, j, k, len, llen, link, linkpatt,
        linkText, linkTextArray = [], msg, myArray, node, txt, href, a, reg, span,
        lastLastIndex, textNodeXpath, textNodes;

    textNodeXpath = './/text()[not(ancestor::a) and not(ancestor::head)and not(ancestor::option) and not(ancestor::textarea)]';
    textNodes = document.evaluate(textNodeXpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

    len = textNodes.snapshotLength;
    reg = /^\s+$/g;
    linkpatt = /\b(?:([a-z0-9äöü]*(?:[A-ZÄÖÜ_]|_)[a-z0-9äöü_]*){2,})\b/g;

    for (i = 0; i < len; i++) {
        node = textNodes.snapshotItem(i);
        txt = node.nodeValue; txt = txt.replace(reg, '');

        if (linkpatt.test(txt)) {
            span = document.createElement('span');
            lastLastIndex = 0;
            linkpatt.lastIndex = 0;
            try {
                while (true) {
                    myArray = linkpatt.exec(txt);
                    if (!myArray) break;

                    link = myArray[0];
                    linkTextArray = [link, ' °', ' ¹', ' ²', ' ³'];
                    span.appendChild(document.createTextNode(txt.substring(lastLastIndex, myArray.index)));
                    lastLastIndex = linkpatt.lastIndex;
                    linkText = myArray[1];
                    link = myArray[0];
                    llen = link.length;

                    if (link.substring(0, 2) == '' && link.substring(llen - 2, llen) == '') {
                        link = link.substring(2, llen - 2);
                    }

                    for (j = 0; j < Math.min(WikiMap.length, linkTextArray.length); j++) {
                        href = WikiMap[j] + link;
                        a = document.createElement('a');
                        a.setAttribute('href', href);
                        a.appendChild(document.createTextNode(linkTextArray[j]));
                        span.appendChild(a);
                    }
                }
                span.appendChild(document.createTextNode(txt.substring(lastLastIndex)));
                node.parentNode.replaceChild(span, node);
            } catch (e) {
                alert(e);
            }
        }
    }

    msg = 'alca enabled with:\n' + '\nMainLink:' + WikiMap[0] + '\n0:' + WikiMap[1] + '\n1:' + WikiMap[2] + '\n2:' + WikiMap[3] + '\n3:' + WikiMap[4] + '\n:' + '\n:' + 'Intermediate Webpages:' + '\n:' + document.location;
}




function ModifySidebar(action, section, name, link) {
    try {
        switch (section) {
            case 'languages':
                var target = 'p-lang';
                break;
            case 'toolbox':
                var target = 'p-tb';
                break;
            case 'navigation':
                var target = 'p-navigation';
                break;
            default:
                var target = 'p-' + section;
                break;
        }

        if (action == 'add') {
            var node = document.getElementById(target)
                .getElementsByTagName('div')[0]
                .getElementsByTagName('ul')[0];

            var aNode = document.createElement('a');
            var liNode = document.createElement('li');

            aNode.appendChild(document.createTextNode(name));
            if (link.startsWith('javascript:')) {
                aNode.setAttribute('onclick', link);
            } else {
                aNode.setAttribute('href', link);
            }

            liNode.appendChild(aNode);
            liNode.className = 'plainlinks';
            node.appendChild(liNode);
        }

        if (action == 'remove') {
            var list = document.getElementById(target)
                .getElementsByTagName('div')[0]
                .getElementsByTagName('ul')[0];

            var listelements = list.getElementsByTagName('li');

            for (var i = 0; i < listelements.length; i++) {
                if (
                    listelements[i].getElementsByTagName('a')[0].innerHTML == name ||
                    listelements[i].getElementsByTagName('a')[0].href == link
                ) {
                    list.removeChild(listelements[i]);
                }
            }
        }


    } catch (e) {
        // let's just ignore what's happened
        return;
    }
}

function CustomizeModificationsOfSidebar() {
    // adds [[Special:CategoryTree|Special:CategoryTree]] to toolbox
    //ModifySidebar( 'add', 'toolbox', 'CategoryTree', 'http://en.wikipedia.org/wiki/Special:CategoryTree' );

    // removes [[Special:Upload|Special:Upload]] from toolbox
    //ModifySidebar( 'remove', 'toolbox', 'Upload file', 'http://en.wikipedia.org/wiki/Special:Upload' );

    ModifySidebar('add', 'toolbox', 'Ai', 'javascript:ai()');
}

jQuery(CustomizeModificationsOfSidebar);