MediaWiki:Common.js: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
(common code for all passes; provide for multiple versions in data-vad attribute)
Line 2: Line 2:


/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* phase3 16 Dec 2022 */
console.log ("Version-adaptive documentation");


var gr_version = "";
var gr_version = "";


    var w_loc = window.location.href;
var _art = document.getElementsByTagName("span");
    const url1 = new URL(w_loc);
if (_art.length > 0)    // found <span>
    var url2 = url1.toString();
    {
    var url = url2.replace("?title=","/");
    // console.log (_art.length, "spans found");
    console.log ("phase2()", url);
    var _art1 = _art[0].getAttribute("data-vad");
    var p1 = url1.searchParams.get('ver1');
    if (_art1 == "gr_vad")
    var p2 = url1.searchParams.get('ver2');
        {
    var p3 = url1.searchParams.get('ver3');
        console.log ("Version-adaptive documentation");
    console.log (p1,p2,p3);
        var w_loc = window.location.href;
    if ((p1 == null) && (p2 == null) && (p3 == null))
        const url1 = new URL(w_loc);
        {      // first pass
        var url2 = url1.toString();
        var _art = document.getElementsByTagName("span");
        var url = url2.replace("?title=","/");
        if (_art.length > 0)    // found <span>
        console.log ("phase3()", url);
            {
        var p1 = url1.searchParams.get('ver1');
            console.log (_art.length, "spans found");
        var p2 = url1.searchParams.get('ver2');
            var _art1 = _art[0].getAttribute("data-vad");
        var p3 = url1.searchParams.get('ver3');
            if (_art1 == "gr_vad")
         // console.log (p1,p2,p3);
                {
                console.log ("found data-vad tag in <span>");
                var _nav = document.getElementById("p-tb")
                var _br = document.createElement("br");
                _nav.appendChild (_br);
                var _li1 = document.createElement("li");
                _li1.innerHTML = "<br>Customize this page:";
                // _li1.setAttribute("class", "mw-list-item");
                var _form1 = document.createElement("form");
              _form1.setAttribute("action", url);      // action
// ver1 3.8
                var _inp1 = document.createElement("input");
                _inp1.setAttribute("type", "checkbox");
                _inp1.setAttribute("id", "_ver1");
                _inp1.setAttribute("name", "ver1");
                _inp1.setAttribute("value", "3.8");
                _form1.appendChild (_inp1);
                var _lbl1 = document.createElement("label");
                _lbl1.setAttribute("for", "_ver1");
                _lbl1.innerHTML = " 3.8<br>";
                _form1.appendChild (_lbl1);
// ver2 3.9
                var _inp2 = document.createElement("input");
                _inp2.setAttribute("type", "checkbox");
                _inp2.setAttribute("id", "_ver2");
                _inp2.setAttribute("name", "ver2");
                _inp2.setAttribute("value", "3.9");
                _form1.appendChild (_inp2);
                var _lbl2 = document.createElement("label");
                _lbl2.setAttribute("for", "_ver2");
                _lbl2.innerHTML = " 3.9<br>";
                _form1.appendChild (_lbl2);
// ver3 3.10
                var _inp3 = document.createElement("input");
                _inp3.setAttribute("type", "checkbox");
                _inp3.setAttribute("id", "_ver3");
                _inp3.setAttribute("name", "ver3");
                _inp3.setAttribute("value", "3.10");
                _form1.appendChild (_inp3);
                var _lbl3 = document.createElement("label");
                _lbl3.setAttribute("for", "_ver3");
                _lbl3.innerHTML = " 3.10<br>";
                _form1.appendChild (_lbl3);
                _form1.appendChild(_br);
// submit
                var _inp4 = document.createElement("input");
                _inp4.setAttribute("type", "submit");
                _inp4.setAttribute("value", "Submit");
                _form1.appendChild (_inp4);
                _li1.appendChild (_form1);
                _nav.appendChild (_li1);
                }  // found data-vad tag in <span>
            }  // end found <span>
         }  // first pass
    else
        {  // have selections / second pass
        console.log ("phase2 second pass");
         if (p1 != null)
         if (p1 != null)
             {
             {
             gr_version += p1;
             gr_version += p1;
             gr_version += ", ";
             gr_version += ",";
             }
             }
         if (p2 != null)
         if (p2 != null)
             {
             {
             gr_version += p2;
             gr_version += p2;
             gr_version += ", ";
             gr_version += ",";
             }
             }
         if (p3 != null)
         if (p3 != null)
             {
             {
             gr_version += p3;
             gr_version += p3;
            gr_version += ",";
             }
             }
         var ver_len = gr_version.length;
         var ver_len = gr_version.length;
         console.log (gr_version, ver_len);
         // console.log (gr_version, ver_len);
         if (gr_version.endsWith (", "))
         if (gr_version.endsWith (","))
             {
             {
             var temp = gr_version.slice (0, ver_len-2);
             var temp = gr_version.slice (0, ver_len-1);
             gr_version = temp;
             gr_version = temp;
             }
             }
        var ver_len = gr_version.length;
        // console.log (gr_version, ver_len);
         var _nav = document.getElementById("p-tb")
         var _nav = document.getElementById("p-tb")
         var _br = document.createElement("br");
         var _br = document.createElement("br");
         _nav.appendChild (_br);
         _nav.appendChild (_br);
         var _li1 = document.createElement("li");
         var _li1 = document.createElement("li");
         _li1.innerHTML = "<br>Customize this page:";
         _li1.innerHTML = "<br>Customize this page:<br>check only one.";
        _nav.appendChild (_li1);
 
         var _form1 = document.createElement("form");
         var _form1 = document.createElement("form");
         _form1.setAttribute("action", url);      // action
         _form1.setAttribute("action", url);      // action
Line 115: Line 62:
         _inp1.setAttribute("name", "ver1");
         _inp1.setAttribute("name", "ver1");
         _inp1.setAttribute("value", "3.8");
         _inp1.setAttribute("value", "3.8");
         if ((gr_version.indexOf ("3.8")) != -1)      // found
         if (gr_version == "3.8")       // found
             _inp1.setAttribute ("checked", "true");
             _inp1.setAttribute ("checked", "true");
         _form1.appendChild (_inp1);
         _form1.appendChild (_inp1);
Line 128: Line 75:
         _inp2.setAttribute("name", "ver2");
         _inp2.setAttribute("name", "ver2");
         _inp2.setAttribute("value", "3.9");
         _inp2.setAttribute("value", "3.9");
         if ((gr_version.indexOf ("3.9")) != -1)      // found
         if (gr_version == "3.9")       // found
             _inp2.setAttribute ("checked", "true");
             _inp2.setAttribute ("checked", "true");
         _form1.appendChild (_inp2);
         _form1.appendChild (_inp2);
Line 141: Line 88:
         _inp3.setAttribute("name", "ver3");
         _inp3.setAttribute("name", "ver3");
         _inp3.setAttribute("value", "3.10");
         _inp3.setAttribute("value", "3.10");
         if ((gr_version.indexOf ("3.10")) != -1)      // found
         if (gr_version == "3.10")       // found
             _inp3.setAttribute ("checked", "true");
             _inp3.setAttribute ("checked", "true");
         _form1.appendChild (_inp3);
         _form1.appendChild (_inp3);
Line 154: Line 101:
         _inp4.setAttribute("value", "Submit");
         _inp4.setAttribute("value", "Submit");
         _form1.appendChild (_inp4);
         _form1.appendChild (_inp4);
         _li1.appendChild (_form1);
         _nav.appendChild (_form1);
        _nav.appendChild (_li1);


//  look for divs
         if (gr_version.length > 0)
         if (gr_version.length > 0)
             {
             {
             var element = document.getElementsByTagName("div");
             var element = document.getElementsByTagName("div");
             var _len = element.length;
             var _len = element.length;
             console.log (_len, "divs found");
             // console.log (_len, "divs found");
             var k;
             var k;
             for (k = 0; k < _len; k++)
             for (k = 0; k < _len; k++)
Line 168: Line 115:
                 if (_ver != null)
                 if (_ver != null)
                     {
                     {
                     console.log ("div version is ", _ver);
                     // console.log ("div version is ", _ver);
                     if ((gr_version.indexOf (_ver)) == -1)      // not found
                     if ((_ver.indexOf (gr_version)) == -1)      // not found
                         {
                         {
                         element[k].setAttribute ("hidden", "true");
                         element[k].setAttribute ("hidden", "true");
Line 175: Line 122:
                     }
                     }
                 }
                 }
             }
             }       // version selected
         }   // second pass
         }       // found gr-vad
    }      // found span

Revision as of 20:40, 16 December 2022

"use strict"

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

var gr_version = "";

var _art = document.getElementsByTagName("span");
if (_art.length > 0)    // found <span>
    {
    // console.log (_art.length, "spans found");
    var _art1 = _art[0].getAttribute("data-vad");
    if (_art1 == "gr_vad")
        {
        console.log ("Version-adaptive documentation");
        var w_loc = window.location.href;
        const url1 = new URL(w_loc);
        var url2 = url1.toString();
        var url = url2.replace("?title=","/");
        console.log ("phase3()", url);
        var p1 = url1.searchParams.get('ver1');
        var p2 = url1.searchParams.get('ver2');
        var p3 = url1.searchParams.get('ver3');
        // console.log (p1,p2,p3);
        if (p1 != null)
            {
            gr_version += p1;
            gr_version += ",";
            }
        if (p2 != null)
            {
            gr_version += p2;
            gr_version += ",";
            }
        if (p3 != null)
            {
            gr_version += p3;
            gr_version += ",";
            }
        var ver_len = gr_version.length;
        // console.log (gr_version, ver_len);
        if (gr_version.endsWith (","))
            {
            var temp = gr_version.slice (0, ver_len-1);
            gr_version = temp;
            }
        var ver_len = gr_version.length;
        // console.log (gr_version, ver_len);
        var _nav = document.getElementById("p-tb")
        var _br = document.createElement("br");
        _nav.appendChild (_br);
        var _li1 = document.createElement("li");
        _li1.innerHTML = "<br>Customize this page:<br>check only one.";
        _nav.appendChild (_li1);

        var _form1 = document.createElement("form");
        _form1.setAttribute("action", url);       // action
// ver1 3.8
        var _inp1 = document.createElement("input");
        _inp1.setAttribute("type", "checkbox");
        _inp1.setAttribute("id", "_ver1");
        _inp1.setAttribute("name", "ver1");
        _inp1.setAttribute("value", "3.8");
        if (gr_version == "3.8")        // found
            _inp1.setAttribute ("checked", "true");
        _form1.appendChild (_inp1);
        var _lbl1 = document.createElement("label");
        _lbl1.setAttribute("for", "_ver1");
        _lbl1.innerHTML = " 3.8<br>";
        _form1.appendChild (_lbl1);
// ver2 3.9
        var _inp2 = document.createElement("input");
        _inp2.setAttribute("type", "checkbox");
        _inp2.setAttribute("id", "_ver2");
        _inp2.setAttribute("name", "ver2");
        _inp2.setAttribute("value", "3.9");
        if (gr_version == "3.9")        // found
            _inp2.setAttribute ("checked", "true");
        _form1.appendChild (_inp2);
        var _lbl2 = document.createElement("label");
        _lbl2.setAttribute("for", "_ver2");
        _lbl2.innerHTML = " 3.9<br>";
        _form1.appendChild (_lbl2);
// ver3 3.10
        var _inp3 = document.createElement("input");
        _inp3.setAttribute("type", "checkbox");
        _inp3.setAttribute("id", "_ver3");
        _inp3.setAttribute("name", "ver3");
        _inp3.setAttribute("value", "3.10");
        if (gr_version == "3.10")       // found
            _inp3.setAttribute ("checked", "true");
        _form1.appendChild (_inp3);
        var _lbl3 = document.createElement("label");
        _lbl3.setAttribute("for", "_ver3");
        _lbl3.innerHTML = " 3.10<br>";
        _form1.appendChild (_lbl3);
        _form1.appendChild(_br);
// submit
        var _inp4 = document.createElement("input");
        _inp4.setAttribute("type", "submit");
        _inp4.setAttribute("value", "Submit");
        _form1.appendChild (_inp4);
        _nav.appendChild (_form1);

//  look for divs
        if (gr_version.length > 0)
            {
            var element = document.getElementsByTagName("div");
            var _len = element.length;
            // console.log (_len, "divs found");
            var k;
            for (k = 0; k < _len; k++)
                {
                var _ver = element[k].getAttribute("data-vad");
                if (_ver != null)
                    {
                    // console.log ("div version is ", _ver);
                    if ((_ver.indexOf (gr_version)) == -1)      // not found
                        {
                        element[k].setAttribute ("hidden", "true");
                        }
                    }
                }
            }       // version selected
        }       // found gr-vad
    }       // found span