MediaWiki:Common.js: Difference between revisions
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 */ | |||
var gr_version = ""; | 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) | 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- | 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 | 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 | 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 | 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); | ||
_nav.appendChild (_form1); | |||
// 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 (( | if ((_ver.indexOf (gr_version)) == -1) // not found | ||
{ | { | ||
element[k].setAttribute ("hidden", "true"); | element[k].setAttribute ("hidden", "true"); | ||
Line 175: | Line 122: | ||
} | } | ||
} | } | ||
} | } // version selected | ||
} | } // 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