Gebruiker:Rots61/Gadget-Opschonen.js: verschil tussen versies

Uit Wikikids
Naar navigatie springen Naar zoeken springen
(kleine tweak)
(54 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 5: Regel 5:
 
var api = new mw.Api();
 
var api = new mw.Api();
 
var alreadydone;
 
var alreadydone;
 +
var Nummer;
  
function showProject (text) {
+
function showProjectOpschonen(text) {
// text = array  
+
    // text = array  
document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
+
    document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
document.title = "Opschonen - WikiKids";
+
    document.title = "Opschonen - WikiKids";
tempgetal = 1;
+
    tempgetal = 1;
tempnumber = 1;
+
    tempnumber = 1;
var tabelstuk1 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Gecontroleerd</div></th>';
+
    var tabelstuk1 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Gecontroleerd</div></th>';
var tabelstuk2 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Niet aangepast</div></th>';
+
    var tabelstuk3 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Niet bekeken</div></th>';
var tabelstuk3 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Niet bekeken</div></th>';
+
    tabel = "Deze artikels kun je controleren. Je hoeft niet alle onderstaande artikels te controleren. Dat mag natuurlijk wel. "
tabel = "Deze artikels kun je controleren. Je hoeft niet alle onderstaande artikels te controleren. Dat mag natuurlijk wel. Opmerking is niet nodig, het mag wel. "
+
        + 'Als je specifieker wilt controleren klik dan <a href="https://wikikids.nl/Speciaal:Opschonen?action=help">hier</a>. <br>Er zijn ook statistieken beschikbaar voor deze pagina, deze kun je <a href="https://wikikids.nl/Speciaal:Opschonen?action=stats">hier</a> vinden. '
+ '<br>Opslaan duurt een paar seconden, wacht totdat je ziet dat de wijziging is doorgevoerd. Als je meer specifiek wil controleren klik dan <a href="https://wikikids.nl/Speciaal:Opschonen?action=help">hier</a>.'
+
        + 'Om ervoor te zorgen dat je niets verliest, wordt je altijd gevraagd of je de pagina af wilt sluiten. '
+ '<br><input type="text" id="addarticle" name="addarticle"> <button onclick="addArticleToList()">Voeg toe</button>'
+
        + '<br><input type="text" id="addarticle" name="addarticle"> <button onclick="addArticleToListOpschonen()">Voeg toe</button><br>'
+ '<table class="wikitable"> <tbody> <tr> <th width="300"><div style="float: left; text-align: left">Pagina</div><div style="float: right; text-align: right">Gebruiker</div></th>' + tabelstuk1 + tabelstuk2 + tabelstuk3 + '<th width="1">Opmerking<br><span style="color:gray;">van de andere gebruiker</span></th> <th>Thema</th> </tr>';
+
        + '<table class="wikitable"><tbody><tr> <th width="300"><div style="float: left; text-align: left">Pagina</div><div style="float: right; text-align: right">Gebruiker</div></th>' + tabelstuk1 + tabelstuk3 + '<th width="1">Opmerking<br><span style="color:gray;">van de andere gebruiker</span></th></tr>';
showAantal = mw.util.getParamValue('aantal');
+
    showAantal = mw.util.getParamValue('aantal');
showAll = mw.util.getParamValue('allepaginas');
+
    showAll = mw.util.getParamValue('allepaginas');
showSkipDone = mw.util.getParamValue('notdone');
+
    showSkipDone = mw.util.getParamValue('notdone');
//Zorg ervoor dat je al gecontroleerde pagina's niet ziet
+
    //Zorg ervoor dat je al gecontroleerde pagina's niet ziet
showSkipThema = mw.util.getParamValue('notthema');
+
    showDone = mw.util.getParamValue('done');
//Zorg ervoor dat je al bekeken pagina's niet ziet
+
    //Zorg ervoor dat je alle pagina's ziet waar deze gebruiker bij staat.
showDone = mw.util.getParamValue('done');
+
    showUser = mw.util.getParamValue('user');
//Zorg ervoor dat je alle gecontroleerde pagina's ziet
+
    showStartwith = mw.util.getParamValue('startwith');
showThema = mw.util.getParamValue('thema');
+
    showTo = mw.util.getParamValue('to');
//Zorg ervoor dat je alle pagina's ziet met een thema
+
    showFrom = mw.util.getParamValue('from');
showUser = mw.util.getParamValue('user');
+
    if (showAantal === 'max') {
//Zorg ervoor dat je alle pagina's ziet waar deze gebruiker bij staat.
+
        showAantal = text.length - 1;
showStartwith = mw.util.getParamValue('Startwith');
+
        showMax = true;
showTo = mw.util.getParamValue('to');
+
        showAll = true;
showFrom = mw.util.getParamValue('from');
+
    } else if (showAantal) {
if (showAantal === 'max') {
+
        showAantal = parseInt(showAantal) + 1;
showAantal = text.length -1;
+
    } else if (showAll) {
showMax = true;
+
        showAantal = text.length - 1;
showAll = true;
+
    }
} else if (showAantal) {
+
    if ( showDone || (showSkipDone || (showTo || (showFrom || (showUser || (showStartwith || showAantal)))))) {
showAantal = parseInt(showAantal) + 1;
+
    } else {
} else if (showAll) {
+
        showAantal = 51;
showAantal = text.length -1;
+
        showSkipDone = true;
}
+
    }
if ((showThema || showDone) || (showSkipThema || (showSkipDone || (showTo || (showFrom || (showUser || (showStartwith || showAantal ))))))) {
+
    lengtetext = text.length;
} else {
+
    while (tempnumber !== showAantal) {
showAantal=51;
+
        Artikeln[tempgetal] = getURLParamNumberOpschonen(text);
showSkipDone = true;
+
        if (Artikeln[tempgetal] === 'exit') {
}
+
            tempnumber = -1;
lengtetext = text.length;
+
            showAantal = -1;
while (tempnumber !== showAantal) {
+
        } else {
Artikeln[tempgetal] = getURLParamNumber(text);
+
            Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
if (Artikeln[tempgetal] === 'exit') {
+
            if (text[Artikeln[tempgetal]]["D"]) {
tempnumber = -1;
+
                gedaan[tempgetal] = " disabled";
showAantal = -1;
+
                linkextra[tempgetal] = "Done";
} else {
+
                Knop1x[tempgetal] = "";
Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
+
                Knop3x[tempgetal] = '<td colspan="2" style="color:green; font-weight: bold; text-align: center;">Gedaan</td>';
if (text[Artikeln[tempgetal]]["D"]) {
+
            } else {
gedaan[tempgetal] = " disabled";  
+
                gedaan[tempgetal] = "";
text[Artikeln[tempgetal]]["T"] = "&nbsp;";
+
                linkextra[tempgetal] = "Niet";
linkextra[tempgetal] = "Done";
+
                Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1Opschonen(' + tempgetal + ');"></td>';
Knop1x[tempgetal] = "";
+
                Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3Opschonen(' + tempgetal + ');"></td>';
Knop2x[tempgetal] = "";
 
Knop3x[tempgetal] = '<td colspan="3" style="color:green; font-weight: bold; text-align: center;">Gedaan</td>';
 
} else {
 
gedaan[tempgetal] = "";
 
linkextra[tempgetal] = "Niet";
 
Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1(' + tempgetal + ');"></td>';
 
Knop2x[tempgetal] = '<td><input type="radio" id="Radio2.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change2(' + tempgetal + ');"></td>';
 
Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3(' + tempgetal + ');"></td>';
 
  
}
+
            }
if (text[Artikeln[tempgetal]]["U"]){
+
            if (text[Artikeln[tempgetal]]["U"]) {
vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
+
                vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
} else {
+
            } else {
vorigeuser[tempgetal] = "";
+
                vorigeuser[tempgetal] = "";
}
+
            }
if (text[Artikeln[tempgetal]]["O"]){
+
            if (text[Artikeln[tempgetal]]["O"]) {
Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
+
                Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
} else {
+
            } else {
Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';  
+
                Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
}
+
            }
if (text[Artikeln[tempgetal]]["T"]){
+
            console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
Thema[tempgetal] = '<center>' + text[Artikeln[tempgetal]]["T"] + '</center>';
+
            Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&opschonengecontroleerd=' + linkextra[tempgetal] + '" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
} else {
+
            tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> </tr>';
Thema[tempgetal] = '<input type="text" id=Thema' + tempgetal + ' name=Thema' + tempgetal + ' size=10">';
+
            tempgetal += 1;
}
+
            if (showMax) {
console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
+
                tempnumber = allNummer;
Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&checked=' + linkextra[tempgetal] +'" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
+
            } else {
tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop2x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> <td>' + Thema[tempgetal] + '</td> </tr>';
+
                tempnumber = tempgetal;
tempgetal += 1;
+
            }
if (showMax) {
+
        }
tempnumber = allNummer;
+
    }
} else {
+
    // text = array
tempnumber = tempgetal;
+
    eindetabel += '</tbody></table> <button onclick="startITOpschonen()">Opslaan</button> Dit kan een paar seconden duren. Wacht totdat je ziet dat de wijziging is opgeslagen. ';
}
+
    document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
}
+
    mw.notify("Welkom!");
}
 
// text = array
 
eindetabel += '</tbody></table> <button onclick="startbeforeIT()">Opslaan</button>';
 
document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
 
mw.notify("Welkom!");
 
 
}
 
}
  
function getURLParamNumber (text, nummer) {
+
function getURLParamNumberOpschonen(text, nummer) {
willekeuriggetal = 0;
+
    willekeuriggetal = 0;
while (willekeuriggetal === 0) {
+
    while (willekeuriggetal === 0) {
willekeuriggetal = getRandomNumber(text.length);
+
        willekeuriggetal = getRandomNumberOpschonen(text.length);
if (willekeuriggetal === text.length) {  
+
        if (willekeuriggetal === text.length) {
return 'exit';
+
            return 'exit';
} else {
+
        } else {
if (showUser) {
+
            if (showUser) {
if (text[willekeuriggetal]["U"] === showUser) {
+
                if (text[willekeuriggetal]["U"] === showUser) {
} else {
+
                } else {
willekeuriggetal = 0;
+
                    willekeuriggetal = 0;
}
+
                }
}
+
            }
if (showThema) {
+
            if (showDone) {
if (text[willekeuriggetal]["T"]) {
+
                if (text[willekeuriggetal]["D"]) {
} else {
+
                } else {
willekeuriggetal = 0;
+
                    willekeuriggetal = 0;
}
+
                }
} else if (showSkipThema) {
+
            } else if (showSkipDone) {
if (text[willekeuriggetal]["T"]) {
+
                if (text[willekeuriggetal]["D"]) {
willekeuriggetal = 0;
+
                    willekeuriggetal = 0;
}
+
                }
}
+
            }
if (showDone) {
+
            if (showStartwith) {
if (text[willekeuriggetal]["D"]) {
+
                var re = new RegExp('^' + showStartwith, "g");
} else {
+
                if (text[willekeuriggetal]["N"] !== text[willekeuriggetal]["N"].replace(re, "newstring")) {
willekeuriggetal = 0;  
+
                    console.log(text[willekeuriggetal]["N"]);
}
+
                } else {
} else if (showSkipDone) {  
+
                    willekeuriggetal = 0;
if (text[willekeuriggetal]["D"]) {
+
                }
willekeuriggetal = 0;  
+
            }
}
+
            if (showFrom) {
}
+
                if (text[willekeuriggetal]["N"]) {
if (showStartwith) {
+
 
var re = new RegExp('^' + showStartwith,"g");
+
                }
if (text[willekeuriggetal]["N"] !== text[willekeuriggetal]["N"].replace(re, "newstring")) {
+
                if (showTo) {
console.log(text[willekeuriggetal]["N"]);
+
                    if (text[willekeuriggetal]["N"]) {
} else {
+
                    }
willekeuriggetal = 0;
+
                }
}
+
            }
}
+
        }
if (showFrom) {
+
    }
if (text[willekeuriggetal]["N"]) {
+
    return willekeuriggetal;
 
}
 
if (showTo) {
 
if (text[willekeuriggetal]["N"]) {
 
}
 
}
 
}
 
}
 
}
 
return willekeuriggetal;
 
 
}
 
}
  
 
+
function Change1Opschonen(getal) {
function Change1(getal){
+
    document.getElementById('Opmerking' + getal).disabled = false;
if (!document.getElementById('Thema' + getal).disabled) {
+
    Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
Thematemp[getal] = document.getElementById('Thema' + getal).value;
+
    document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
}
 
document.getElementById('Thema' + getal).disabled = true;
 
document.getElementById('Opmerking' + getal).disabled = false;
 
document.getElementById('Thema' + getal).value = "";
 
Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
 
document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
 
 
 
 
}
 
}
  
function Change2(getal){
+
function Change3Opschonen(getal) {
Thematempx = document.getElementById('Thema' + getal).value;
+
    Opmerkingtemp[getal] = document.getElementById('Opmerking' + getal).value;
Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
+
    document.getElementById('Opmerking' + getal).disabled = true;
document.getElementById('Thema' + getal).disabled = false;
+
    document.getElementById('Opmerking' + getal).value = "";
document.getElementById('Opmerking' + getal).disabled = false;
 
document.getElementById('Thema' + getal).value = Thematemp[getal] ? Thematemp[getal] : Thematempx ? Thematempx : "";
 
document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
 
 
}
 
}
  
function Change3(getal){
+
function fromPageaddPageOpschonen() {
if (!document.getElementById('Thema' + getal).disabled) {
+
    var text;
Thematemp[getal] = document.getElementById('Thema' + getal).value;
+
    var artikel;
}
+
    var checkconfirm;
if (!document.getElementById('Opmerking' + getal).disabled) {
+
    var checkopmerking;
Opmerkingtemp[getal] = document.getElementById('Opmerking' + getal).value;
+
    getJSONTextOpschonen().done(function (text) {
}
+
        fromPageCheckOnListOpschonen(text);
document.getElementById('Thema' + getal).disabled = true;
+
    });
document.getElementById('Opmerking' + getal).disabled = true;
 
document.getElementById('Thema' + getal).value = "";
 
document.getElementById('Opmerking' + getal).value = "";
 
 
}
 
}
  
function fromPageaddPage() {
+
function fromPageCheckOnListOpschonen(text) {
var text;  
+
    if (!Array.isArray(text)) {
var artikel;  
+
        text = JSON.parse(text);
var checkconfirm;
+
    }
var checkopmerking;
+
    if (!text[1]["N"]) {
var Nummer;
+
        text = JSON.parse(text);
getJSONText().done( function(text) {
+
    }
fromPageCheckOnList(text);
+
    addarticle = mw.config.get('wgPageName').replace(/ /g, '_');
});
+
    for (var i = 0, iLen = text.length; i < iLen; i++) {
 +
        if (text[i].N == addarticle) Nummer = i;
 +
    }
 +
    if (!Nummer) {
 +
        api.get({
 +
            action: "query",
 +
            titles: addarticle,
 +
            redirects: true,
 +
        }).then(function (ret) {
 +
            if (ret.query.redirects) {
 +
                alreadydone = true;
 +
                mw.notify("Pagina is een redirect.");
 +
            } else {
 +
                $.each(ret.query.pages, function () {
 +
                    if (this.missing !== "") {
 +
                        if (this.ns === 0) {
 +
                            Nummer = text.length;
 +
                            text[text.length] = { "N": addarticle, "D": "D", "U": mw.config.get('wgUserName') };
 +
                        } else {
 +
                            alreadydone = true;
 +
                            mw.notify("Pagina staat niet in de hoofdnaamruimte.");
 +
                        }
 +
                    } else {
 +
                        alreadydone = true;
 +
                        mw.notify("Pagina bestaat niet. ");
 +
                    }
 +
                }, function (error) {
 +
                });
 +
            }
 +
        });
 +
    } else if (text[Nummer]["D"] === "D") {
 +
        mw.notify("Dit aritkel is al gecontroleerd door " + text[Nummer]["U"]);
 +
        alreadydone = true;
 +
    } else {
 +
        text[Nummer]["D"] = "D";
 +
        text[Nummer]["U"] = mw.config.get('wgUserName');
 +
    }
 +
    fromPageSaveOpschonen(text);
 
}
 
}
  
function fromPageCheckOnList (text) {
+
function fromPageSaveOpschonen(text) {
if (!Array.isArray(text)) {
+
    if (alreadydone) {
text = JSON.parse(text);
+
    } else if (!Nummer) {
}
+
        setTimeout(function () {fromPageSaveOpschonen(text)}, 250);
if (!text[1]["N"]) {
+
    } else {
text = JSON.parse(text);
+
        checkopmerking = prompt("Mogelijke opmerking over het artikel: ");
}
+
        if (checkopmerking === null) {
addarticle = mw.config.get('wgPageName').replace(/ /g, '_');
+
        } else if (checkopmerking === '') {
for (var i=0, iLen=text.length; i<iLen; i++) {
+
            editPageNowOpschonen(text);
if (text[i].N == addarticle) Nummer = i;
+
        } else {
}
+
            text[Nummer]["O"] = checkopmerking;
if (!Nummer) {
+
            editPageNowOpschonen(text);
api.get( {
+
        }
action: "query",
+
    }
titles: addarticle,
 
redirects: true,
 
} ).then( function( ret ) {
 
if (ret.query.redirects) {
 
alreadydone = true;
 
mw.notify("Pagina is een redirect.");
 
} else {
 
$.each( ret.query.pages, function() {
 
if (this.missing !== "") {
 
if (this.ns === 0) {
 
Nummer = text.length;
 
            text[text.length] = {"N": addarticle,"D":"D","U":mw.config.get('wgUserName')};
 
} else {
 
alreadydone = true;
 
mw.notify("Pagina staat niet in de hoofdnaamruimte.");
 
}
 
} else {
 
alreadydone = true;
 
mw.notify("Pagina bestaat niet. ");
 
}
 
}, function( error ) {
 
    } );
 
}
 
} );
 
} else if (text[Nummer]["D"] === "D") {
 
mw.notify("Dit aritkel is al gecontroleerd door " + text[Nummer]["U"]);
 
alreadydone = true;
 
} else {
 
console.log(Nummer);
 
text[Nummer]["D"] = "D";
 
text[Nummer]["U"] = mw.config.get('wgUserName');
 
}
 
fromPageSave(text);
 
 
}
 
}
  
function fromPageSave(text) {
+
function addArticleToListOpschonen(artikel) {
if (alreadydone) {
+
    if (!text[1]["N"]) {
} else if (!Nummer) {  
+
        text = JSON.parse(text);
setTimeout(fromPageSave, 250);  
+
    }
} else {
+
    addarticle = undefined;
checkopmerking = prompt("Mogelijke opmerking over het artikel: ");
+
    var comesfromcookie;
if (checkopmerking === null) {
+
    if (artikel) {
} else if (checkopmerking === '') {
+
        addarticle = artikel;
console.log(text);
+
        comesfromcookie = true;
editpage(text);
+
    } else {
} else {
+
        addarticle = document.getElementById('addarticle').value.replace(/ /g, '_');
text[Nummer]["O"] = checkopmerking;
+
    }
editpage(text);
+
    for (var i = 0, iLen = text.length; i < iLen; i++) {
}
+
        if (text[i].N == addarticle) Nummer = i;
}  
+
    }
 +
    if (!Nummer) {
 +
        api.get({
 +
            action: "query",
 +
            titles: addarticle,
 +
            redirects: true,
 +
        }).then(function (ret) {
 +
            if (ret.query.redirects) {
 +
                mw.notify("Pagina is een redirect, kan niet gecontroleerd worden.");
 +
            } else {
 +
                $.each(ret.query.pages, function () {
 +
                    if (this.missing !== "") {
 +
                        if (this.ns === 0) {
 +
                            Nummer = text.length;
 +
                            text[text.length] = { "N": addarticle };
 +
                        } else {
 +
                            mw.notify("Pagina staat niet in de hoofdnaamruimte.");
 +
                        }
 +
                    } else {
 +
                        mw.notify("Pagina bestaat niet. ");
 +
                    }
 +
                }, function (error) {
 +
                });
 +
            }
 +
        });
 +
    }
 +
    if (Nummer) {
 +
        tempgetal = 1;
 +
        var gewenstelengte = Artikelr.length;
 +
        if (gewenstelengte === 0) {
 +
            gewenstelengte = 1;
 +
            tempgetal = 1;
 +
        }
 +
        console.log(gewenstelengte + ":" + tempgetal);
 +
        while (tempgetal !== gewenstelengte) {
 +
            if (document.getElementById('Radio1.' + tempgetal)) {
 +
                Waardes['Radio1'][tempgetal] = document.getElementById('Radio1.' + tempgetal).checked;
 +
                Waardes['Radio3'][tempgetal] = document.getElementById('Radio3.' + tempgetal).checked;
 +
                Waardes['Opmerking'][tempgetal] = document.getElementById('Opmerking' + tempgetal).value;
 +
                Waardes['Opmerkingdis'][tempgetal] = document.getElementById('Opmerking' + tempgetal).disabled;
 +
            }
 +
            tempgetal += 1;
 +
        }
 +
        tempgetal = Artikelr.length;
 +
        Artikeln[tempgetal] = Nummer;
 +
        Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
 +
        if (text[Artikeln[tempgetal]]["D"]) {
 +
            gedaan[tempgetal] = " disabled";
 +
            linkextra[tempgetal] = "Done";
 +
            Knop1x[tempgetal] = "";
 +
            Knop3x[tempgetal] = '<td colspan="2" style="color:green; font-weight: bold;">Gedaan</td>';
 +
        } else {
 +
            gedaan[tempgetal] = "";
 +
            linkextra[tempgetal] = "Niet";
 +
            Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1Opschonen(' + tempgetal + ');"></td>';
 +
            Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3Opschonen(' + tempgetal + ');"></td>';
 +
        }
 +
        if (text[Artikeln[tempgetal]]["U"]) {
 +
            vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
 +
        } else {
 +
            vorigeuser[tempgetal] = "";
 +
        }
 +
        if (text[Artikeln[tempgetal]]["O"]) {
 +
            Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
 +
        } else {
 +
            Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
 +
        }
 +
        console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
 +
        Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&opschonengecontroleerd=' + linkextra[tempgetal] + '" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
 +
        tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> </tr>';
 +
        mw.notify("Artikel toegevoegd op deze pagina.");
 +
        document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
 +
        tempgetalxyz = tempgetal;
 +
        tempgetal = 1;
 +
        while (tempgetal !== gewenstelengte) {
 +
            document.getElementById('Radio1.' + tempgetal).checked = Waardes['Radio1'][tempgetal];
 +
            document.getElementById('Radio3.' + tempgetal).checked = Waardes['Radio3'][tempgetal];
 +
            document.getElementById('Opmerking' + tempgetal).value = Waardes['Opmerking'][tempgetal];
 +
            document.getElementById('Opmerking' + tempgetal).disabled = Waardes['Opmerkingdis'][tempgetal];
 +
            tempgetal += 1;
 +
        }
 +
        if (comesfromcookie) {
 +
            document.getElementById('Radio1.' + tempgetalxyz).checked = true;
 +
            Change1Opschonen(tempgetalxyz);
 +
            comesfromcookie = false;
 +
        }
 +
        Nummer = undefined;
 +
    }
 
}
 
}
  
function addArticleToList (artikel) {
+
function editPageNowOpschonen(textx) {
if (!text[1]["N"]) {
+
    while (textx) {
text = JSON.parse(text);
+
        text = textx;
}
+
        textx = false;
addarticle = undefined;
+
    }
var comesfromcookie;
+
    if (Array.isArray(text)) {
if (artikel) {
+
        text = JSON.stringify(text);
addarticle = artikel;
+
    }
comesfromcookie = true;
+
    api.get({
} else {
+
        action: 'query',
addarticle = document.getElementById('addarticle').value.replace(/ /g, '_');
+
        prop: 'info',
}
+
        intoken: 'edit',
for (var i=0, iLen=text.length; i<iLen; i++) {
+
        titles: 'kaslv', //Pagina moet niet bestaan.  
if (text[i].N == addarticle) Nummer = i;
+
    }).done(
}
+
        function (data) {
if (!Nummer) {
+
            edit_token = data.query.pages['-1'].edittoken;
api.get( {
+
        }).done(function (data) {
action: "query",
+
            api.post({
titles: addarticle,
+
                'action': 'edit',
redirects: true,
+
                'title': "Gebruiker:Rots61/Test.json",
} ).then( function( ret ) {
+
                'text': text,
if (ret.query.redirects) {
+
                'summary': "Pagina's als gecontroleerd gemarkeerd. [[WikiKids:Opschonen|(bewerking gedaan met 'Opschonen')]]",
mw.notify("Pagina is een redirect, kan niet gecontroleerd worden.");
+
                'tags': 'Opschonen',
} else {
+
                'bot': true,
$.each( ret.query.pages, function() {
+
                'token': edit_token,
if (this.missing !== "") {
+
            }).done(
if (this.ns === 0) {
+
                function (data) {
Nummer = text.length;
+
                    if (data.edit.result == "Success") {
            text[text.length] = {"N": addarticle};
+
                        mw.notify("Opgeslagen!", { autoHide: false });
} else {
+
                    } else {
mw.notify("Pagina staat niet in de hoofdnaamruimte.");
+
                        mw.notify("Mislukt, meldt dit bij mij", { autoHide: false });
}
+
                    }
} else {
+
                    console.log(data.edit);
mw.notify("Pagina bestaat niet. ");
+
                    isOpgeslagenOpschonen = true;
}
+
                    document.getElementsByTagName("h1")[0].textContent = "Opslaan gelukt!";
}, function( error ) {
+
                    document.getElementById('bodyContent').innerHTML = "Herlaad de pagina.";
    } );
+
                });
}
+
        });
} );
 
}
 
if (Nummer) {
 
tempgetal = 1;
 
var gewenstelengte = Artikelr.length;
 
if (gewenstelengte === 0) {
 
gewenstelengte = 1;
 
tempgetal = 1;
 
}
 
console.log(gewenstelengte + ":" + tempgetal);
 
while (tempgetal !== gewenstelengte ) {
 
if (document.getElementById('Radio1.' + tempgetal)) {
 
Waardes['Radio1'][tempgetal] = document.getElementById('Radio1.' + tempgetal).checked;
 
Waardes['Radio2'][tempgetal] = document.getElementById('Radio2.' + tempgetal).checked;
 
Waardes['Radio3'][tempgetal] = document.getElementById('Radio3.' + tempgetal).checked;
 
Waardes['Opmerking'][tempgetal] = document.getElementById('Opmerking' + tempgetal).value;
 
Waardes['Thema'][tempgetal] = document.getElementById('Thema' + tempgetal).value;
 
Waardes['Themadis'][tempgetal] = document.getElementById('Thema' + tempgetal).disabled;
 
Waardes['Opmerkingdis'][tempgetal] = document.getElementById('Opmerking' + tempgetal).disabled;
 
}
 
tempgetal +=1;
 
}
 
tempgetal = Artikelr.length;
 
Artikeln[tempgetal] = Nummer;
 
Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
 
if (text[Artikeln[tempgetal]]["D"]) {
 
gedaan[tempgetal] = " disabled";
 
text[Artikeln[tempgetal]]["T"] = "&nbsp;";
 
linkextra[tempgetal] = "Done";
 
Knop1x[tempgetal] = "";
 
Knop2x[tempgetal] = "";
 
Knop3x[tempgetal] = '<td colspan="3" style="color:green; font-weight: bold;">Gedaan</td>';
 
} else {
 
gedaan[tempgetal] = "";
 
linkextra[tempgetal] = "Niet";
 
Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1(' + tempgetal + ');"></td>';
 
Knop2x[tempgetal] = '<td><input type="radio" id="Radio2.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change2(' + tempgetal + ');"></td>';
 
Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3(' + tempgetal + ');"></td>';
 
}
 
if (text[Artikeln[tempgetal]]["U"]){
 
vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
 
} else {
 
vorigeuser[tempgetal] = "";
 
}
 
if (text[Artikeln[tempgetal]]["O"]){
 
Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
 
} else {
 
Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
 
}
 
if (text[Artikeln[tempgetal]]["T"]){
 
Thema[tempgetal] = '<center>' + text[Artikeln[tempgetal]]["T"] + '</center>';
 
} else {
 
Thema[tempgetal] = '<input type="text" id=Thema' + tempgetal + ' name=Thema' + tempgetal + ' size=10">';
 
}
 
console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
 
Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&checked=' + linkextra[tempgetal] +'" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
 
tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop2x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> <td>' + Thema[tempgetal] + '</td> </tr>';
 
mw.notify("Artikel toegevoegd op deze pagina.");
 
document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
 
tempgetalxyz = tempgetal;
 
tempgetal = 1;
 
while (tempgetal !== gewenstelengte ) {
 
document.getElementById('Radio1.' + tempgetal).checked = Waardes['Radio1'][tempgetal];
 
document.getElementById('Radio2.' + tempgetal).checked = Waardes['Radio2'][tempgetal];
 
document.getElementById('Radio3.' + tempgetal).checked = Waardes['Radio3'][tempgetal];
 
document.getElementById('Opmerking' + tempgetal).value = Waardes['Opmerking'][tempgetal];
 
document.getElementById('Thema' + tempgetal).value = Waardes['Thema'][tempgetal];
 
document.getElementById('Opmerking' + tempgetal).disabled = Waardes['Opmerkingdis'][tempgetal];
 
document.getElementById('Thema' + tempgetal).disabled = Waardes['Themadis'][tempgetal];
 
tempgetal +=1;
 
}
 
if (comesfromcookie) {
 
document.getElementById('Radio1.' + tempgetalxyz).checked = true;
 
Change1(tempgetalxyz);
 
comesfromcookie = false;
 
}
 
Nummer = undefined;
 
}
 
}
 
function startbeforeIT() {
 
getJSONText().done( function(text) {
 
startIT(text);
 
});
 
}
 
function startIT(text) {
 
if (!Array.isArray(text)) {
 
text = JSON.parse(text);
 
}
 
tempgetal = 1;
 
highArtikelr = Artikelr.length;
 
while (tempgetal !== highArtikelr) {
 
if (text[Artikeln[tempgetal]]["D"]) {
 
} else {
 
getKnop3 = document.getElementById("Radio3." + tempgetal);
 
if (getKnop3 && getKnop3.checked) {
 
} else {
 
var getonderwerp = document.getElementById("Thema" + tempgetal);
 
if (getonderwerp && getonderwerp.value) {
 
getonderwerp = getonderwerp.value;
 
} else {
 
getonderwerp = "";
 
}
 
var getopmerking = document.getElementById("Opmerking" + tempgetal);
 
if (getopmerking && getopmerking.value) {
 
getopmerking = getopmerking.value;
 
} else {
 
getopmerking = "";
 
}
 
getKnop1 = document.getElementById("Radio1." + tempgetal);
 
getKnop2 = document.getElementById("Radio2." + tempgetal);
 
if (getKnop1 && getKnop1.checked) {
 
if (getopmerking) {
 
text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
 
text[Artikeln[tempgetal]]["O"] = getopmerking;
 
text[Artikeln[tempgetal]]["D"] = "D";
 
} else {
 
text[Artikeln[tempgetal]]["D"] = "D";
 
text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
 
}
 
} else if ((getKnop2 && getKnop2.checked) || getopmerking || getonderwerp) {
 
text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
 
text[Artikeln[tempgetal]]["O"] = getopmerking;
 
text[Artikeln[tempgetal]]["T"] = getonderwerp;
 
}
 
}
 
}
 
tempgetal +=1;
 
}
 
editpage();
 
 
}
 
}
  
function getJSONText() {
+
function startITOpschonen() {
return api.get({
+
    if (!Array.isArray(text)) {
action: "query",
+
        text = JSON.parse(text);
prop: "revisions",
+
    }
titles: "Gebruiker:Rots61/Test.json",
+
    tempgetal = 1;
rvlimit: "1",
+
    highArtikelr = Artikelr.length;
rvprop: "content",
+
    while (tempgetal !== highArtikelr) {
rvslots: "main",
+
        if (text[Artikeln[tempgetal]]["D"]) {
}).then(function(data) {
+
        } else {
temp = data.query.pages;
+
            console.log(text[Artikeln[tempgetal]]);
temp = temp[148926];
+
            getKnop3 = document.getElementById("Radio3." + tempgetal);
temp = temp.revisions;
+
            if (getKnop3 && getKnop3.checked) {
temp = temp[0];
+
            } else {
text = temp.slots.main;
+
                var getopmerking = document.getElementById("Opmerking" + tempgetal);
text = text["*"];
+
                if (getopmerking && getopmerking.value) {
return JSON.parse(text);
+
                    getopmerking = getopmerking.value;
});
+
                } else {
 +
                    getopmerking = "";
 +
                }
 +
                getKnop1 = document.getElementById("Radio1." + tempgetal);
 +
                if (getKnop1 && getKnop1.checked) {
 +
                    if (getopmerking) {
 +
                        text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
 +
                        text[Artikeln[tempgetal]]["O"] = getopmerking;
 +
                        text[Artikeln[tempgetal]]["D"] = "D";
 +
                    } else {
 +
                        text[Artikeln[tempgetal]]["D"] = "D";
 +
                        text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
 +
                    }
 +
                } else if (getopmerking) {
 +
                    text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
 +
                    text[Artikeln[tempgetal]]["O"] = getopmerking;
 +
                }
 +
            }
 +
        }
 +
        tempgetal += 1;
 +
    }
 +
    editPageNowOpschonen(text);
 
}
 
}
  
function editpage(textx) {
+
function getJSONTextOpschonen() {
while (textx) {
+
    return api.get({
text = textx;
+
        action: "query",
textx = undefined;
+
        prop: "revisions",
}
+
        titles: "Gebruiker:Rots61/Test.json",
if (!Array.isArray(text)) {
+
        rvlimit: "1",
console.log(text);
+
        rvprop: "content",
} else {
+
        rvslots: "main",
console.log("X");
+
    }).then(function (data) {
text = JSON.stringify(text);
+
        temp = data.query.pages;
}
+
        temp = temp[148926];
api.get({
+
        temp = temp.revisions;
action: 'query',
+
        temp = temp[0];
prop: 'info',
+
        text = temp.slots.main;
intoken: 'edit',
+
        text = text["*"];
titles: 'kaslv', //Pagina moet niet bestaan.
+
        return JSON.parse(text);
}).done(
+
    });
function(data) {
 
edit_token = data.query.pages['-1'].edittoken;
 
}).done(function(data) {
 
api.post({
 
'action': 'edit',
 
'title': "Gebruiker:Rots61/Test.json",
 
'text': text,
 
'summary': "Pagina's als gecontroleerd gemarkeerd. [[WikiKids:Opschonen|(bewerking gedaan met 'Opschonen')]]",
 
'tags': 'Opschonen',
 
'bot': true,
 
'token': edit_token,
 
}).done(
 
function(data) {
 
if (data.edit.result == "Success") {
 
mw.notify("Opgeslagen!", { autoHide: false });
 
} else {
 
mw.notify("Mislukt, meldt dit bij mij", { autoHide: false });
 
}
 
console.log(data.edit);
 
document.getElementById('bodyContent').innerHTML = "Opslaan gelukt. Herlaad de pagina om hem opnieuw te gebruiken. ";
 
});
 
});
 
 
}
 
}
  
function getRandomNumber (lengtetext) {
+
function getRandomNumberOpschonen(lengtetext) {
if (showAll) {
+
    if (showAll) {
allNummer += 1;
+
        allNummer += 1;
return allNummer;  
+
        return allNummer;
}
+
    }
return Math.floor(Math.random() * lengtetext) ;
+
    return Math.floor(Math.random() * lengtetext);
 
}
 
}
  
function startHints(){
+
function startHintsOpschonen() {
htmltext = document.getElementById('mw-content-text').innerHTML;
+
    htmltext = document.getElementById('mw-content-text').innerHTML;
paginalink = 'https://wikikids.nl/Wikikids:Wikiproject/Opschonen#';
+
    paginalink = 'https://wikikids.nl/Wikikids:Wikiproject/Opschonen#';
document.getElementById('mw-content-text').innerHTML = '<div id="gadget-ophalen">Hints ophalen</div>'
+
    document.getElementById('mw-content-text').innerHTML = '<div id="gadget-ophalen">Hints ophalen</div>'
+ '<div id="gadget-hint-http" style="color:red; display:none;">Er is een link die begint met http. (<a href="' + paginalink + 'HTTP_links">Wat moet ik doen?</a>)</div>'
+
    + '<div id="gadget-hint-standaard">Er kunnen taal of spellingsfouten in het artikel staan. De opmaak kan te wensen overlaten. Ook kan de informatie niet kloppen. </div>'
+ '<div id="gadget-hint-vreemdelink" style="color:red; display:none;">Er klopt iets niet met een link. (<a href="' + paginalink + 'Link_klopt_niet">Wat moet ik doen?</a>)</div>'
+
        + '<div id="gadget-hint-http" style="color:red; display:none;">Er is een link die begint met http. (<a href="' + paginalink + 'HTTP_links">Wat moet ik doen?</a>)</div>'
+ '<div id="gadget-hint-dp" style="color:red; display:none;">Er staat een link naar een doorverwijspagina op dit artikel. (<a href="' + paginalink + 'Doorverwijspagina">Wat moet ik doen?</a>)</div>'
+
        + '<div id="gadget-hint-vreemdelink" style="color:red; display:none;">Er klopt iets niet met een link. (<a href="' + paginalink + 'Link_klopt_niet">Wat moet ik doen?</a>)</div>'
+ '<span id="gadget-hint-geenlinks" style="color:red; display:none;">Er verwijzen geen andere artikels naar dit artikel. <span id="gadget-hint-welportaal" style="color:green; display:none;">(Wel een portaal) </span>(<a href="' + paginalink + 'Geen_links">Wat moet ik doen?</a>)</span>'
+
        + '<div id="gadget-hint-dp" style="color:red; display:none;">Er staat een link naar een doorverwijspagina op dit artikel. (<a href="' + paginalink + 'Doorverwijspagina">Wat moet ik doen?</a>)</div>'
+ '<div id="gadget-hint-grootbeg" style="color:red; display:none;">Dit artikel is wel groot voor een beginnetje. (<a href="' + paginalink + 'Groot_beginnetje">Wat moet ik doen?</a>)</div>'
+
        + '<span id="gadget-hint-geenlinks" style="color:red; display:none;">Er verwijzen geen andere artikels naar dit artikel. <span id="gadget-hint-welportaal" style="color:green; display:none;">(Wel een portaal) </span>(<a href="' + paginalink + 'Geen_links">Wat moet ik doen?</a>)</span>'
+ '<div id="gadget-hint-geencat" style="color:red; font-weight:bold; display:none;">Er staat geen categorie op dit artikel. (<a href="' + paginalink + 'Geen_categorie">Wat moet ik doen?</a>)</div>'
+
        + '<div id="gadget-hint-grootbeg" style="color:red; display:none;">Dit artikel is wel groot voor een beginnetje. (<a href="' + paginalink + 'Groot_beginnetje">Wat moet ik doen?</a>)</div>'
+ '<div id="gadget-hint-weiniglinks" style="color:red; display:none;">Er staan te weinig links op dit artikel. (<a href="' + paginalink + 'Te_weinig_links_op_pagina">Wat moet ik doen?</a>)</div>'
+
        + '<div id="gadget-hint-geencat" style="color:red; font-weight:bold; display:none;">Er staat geen categorie op dit artikel. (<a href="' + paginalink + 'Geen_categorie">Wat moet ik doen?</a>)</div>'
+ '<div id="gadget-hint-woordenschat" style="display:none;">Ter informatie: Woordenschatartikel</div>'
+
        + '<div id="gadget-hint-weiniglinks" style="color:red; display:none;">Er staan te weinig links op dit artikel. (<a href="' + paginalink + 'Te_weinig_links_op_pagina">Wat moet ik doen?</a>)</div>'
+ '<div id="gadget-hint-extlink" style="display:none;">Er staan externe links op deze pagina. (<a href="' + paginalink + 'Externe_links">Wat moet ik doen?</a>)</div>'
+
        + '<div id="gadget-hint-woordenschat" style="display:none;">Ter informatie: Woordenschatartikel</div>'
+ '<div id="gadget-hint-gebruiker" style="color:green; font-weight:bold; display:none;">Artikel is geschreven door Hanssain. (<a href="' + paginalink + 'Artikel_gemaakt_door_gebruiker">Wat moet ik doen?</a>)</div>'
+
        + '<div id="gadget-hint-extlink" style="display:none;">Er staan externe links op deze pagina. (<a href="' + paginalink + 'Externe_links">Wat moet ik doen?</a>)</div>'
+ '<div id="gadget-hint-gecontroleerd" style="color:green; font-weight:bold; display:none;">Artikel is al gecontroleerd. (<a href="' + paginalink + 'Artikel_al_gecontroleerd">Wat moet ik doen?</a>)</div>'
+
        + '<div id="gadget-hint-haslinks-dp" style="display:none;">Er wordt gelinkt naar deze doorverwijspagina. (<a href="' + paginalink + 'Artikel_al_gecontroleerd">Wat moet ik doen?</a>)</div>'
+ '<hr id="gadget-ophalenlijn>'
+
        + '<div id="gadget-hint-hanssain" style="color:green; font-weight:bold; display:none;">Artikel is geschreven door Hanssain. (<a href="' + paginalink + 'Artikel_gemaakt_door_gebruiker">Wat moet ik doen?</a>)</div>'
+ document.getElementById('mw-content-text').innerHTML;
+
        + '<div id="gadget-hint-mike1023" style="color:green; font-weight:bold; display:none;">Artikel is geschreven door Mike1023. (<a href="' + paginalink + 'Artikel_gemaakt_door_gebruiker">Wat moet ik doen?</a>)</div>'
getFirstAuteur();
+
        + '<div id="gadget-hint-gecontroleerd" style="color:green; font-weight:bold; display:none;">Artikel is al gecontroleerd. (<a href="' + paginalink + 'Artikel_al_gecontroleerd">Wat moet ik doen?</a>)</div>'
getCategories();
+
        + '<hr id="gadget-ophalenlijn>'
getLinksIn();
+
        + document.getElementById('mw-content-text').innerHTML;
getTextLength();
+
    getFirstAuteur();
getBeg();
+
    getTextLengthOpschonen();
getLinksOut();
+
    getBegOpschonen();
checkIfChecked();
+
    checkIfDPOpschonen();
getWoordenschat();
+
    getLinksOut();
getExterneLinks();
+
    checkIfChecked();
setTimeout(removeloading,1500);
+
    getWoordenschat();
// Gecontroleerd, gebruiker, extlink, vreemde link, http, geencat, geenlinks
+
    getExterneLinks();
//Moet nog: weiniglinks, grootkopje, dp
+
    setTimeout(removeLoadingOpschonen, 1500);
 
}
 
}
  
function removeloading (){
+
function removeLoadingOpschonen() {
if (!woordenschat) {
+
    if (!woordenschat) {
if (articlesize >2000) {
+
    if (isDP) {
if (beg) {
+
    if (linksopartikel !== 0) {
document.getElementById('gadget-hint-grootbeg').style.display = "";
+
    console.log(linksopartikel);
}
+
    document.getElementById('gadget-hint-haslinks-dp').style.display = "";
if (linksopartikel < 5) {
+
    }
 +
    } else {
 +
    getLinksIn();
 +
      getCategoriesOpschonen();
 +
    if (articlesize > 2000) {
 +
            if (beg) {
 +
                document.getElementById('gadget-hint-grootbeg').style.display = "";
 +
            }
 +
            if (linksopartikel < 5) {
 +
                document.getElementById('gadget-hint-weiniglinks').style.display = "";
 +
            }
 +
    } else if (linksopartikel < 2) {
 
document.getElementById('gadget-hint-weiniglinks').style.display = "";
 
document.getElementById('gadget-hint-weiniglinks').style.display = "";
}
+
    }
} else if (linksopartikel < 2) {
+
    }
document.getElementById('gadget-hint-weiniglinks').style.display = "";
+
    }
}
+
     api.get({
}
 
     api.get( {
 
 
         action: "query",
 
         action: "query",
 
         prop: "linkshere",
 
         prop: "linkshere",
         titles: articletitle,  
+
         titles: articletitle,
 
         lhnamespace: "100",
 
         lhnamespace: "100",
 
         lhlimit: "50",
 
         lhlimit: "50",
 
         lhshow: "!redirect",
 
         lhshow: "!redirect",
     } ).then( function (data) {
+
     }).then(function (data) {
            temp = data.query.pages[articleId];
+
        temp = data.query.pages[articleId];
            if (typeof temp.linkshere === 'undefined') {  
+
        if (typeof temp.linkshere === 'undefined') {
            } else {
+
        } else {
            document.getElementById('gadget-hint-welportaal').style.display = "";
+
            document.getElementById('gadget-hint-welportaal').style.display = "";
            document.getElementById('gadget-hint-geenlinks').style.color = "";
+
            document.getElementById('gadget-hint-geenlinks').style.color = "";
            }
+
        }
 +
    });
 +
    document.getElementById("gadget-ophalen").innerHTML = "";
 +
}
 +
 
 +
function getTextLengthOpschonen() {
 +
    return api.get({
 +
        action: "query",
 +
        prop: "revisions",
 +
        titles: articletitle,
 +
        rvlimit: "1",
 +
        rvprop: "content|size",
 +
        rvslots: "main",
 +
    }).then(function (data) {
 +
        temp = data.query.pages;
 +
        temp = temp[articleId].revisions["0"].size;
 +
        articlesize = temp;
 +
        return temp;
 
     });
 
     });
document.getElementById("gadget-ophalen").innerHTML="";
 
 
}
 
}
  
function getTextLength (){
+
function checkIfDPOpschonen(){
return api.get( {
+
    return api.get({
action:"query",
+
        action: "query",
prop: "revisions",
+
        prop: "categories",
titles: articletitle,
+
        clcategories: "Categorie:Wikikids:Doorverwijspagina",
rvlimit: "1",
+
        titles: articletitle,
rvprop: "content|size",
+
    }).then(function (data) {
rvslots: "main",
+
        temp = data.query.pages;
}).then( function (data) {  
+
        temp = temp[articleId];
temp = data.query.pages;
+
        if (typeof temp.categories !== 'undefined') {
temp = temp[articleId].revisions["0"].size;
+
            isDP = true;
articlesize = temp;
+
        }
return temp;
+
    });
});
 
 
}
 
}
  
function getCategories () {
+
function getCategoriesOpschonen() {
return api.get( {
+
    return api.get({
action:"query",
+
        action: "query",
prop: "categories",
+
        prop: "categories",
titles: articletitle,
+
        titles: articletitle,
clshow: "!hidden",
+
        clshow: "!hidden",
}).then( function (data) {  
+
    }).then(function (data) {
temp = data.query.pages[articleId].categories;
+
        temp = data.query.pages[articleId].categories;
if (!temp) {
+
        if (!temp) {
document.getElementById("gadget-hint-geencat").style.display="";
+
            document.getElementById("gadget-hint-geencat").style.display = "";
}
+
        }
});
+
    });
 
}
 
}
  
function getFirstAuteur (){
+
function getFirstAuteur() {
return api.get( {
+
    return api.get({
action:"query",
+
        action: "query",
prop: "revisions",
+
        prop: "revisions",
titles: articletitle,
+
        titles: articletitle,
rvlimit: "1",
+
        rvlimit: "1",
rvprop: "user",
+
        rvprop: "user",
rvdir: "newer",
+
        rvdir: "newer",
rvslots: "main",
+
        rvslots: "main",
}).then( function (data) {  
+
    }).then(function (data) {
temp = data.query.pages[articleId].revisions[0].user;
+
        temp = data.query.pages[articleId].revisions[0].user;
if (temp === "Hanssain") {
+
        if (temp === "Hanssain") {
document.getElementById("gadget-hint-gebruiker").style.display="";
+
            document.getElementById("gadget-hint-hanssain").style.display = "";
}
+
        }
});
+
        if (temp === "Mike1023") {
 +
            document.getElementById("gadget-hint-mike1023").style.display = "";
 +
        }
 +
    });
 
}
 
}
  
function getWoordenschat () {
+
function getWoordenschat() {
     return api.get( {
+
     return api.get({
 
         action: "query",
 
         action: "query",
 
         prop: "categories",
 
         prop: "categories",
 
         clcategories: "Category:Woordenschat",
 
         clcategories: "Category:Woordenschat",
         titles: articletitle,  
+
         titles: articletitle,
     } ).then( function (data) {  
+
     }).then(function (data) {
        temp = data.query.pages;
+
        temp = data.query.pages;
            temp = temp[articleId];
+
        temp = temp[articleId];
if (typeof temp.categories !== 'undefined') {
+
        if (typeof temp.categories !== 'undefined') {
            woordenschat = true;
+
            woordenschat = true;
            document.getElementById('gadget-hint-woordenschat').style.display = "";
+
            document.getElementById('gadget-hint-woordenschat').style.display = "";
            }
+
        }
 
     });
 
     });
 
}
 
}
  
function getBeg () {
+
function getBegOpschonen() {
     return api.get( {
+
     return api.get({
 
         action: "query",
 
         action: "query",
 
         prop: "categories",
 
         prop: "categories",
 
         clcategories: "Category:WikiKids:Beginnetje",
 
         clcategories: "Category:WikiKids:Beginnetje",
         titles: articletitle,  
+
         titles: articletitle,
     } ).then( function (data) {  
+
     }).then(function (data) {
        temp = data.query.pages;
+
        temp = data.query.pages;
            temp = temp[articleId];
+
        temp = temp[articleId];
if (typeof temp.categories !== 'undefined') {
+
        if (typeof temp.categories !== 'undefined') {
            beg = true;
+
            beg = true;
            }
+
        }
 
     });
 
     });
 
}
 
}
  
function getLinksOut() {  
+
function getLinksOut() {
     return api.get( {
+
     return api.get({
 
         action: "query",
 
         action: "query",
 
         prop: "links",
 
         prop: "links",
         titles: articletitle,  
+
         titles: articletitle,
 
         pllimit: "5000",
 
         pllimit: "5000",
     } ).then( function (data) {
+
     }).then(function (data) {
            temp = data.query.pages;
+
        temp = data.query.pages;
            temp = temp[articleId];
+
        temp = temp[articleId];
            if (typeof temp.links !== 'undefined') {
+
        if (typeof temp.links !== 'undefined') {
          linksopartikel = temp.links.length;
+
            linksopartikel = temp.links.length;
          getDP();
+
            getDP();
            } else {  
+
        } else {
            linksopartikel = 0;
+
            linksopartikel = 0;
            }
+
        }
     } );
+
     });
 
}
 
}
  
 
function getLinksIn() {
 
function getLinksIn() {
     api.get( {
+
     api.get({
 
         action: "query",
 
         action: "query",
 
         prop: "linkshere",
 
         prop: "linkshere",
         titles: articletitle,  
+
         titles: articletitle,
 
         lhnamespace: "0",
 
         lhnamespace: "0",
 
         lhlimit: "50",
 
         lhlimit: "50",
 
         lhshow: "!redirect",
 
         lhshow: "!redirect",
     } ).then( function (data) {
+
     }).then(function (data) {
            temp = data.query.pages[articleId];
+
        temp = data.query.pages[articleId];
            if (typeof temp.linkshere === 'undefined') {
+
        if (typeof temp.linkshere === 'undefined') {
document.getElementById("gadget-hint-geenlinks").style.display="";
+
            document.getElementById("gadget-hint-geenlinks").style.display = "";
           
+
        }
            }
+
     });
     } );
 
 
}
 
}
  
function checkIfChecked () {
+
function checkIfChecked() {
valuechecked = mw.util.getParamValue( 'checked' );
+
    valuechecked = mw.util.getParamValue('opschonengecontroleerd');
if (valuechecked === "Done") {
+
    if (valuechecked === "Done") {
document.getElementById("gadget-hint-gecontroleerd").style.display="";
+
        document.getElementById("gadget-hint-gecontroleerd").style.display = "";
} else {
+
    } else {
getJSONText().done( function(text) {
+
        getJSONTextOpschonen().done(function (text) {
for (var i=0, iLen=text.length; i<iLen; i++) {
+
            for (var i = 0, iLen = text.length; i < iLen; i++) {
if (text[i].N == articletitle) checkChecked = text[i]["D"];
+
                if (text[i].N == articletitle) checkChecked = text[i]["D"];
}
+
            }
if (checkChecked === "D") {  
+
            if (checkChecked === "D") {
document.getElementById("gadget-hint-gecontroleerd").style.display="";
+
                document.getElementById("gadget-hint-gecontroleerd").style.display = "";
}
+
            }
});
+
        });
}
+
    }
 
}
 
}
  
function getDP () {
+
function getDP() {
api.get( {
+
    api.get({
 
         action: "query",
 
         action: "query",
 
         generator: "links",
 
         generator: "links",
 
         prop: "categories",
 
         prop: "categories",
         titles: articletitle,  
+
         titles: articletitle,
 
         gpllimit: "5000",
 
         gpllimit: "5000",
 
         cllimit: "5000",
 
         cllimit: "5000",
 
         clcategories: "Categorie:Wikikids:Doorverwijspagina",
 
         clcategories: "Categorie:Wikikids:Doorverwijspagina",
     } ).then( function (data) {
+
     }).then(function (data) {
    temp = data.query.pages;
+
        temp = data.query.pages;
    for (const property in temp) {
+
        for (const property in temp) {
    if (temp[property].categories) {
+
            if (temp[property].categories) {
    console.log(temp[property].title);
+
                console.log(temp[property].title);
    document.getElementById("gadget-hint-dp").style.display="";
+
                document.getElementById("gadget-hint-dp").style.display = "";
    }
+
            }
}
+
        }
    });
+
    });
 
}
 
}
  
function getExterneLinks() {  
+
function getExterneLinks() {
     api.get( {
+
     api.get({
 
         action: "query",
 
         action: "query",
 
         prop: "extlinks|categories",
 
         prop: "extlinks|categories",
         titles: articletitle,  
+
         titles: articletitle,
 
         ellimit: "5000",
 
         ellimit: "5000",
     } ).then( function (data) {
+
     }).then(function (data) {
    temp = data.query.pages;
+
        temp = data.query.pages;
            temp = temp[articleId].extlinks;
+
        temp = temp[articleId].extlinks;
            if (typeof temp === 'undefined') {
+
        if (typeof temp === 'undefined') {
            } else {
+
        } else {
            var tempgetal = 0;
+
            var tempgetal = 0;
            while (typeof temp[tempgetal] !== 'undefined'){
+
            var aantallinks = 0;
            if ( temp[tempgetal]["*"].startsWith("http:") ) {
+
            while (typeof temp[tempgetal] !== 'undefined') {
            document.getElementById("gadget-hint-http").style.display="";
+
                if (temp[tempgetal]["*"].startsWith("http:")) {
            } else if (temp[tempgetal]["*"].startsWith("https:")) {
+
                    document.getElementById("gadget-hint-http").style.display = "";
            if (beg === true) {
+
                } else if (temp[tempgetal]["*"].startsWith("https:")) {
            if (temp[tempgetal]["*"] == "https://schooltv.nl/zoekresultaten/?q=" + articletitle ) {
+
                aantallinks +=1;
            } else if (temp[tempgetal]["*"] == "https://www.youtube.com/results?search_query=" + articletitle ) {
+
                } else {
            } else if (temp[tempgetal]["*"] == "https://commons.wikimedia.org/w/index.php?title=Special:Search&search=" + articletitle + "&ns0=1&ns6=1&ns12=1&ns14=1&ns100=1&ns106=1") {
+
                    document.getElementById("gadget-hint-vreemdelink").style.display = "";
            } else if (temp[tempgetal]["*"] == "https://commons.wikimedia.org/w/index.php?search=" + articletitle + "&title=Special:MediaSearch&go=Go&type=image") {
+
                }
            } else if (temp[tempgetal]["*"] == "https://www.google.nl/search?q=" + articletitle ) {
+
                tempgetal += 1;
            } else if (temp[tempgetal]["*"] == "https://nl.wikipedia.org/wiki/" + articletitle) {
+
            }
            } else if (temp[tempgetal]["*"] == "https://wikikids.nl/Wikikids:Beeldbank") {
+
            if (beg === true) {
            } else { document.getElementById("gadget-hint-extlink").style.display="";
+
            aantallinks -=6;
            }  
+
            }  
            } else {
+
            if (aantallinks > 0) {
            document.getElementById("gadget-hint-extlink").style.display="";
+
            document.getElementById("gadget-hint-extlink").style.display = "";
            }
 
            } else {  
 
            document.getElementById("gadget-hint-vreemdelink").style.display="";
 
            }
 
            tempgetal += 1;
 
            }
 
 
             }
 
             }
     } );
+
        }
 +
     });
 
}
 
}
  
 
function changeInstellingen() {
 
function changeInstellingen() {
var instelling = document.getElementById("instellingen").style.display;
+
    var instelling = document.getElementById("instellingen").style.display;
if (instelling === 'none') {  
+
    if (instelling === 'none') {
document.getElementById("instellingen").style.display = "";
+
        document.getElementById("instellingen").style.display = "";
document.getElementById("maxoption").disabled = false;
+
        document.getElementById("maxoption").disabled = false;
} else {
+
    } else {
document.getElementById("instellingen").style.display = 'none';
+
        document.getElementById("instellingen").style.display = 'none';
document.getElementById("maxoption").disabled = true;
+
        document.getElementById("maxoption").disabled = true;
document.getElementById("user").value = "";
+
        document.getElementById("user").value = "";
document.getElementById("startwith").value = "";
+
        document.getElementById("startwith").value = "";
}
+
    }
 +
}
 +
 
 +
function hulpGadgetOpschonen() {
 +
    document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
 +
    document.title = "Help - Opschonen - WikiKids";
 +
    infotext = '<input type="checkbox" id="allepaginas" onclick="changeInstellingen();">Krijg willekeurige pagina\'s. <br>'
 +
        + '<div id="instellingen">'
 +
        + 'Gebruiker: <input type="text" id="user"><br>'
 +
        + 'Alleen artikels die starten met: <input type="text" id="startwith"><br></div>'
 +
        + 'Gecontroleerd: <select name="done" id="done">'
 +
        + '<option value="notdone">Niet</option>'
 +
        + '<option value="xdone" selected>Maakt niet uit</option>'
 +
        + '<option value="done">Wel</option>'
 +
        + '</select><br>'
 +
        + 'Aantal: <select name="aantal" id="aantal">'
 +
        + '<option value="100">100</option>'
 +
        + '<option value="50" selected>50</option>'
 +
        + '<option value="10">10</option>'
 +
        + '<option value="0">0</option>'
 +
        + '<option value="max" id="maxoption">Max</option>'
 +
        + '</select>'
 +
        + '<br><button onclick="getsettings()">Bekijk pagina\'s</button>'
 +
        + ' Vragen? Laat het me weten';
 +
    document.getElementById('bodyContent').innerHTML = terugnaaropschonen + infotext;
 
}
 
}
  
function hulpInfo() {
+
function getsettings() {
document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
+
    var allepaginasl = document.getElementById('allepaginas').checked;
document.title = "Help - Opschonen - WikiKids";
+
    var startwithl = document.getElementById('startwith').value;
infotext = '<input type="checkbox" id="allepaginas" onclick="changeInstellingen();">Krijg willekeurige pagina\'s. <br>'
+
    var userl = document.getElementById('user').value;
+ '<div id="instellingen">'
+
    var aantall = document.getElementById('aantal').value;
+ 'Gebruiker: <input type="text" id="user"><br>'
+
    var donel = document.getElementById('done').value;
+ 'Alleen artikels die starten met: <input type="text" id="startwith"><br></div>'
+
    var url = 'https://wikikids.nl/Speciaal:Opschonen?';
+ 'Gecontroleerd: <select name="done" id="done">'
+
    if (allepaginasl) {
+ '<option value="notdone">Niet</option>'
+
    } else {
+ '<option value="xdone" selected>Maakt niet uit</option>'
+
        url += 'allepaginas=x&';
+ '<option value="done">Wel</option>'
+
    }
+ '</select><br>'
+
    if (startwithl) {
+ 'Thema: <select name="thema" id="thema">'
+
    url += 'startwith=' + startwithl + '&';
+ '<option value="notthema">Geen</option>'
+
    }
+ '<option value="xthema" selected>Maakt niet uit</option>'
+
    if (donel === "done") {
+ '<option value="thema">Wel</option>'
+
        url += 'done=x&';
+ '</select><br>'
+
    } else if (donel === "notdone") {
+ 'Aantal: <select name="aantal" id="aantal">'
+
        url += 'notdone=x&';
+ '<option value="100">100</option>'
+
    }
+ '<option value="50" selected>50</option>'
+
    if (userl) {
+ '<option value="10">10</option>'
+
        url += 'user=' + userl + '&';
+ '<option value="0">0</option>'
+
    }
+ '<option value="max" id="maxoption">Max</option>'
+
    url += 'aantal=' + aantall;
+ '</select><br>'
+
    window.location.href = url;
+ '<br><button onclick="getsettings()">Bekijk pagina\'s</button>'
 
+ 'Vragen hierover? Laat het me weten';
 
document.getElementById('bodyContent').innerHTML = infotext;
 
 
}
 
}
  
function getsettings () {
+
function statsOpschonen(text){
var allepaginasl = document.getElementById('allepaginas').checked;
+
var xaantal = {"totaal": 300};  
var startwithl = document.getElementById('startwith').value;
+
var opschonenuser = [];
var themal = document.getElementById('thema').value;
+
for (const x of text) {
var userl = document.getElementById('user').value;
+
if (x.D === "D") {
var aantall = document.getElementById('aantal').value;
+
xaantal.totaal += 1;
var donel = document.getElementById('done').value;
+
if (x.U) {
var url = 'https://wikikids.nl/Speciaal:Opschonen?';
+
opschonenuser.push(x.U);
if (allepaginasl) {
+
if (xaantal[x.U]) {
} else {
+
xaantal[x.U] += 1;
url += 'allepaginas=x&';
+
} else {
}
+
xaantal[x.U] = 1;
if (themal === "thema") {
+
}
url +='thema=x&';
+
}
} else if (themal === "notthema") {
+
}
url +='notthema=x&';  
+
}  
}
+
var aantalwikikidsartikelen = 5000;
if (donel === "done") {
+
api.get({
url +='done=x&';
+
    action: "query",
} else if (donel === "notdone") {
+
    meta: 'siteinfo',
url +='notdone=x&';
+
    siprop: 'statistics'
}
+
}).then(function (ret) {
if (userl) {
+
aantalwikikidsartikelen = ret.query.statistics.articles;
url +='user='+ userl + '&';
+
console.log('X', ret, aantalwikikidsartikelen);
}
+
opschonenuser = removeDuplicates(opschonenuser);
url +='aantal=' + aantall;
+
    document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
window.location.href = url;
+
    document.title = "Opschonen - WikiKids";
 +
var tobody = `<br> Er zijn totaal ${xaantal.totaal} artikelen gecontroleerd. Dat is ${Math.round((xaantal.totaal/aantalwikikidsartikelen) * 100 * 1000) / 1000}% van WikiKids. Hieronder staan alle gebruikers die minimaal een artikel hebben gecontroleerd. <ul>`;
 +
tobody += `<div style="background-color:#eeeeee; width:400px;height:18px;float:left;margin-right:5px;border:1px solid #bbb;"><div style="background-color:#119000;width:${(xaantal.totaal/aantalwikikidsartikelen) * 100 * 4}px;height:18px;"><div style="font-weight:bold;width:400px;text-align:center;height:18px;line-height:18px;color:black;"><abbr title="7&nbsp;%"></abbr>${Math.round((xaantal.totaal/aantalwikikidsartikelen) * 100 * 1000) / 1000} / 100%</div></div></div><br>`;
 +
console.log(aantalwikikidsartikelen);
 +
for (const x of opschonenuser) {
 +
tobody += '<li>' + x + ' (aantal: ' + xaantal[x] + ')</li>';
 +
}
 +
tobody += '</ul>';
 +
document.getElementById('bodyContent').innerHTML = terugnaaropschonen + tobody;
 +
});
 +
}
 +
 +
function removeDuplicates(arr) {
 +
    let unique = arr.reduce(function (acc, curr) {
 +
        if (!acc.includes(curr))
 +
            acc.push(curr);
 +
        return acc;
 +
    }, []);
 +
    return unique;
 
}
 
}
  
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "Opschonen") {  
+
if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "Opschonen") {
document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Script met veel liefde gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></li>';
+
var terugnaaropschonen = '<div id="contentSub"><span class="subpages">&lt; <a href="/Speciaal:Opschonen" title="Speciaal:Opschonen">Speciaal:Opschonen</a></span></div>';
if (document.URL === "https://wikikids.nl/Speciaal:Opschonen?action=help") {
+
    document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Script gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></li>';
var infotext;
+
    var isOpgeslagenOpschonen = false;
hulpInfo();
+
    window.onbeforeunload = function() {
} else {
+
if (!isOpgeslagenOpschonen) {
showAantal = parseInt(mw.util.getParamValue( 'aantal' ));
+
return 'Weet je zeker dat je deze pagina wilt verlaten?';
showUser = mw.util.getParamValue('user');
+
}
showStartwith = mw.util.getParamValue('Startwith');
+
return undefined;
var tussenvoegsel;
+
};
document.getElementById('bodyContent').innerHTML = "Laden... krijg je niets te zien? Maak hier dan een melding van bij mij met deze url:" + document.URL;
+
    if (document.URL === "https://wikikids.nl/Speciaal:Opschonen?action=help") {
var edit_token;
+
        var infotext;
var tempgetal;
+
        hulpGadgetOpschonen();
var temp;
+
    } else if (mw.util.getParamValue('action') === 'stats') {
var Artikelr = [];
+
    getJSONTextOpschonen().done(function (text) {
var Artikeln = [];
+
            statsOpschonen(text);
var Artikellink = [];
+
        });
var getUser;
+
    } else {
var Thematemp = [];
+
        showAantal = parseInt(mw.util.getParamValue('aantal'));
var Opmerkingtemp = [];
+
        showUser = mw.util.getParamValue('user');
var Thematempx;
+
        showStartwith = mw.util.getParamValue('startwith');
var Opmerkingtempx;
+
        var tussenvoegsel;
var Knop1x = [];
+
        document.getElementById('bodyContent').innerHTML = "Laden... krijg je niets te zien? Maak hier dan een melding van bij mij met deze url:" + document.URL;
var Knop2x = [];
+
        var edit_token;
var Knop3x = [];
+
        var tempgetal;
var Opmerking = [];
+
        var temp;
var Thema = [];
+
        var Artikelr = [];
var tabel;
+
        var Artikeln = [];
var eindetabel;
+
        var Artikellink = [];
var highArtikelr;
+
        var getUser;
var showAantal;
+
        var Opmerkingtemp = [];
var gedaan = [];
+
        var Opmerkingtempx;
var vorigeuser = [];
+
        var Knop1x = [];
var linkextra = [];
+
        var Knop3x = [];
var getKnop3;
+
        var Opmerking = [];
var getKnop2;
+
        var tabel;
var getKnop1;
+
        var eindetabel;
var randomNumber;
+
        var highArtikelr;
var showAll;
+
        var showAantal;
var showSkipDone;
+
        var gedaan = [];
var showSkipSkipped;
+
        var vorigeuser = [];
var showDone;
+
        var linkextra = [];
var showThema;
+
        var getKnop3;
var addarticle;
+
        var getKnop1;
var paginalink;
+
        var randomNumber;
var checkChecked;
+
        var showAll;
var allNummer = 1;  
+
        var showSkipDone;
var showFrom;
+
        var showSkipSkipped;
var showTo;
+
        var showDone;
var showSkipThema;
+
        var addarticle;
var lengtetext;
+
        var paginalink;
var showMax;
+
        var checkChecked;
var Waardes = {"Radio1":[],"Radio2":[],"Radio3":[],"Opmerking":[],"Thema":[], "Opmerkingdis":[],"Themadis":[]};
+
        var allNummer = 1;
//varvar
+
        var showFrom;
getJSONText().done( function(text) {
+
        var showTo;
showProject(text);
+
        var lengtetext;
});
+
        var showMax;
}
+
        var Waardes = { "Radio1": [], "Radio3": [], "Opmerking": [], "Opmerkingdis": []};
 +
        //varvar
 +
        getJSONTextOpschonen().done(function (text) {
 +
            showProjectOpschonen(text);
 +
        });
 +
    }
 
}
 
}
  
var showHints = mw.util.getParamValue( 'projectopschonen' );
+
var showHints = mw.util.getParamValue('projectopschonen');
if (showHints) {  
+
if (showHints) {
showHints = "disabled";
+
    document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Hints zijn gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></li>';
document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Hints zijn gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></li>';
+
    //varvar
//varvar
+
    var articletitle = mw.config.get('wgPageName');
var articletitle = mw.config.get('wgPageName');
+
    var articleId = mw.config.get('wgArticleId');
var articleId = mw.config.get('wgArticleId');
+
    var beg = false;
var beg = false;
+
    var isDP = false;  
var dp = false;
+
    var link = 0;
var link = 0;
+
    var link2 = "";
var link2 = "";
+
    var temp;
var temp;
+
    var temp2;
var temp2;
+
    var linkhttp = 0;
var linkhttp = 0;
+
    var redirects = "";
var redirects = "";
+
    var Hints = "";
var Hints = "";
+
    var htmltext;
var htmltext;
+
    var Nummer;
var Nummer;
+
    var CheckChecked;
var CheckChecked;
+
    var articlesize;
var articlesize;
+
    var linksopartikel;
var linksopartikel;
+
    var valuechecked;
var valuechecked;
+
    var woordenschat = false;
var woordenschat = false;
+
    startHintsOpschonen();
startHints();
 
 
}
 
}
  
if ((mw.config.get('wgNamespaceNumber') === 0) && (mw.config.get('wgArticleId') > 1 )) {  
+
if ((mw.config.get('wgNamespaceNumber') === 0) && (mw.config.get('wgArticleId') > 1)) {
document.getElementById("mw-panel").innerHTML +='&nbsp;&nbsp;&nbsp;Gadget:Opschonen<br>&nbsp;&nbsp;&nbsp;<input type="button" onclick="location.href=\'https://wikikids.nl/Speciaal:Opschonen\';" value="Speciaal:Opschonen" />'
+
    document.getElementById("mw-panel").innerHTML += `<nav id="p-op" style="background-color: #1D9CB9" class="vector-menu vector-menu-portal portal"
+ '<br>&nbsp;&nbsp;&nbsp;<input type="button" onclick="location.href=\'https://wikikids.nl/' + mw.config.get( 'wgPageName' ) + '?projectopschonen=x\';" ' + showHints +  ' value="Opschoon hints" />'
+
    aria-labelledby="p-op-label" role="navigation">
+ '<br>&nbsp;&nbsp;&nbsp;<input type="button" onclick="fromPageaddPage();" value="Gecontroleerd" disabled/>';
+
    <h3 id="p-op-label">
 +
        <span>Opschonen</span>
 +
    </h3>
 +
    <div class="body vector-menu-content" style="border-bottom: 1px solid #1D9CB9">
 +
        <ul class="vector-menu-content-list">
 +
            <li>
 +
                <a href="https://wikikids.nl/Speciaal:Opschonen">Speciaal:Opschonen</a>
 +
            </li>
 +
            <li>
 +
            <a href="https://wikikids.nl/${mw.config.get('wgPageName')}?projectopschonen=x">Opschoon hints</a>
 +
            </li>
 +
            <li>
 +
                <button onclick="fromPageaddPageOpschonen()">Gecontroleerd</button>
 +
            </li>
 +
        </ul>
 +
    </div>
 +
</nav>`;
 
}
 
}

Versie van 11 apr 2023 19:56

/* jshint sub:true maxerr:100000 */
// Gadget gemaakt door [[User:Rots61]]
// Documentatie op [[WikiKids:Opschonen]]
var text;
var api = new mw.Api();
var alreadydone;
var Nummer;

function showProjectOpschonen(text) {
    // text = array 
    document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
    document.title = "Opschonen - WikiKids";
    tempgetal = 1;
    tempnumber = 1;
    var tabelstuk1 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Gecontroleerd</div></th>';
    var tabelstuk3 = '<th style="line-height:99%;vertical-align:bottom;padding:.4em .4em .2em;background-position:50% .4em !important;min-width:0.875em;max-width:0.875em;width:0.875em;overflow:hidden;"><div style="vertical-rl=-webkit-writing-mode: vertical-rl; -o-writing-mode: vertical-rl; -ms-writing-mode: tb-rl;writing-mode: tb-rl; writing-mode: vertical-rl; layout-flow: vertical-ideographic;transform:rotate(180deg);display:inline-block;padding-left:1px;text-align:left;">Niet bekeken</div></th>';
    tabel = "Deze artikels kun je controleren. Je hoeft niet alle onderstaande artikels te controleren. Dat mag natuurlijk wel. "
        + 'Als je specifieker wilt controleren klik dan <a href="https://wikikids.nl/Speciaal:Opschonen?action=help">hier</a>. <br>Er zijn ook statistieken beschikbaar voor deze pagina, deze kun je <a href="https://wikikids.nl/Speciaal:Opschonen?action=stats">hier</a> vinden. '
        + 'Om ervoor te zorgen dat je niets verliest, wordt je altijd gevraagd of je de pagina af wilt sluiten. '
        + '<br><input type="text" id="addarticle" name="addarticle"> <button onclick="addArticleToListOpschonen()">Voeg toe</button><br>'
        + '<table class="wikitable"><tbody><tr> <th width="300"><div style="float: left; text-align: left">Pagina</div><div style="float: right; text-align: right">Gebruiker</div></th>' + tabelstuk1 + tabelstuk3 + '<th width="1">Opmerking<br><span style="color:gray;">van de andere gebruiker</span></th></tr>';
    showAantal = mw.util.getParamValue('aantal');
    showAll = mw.util.getParamValue('allepaginas');
    showSkipDone = mw.util.getParamValue('notdone');
    //Zorg ervoor dat je al gecontroleerde pagina's niet ziet
    showDone = mw.util.getParamValue('done');
    //Zorg ervoor dat je alle pagina's ziet waar deze gebruiker bij staat.
    showUser = mw.util.getParamValue('user');
    showStartwith = mw.util.getParamValue('startwith');
    showTo = mw.util.getParamValue('to');
    showFrom = mw.util.getParamValue('from');
    if (showAantal === 'max') {
        showAantal = text.length - 1;
        showMax = true;
        showAll = true;
    } else if (showAantal) {
        showAantal = parseInt(showAantal) + 1;
    } else if (showAll) {
        showAantal = text.length - 1;
    }
    if ( showDone || (showSkipDone || (showTo || (showFrom || (showUser || (showStartwith || showAantal)))))) {
    } else {
        showAantal = 51;
        showSkipDone = true;
    }
    lengtetext = text.length;
    while (tempnumber !== showAantal) {
        Artikeln[tempgetal] = getURLParamNumberOpschonen(text);
        if (Artikeln[tempgetal] === 'exit') {
            tempnumber = -1;
            showAantal = -1;
        } else {
            Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
            if (text[Artikeln[tempgetal]]["D"]) {
                gedaan[tempgetal] = " disabled";
                linkextra[tempgetal] = "Done";
                Knop1x[tempgetal] = "";
                Knop3x[tempgetal] = '<td colspan="2" style="color:green; font-weight: bold; text-align: center;">Gedaan</td>';
            } else {
                gedaan[tempgetal] = "";
                linkextra[tempgetal] = "Niet";
                Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1Opschonen(' + tempgetal + ');"></td>';
                Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3Opschonen(' + tempgetal + ');"></td>';

            }
            if (text[Artikeln[tempgetal]]["U"]) {
                vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
            } else {
                vorigeuser[tempgetal] = "";
            }
            if (text[Artikeln[tempgetal]]["O"]) {
                Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
            } else {
                Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
            }
            console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
            Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&opschonengecontroleerd=' + linkextra[tempgetal] + '" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
            tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> </tr>';
            tempgetal += 1;
            if (showMax) {
                tempnumber = allNummer;
            } else {
                tempnumber = tempgetal;
            }
        }
    }
    // text = array
    eindetabel += '</tbody></table> <button onclick="startITOpschonen()">Opslaan</button> Dit kan een paar seconden duren. Wacht totdat je ziet dat de wijziging is opgeslagen. ';
    document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
    mw.notify("Welkom!");
}

function getURLParamNumberOpschonen(text, nummer) {
    willekeuriggetal = 0;
    while (willekeuriggetal === 0) {
        willekeuriggetal = getRandomNumberOpschonen(text.length);
        if (willekeuriggetal === text.length) {
            return 'exit';
        } else {
            if (showUser) {
                if (text[willekeuriggetal]["U"] === showUser) {
                } else {
                    willekeuriggetal = 0;
                }
            }
            if (showDone) {
                if (text[willekeuriggetal]["D"]) {
                } else {
                    willekeuriggetal = 0;
                }
            } else if (showSkipDone) {
                if (text[willekeuriggetal]["D"]) {
                    willekeuriggetal = 0;
                }
            }
            if (showStartwith) {
                var re = new RegExp('^' + showStartwith, "g");
                if (text[willekeuriggetal]["N"] !== text[willekeuriggetal]["N"].replace(re, "newstring")) {
                    console.log(text[willekeuriggetal]["N"]);
                } else {
                    willekeuriggetal = 0;
                }
            }
            if (showFrom) {
                if (text[willekeuriggetal]["N"]) {

                }
                if (showTo) {
                    if (text[willekeuriggetal]["N"]) {
                    }
                }
            }
        }
    }
    return willekeuriggetal;
}

function Change1Opschonen(getal) {
    document.getElementById('Opmerking' + getal).disabled = false;
    Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
    document.getElementById('Opmerking' + getal).value = Opmerkingtemp[getal] ? Opmerkingtemp[getal] : Opmerkingtempx ? Opmerkingtempx : "";
}

function Change3Opschonen(getal) {
    Opmerkingtemp[getal] = document.getElementById('Opmerking' + getal).value;
    document.getElementById('Opmerking' + getal).disabled = true;
    document.getElementById('Opmerking' + getal).value = "";
}

function fromPageaddPageOpschonen() {
    var text;
    var artikel;
    var checkconfirm;
    var checkopmerking;
    getJSONTextOpschonen().done(function (text) {
        fromPageCheckOnListOpschonen(text);
    });
}

function fromPageCheckOnListOpschonen(text) {
    if (!Array.isArray(text)) {
        text = JSON.parse(text);
    }
    if (!text[1]["N"]) {
        text = JSON.parse(text);
    }
    addarticle = mw.config.get('wgPageName').replace(/ /g, '_');
    for (var i = 0, iLen = text.length; i < iLen; i++) {
        if (text[i].N == addarticle) Nummer = i;
    }
    if (!Nummer) {
        api.get({
            action: "query",
            titles: addarticle,
            redirects: true,
        }).then(function (ret) {
            if (ret.query.redirects) {
                alreadydone = true;
                mw.notify("Pagina is een redirect.");
            } else {
                $.each(ret.query.pages, function () {
                    if (this.missing !== "") {
                        if (this.ns === 0) {
                            Nummer = text.length;
                            text[text.length] = { "N": addarticle, "D": "D", "U": mw.config.get('wgUserName') };
                        } else {
                            alreadydone = true;
                            mw.notify("Pagina staat niet in de hoofdnaamruimte.");
                        }
                    } else {
                        alreadydone = true;
                        mw.notify("Pagina bestaat niet. ");
                    }
                }, function (error) {
                });
            }
        });
    } else if (text[Nummer]["D"] === "D") {
        mw.notify("Dit aritkel is al gecontroleerd door " + text[Nummer]["U"]);
        alreadydone = true;
    } else {
        text[Nummer]["D"] = "D";
        text[Nummer]["U"] = mw.config.get('wgUserName');
    }
    fromPageSaveOpschonen(text);
}

function fromPageSaveOpschonen(text) {
    if (alreadydone) {
    } else if (!Nummer) {
        setTimeout(function () {fromPageSaveOpschonen(text)}, 250);
    } else {
        checkopmerking = prompt("Mogelijke opmerking over het artikel: ");
        if (checkopmerking === null) {
        } else if (checkopmerking === '') {
            editPageNowOpschonen(text);
        } else {
            text[Nummer]["O"] = checkopmerking;
            editPageNowOpschonen(text);
        }
    }
}

function addArticleToListOpschonen(artikel) {
    if (!text[1]["N"]) {
        text = JSON.parse(text);
    }
    addarticle = undefined;
    var comesfromcookie;
    if (artikel) {
        addarticle = artikel;
        comesfromcookie = true;
    } else {
        addarticle = document.getElementById('addarticle').value.replace(/ /g, '_');
    }
    for (var i = 0, iLen = text.length; i < iLen; i++) {
        if (text[i].N == addarticle) Nummer = i;
    }
    if (!Nummer) {
        api.get({
            action: "query",
            titles: addarticle,
            redirects: true,
        }).then(function (ret) {
            if (ret.query.redirects) {
                mw.notify("Pagina is een redirect, kan niet gecontroleerd worden.");
            } else {
                $.each(ret.query.pages, function () {
                    if (this.missing !== "") {
                        if (this.ns === 0) {
                            Nummer = text.length;
                            text[text.length] = { "N": addarticle };
                        } else {
                            mw.notify("Pagina staat niet in de hoofdnaamruimte.");
                        }
                    } else {
                        mw.notify("Pagina bestaat niet. ");
                    }
                }, function (error) {
                });
            }
        });
    }
    if (Nummer) {
        tempgetal = 1;
        var gewenstelengte = Artikelr.length;
        if (gewenstelengte === 0) {
            gewenstelengte = 1;
            tempgetal = 1;
        }
        console.log(gewenstelengte + ":" + tempgetal);
        while (tempgetal !== gewenstelengte) {
            if (document.getElementById('Radio1.' + tempgetal)) {
                Waardes['Radio1'][tempgetal] = document.getElementById('Radio1.' + tempgetal).checked;
                Waardes['Radio3'][tempgetal] = document.getElementById('Radio3.' + tempgetal).checked;
                Waardes['Opmerking'][tempgetal] = document.getElementById('Opmerking' + tempgetal).value;
                Waardes['Opmerkingdis'][tempgetal] = document.getElementById('Opmerking' + tempgetal).disabled;
            }
            tempgetal += 1;
        }
        tempgetal = Artikelr.length;
        Artikeln[tempgetal] = Nummer;
        Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
        if (text[Artikeln[tempgetal]]["D"]) {
            gedaan[tempgetal] = " disabled";
            linkextra[tempgetal] = "Done";
            Knop1x[tempgetal] = "";
            Knop3x[tempgetal] = '<td colspan="2" style="color:green; font-weight: bold;">Gedaan</td>';
        } else {
            gedaan[tempgetal] = "";
            linkextra[tempgetal] = "Niet";
            Knop1x[tempgetal] = '<td><input type="radio" id="Radio1.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change1Opschonen(' + tempgetal + ');"></td>';
            Knop3x[tempgetal] = '<td><input type="radio" id="Radio3.' + tempgetal + '" name="Knop' + tempgetal + '" onclick="Change3Opschonen(' + tempgetal + ');"></td>';
        }
        if (text[Artikeln[tempgetal]]["U"]) {
            vorigeuser[tempgetal] = ' <div style="float: right; font-weight: bold; text-align: right">' + text[Artikeln[tempgetal]]["U"] + '</div>';
        } else {
            vorigeuser[tempgetal] = "";
        }
        if (text[Artikeln[tempgetal]]["O"]) {
            Opmerking[tempgetal] = text[Artikeln[tempgetal]]["O"];
        } else {
            Opmerking[tempgetal] = '<input type="text" id=Opmerking' + tempgetal + ' name=Opmerking' + tempgetal + ' size=70">';
        }
        console.log(Artikeln[tempgetal] + ": " + Artikelr[tempgetal]);
        Artikellink[tempgetal] = '<a href="https://wikikids.nl/' + Artikelr[tempgetal] + '?projectopschonen=x&opschonengecontroleerd=' + linkextra[tempgetal] + '" target="_blank">' + Artikelr[tempgetal] + '</a>' + vorigeuser[tempgetal];
        tabel += '<tr> <td>' + Artikellink[tempgetal] + '</td>' + Knop1x[tempgetal] + Knop3x[tempgetal] + '<td>' + Opmerking[tempgetal] + '</td> </tr>';
        mw.notify("Artikel toegevoegd op deze pagina.");
        document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
        tempgetalxyz = tempgetal;
        tempgetal = 1;
        while (tempgetal !== gewenstelengte) {
            document.getElementById('Radio1.' + tempgetal).checked = Waardes['Radio1'][tempgetal];
            document.getElementById('Radio3.' + tempgetal).checked = Waardes['Radio3'][tempgetal];
            document.getElementById('Opmerking' + tempgetal).value = Waardes['Opmerking'][tempgetal];
            document.getElementById('Opmerking' + tempgetal).disabled = Waardes['Opmerkingdis'][tempgetal];
            tempgetal += 1;
        }
        if (comesfromcookie) {
            document.getElementById('Radio1.' + tempgetalxyz).checked = true;
            Change1Opschonen(tempgetalxyz);
            comesfromcookie = false;
        }
        Nummer = undefined;
    }
}

function editPageNowOpschonen(textx) {
    while (textx) {
        text = textx;
        textx = false;
    }
    if (Array.isArray(text)) {
        text = JSON.stringify(text);
    }
    api.get({
        action: 'query',
        prop: 'info',
        intoken: 'edit',
        titles: 'kaslv', //Pagina moet niet bestaan. 
    }).done(
        function (data) {
            edit_token = data.query.pages['-1'].edittoken;
        }).done(function (data) {
            api.post({
                'action': 'edit',
                'title': "Gebruiker:Rots61/Test.json",
                'text': text,
                'summary': "Pagina's als gecontroleerd gemarkeerd. [[WikiKids:Opschonen|(bewerking gedaan met 'Opschonen')]]",
                'tags': 'Opschonen',
                'bot': true,
                'token': edit_token,
            }).done(
                function (data) {
                    if (data.edit.result == "Success") {
                        mw.notify("Opgeslagen!", { autoHide: false });
                    } else {
                        mw.notify("Mislukt, meldt dit bij mij", { autoHide: false });
                    }
                    console.log(data.edit);
                    isOpgeslagenOpschonen = true;
                    document.getElementsByTagName("h1")[0].textContent = "Opslaan gelukt!";
                    document.getElementById('bodyContent').innerHTML = "Herlaad de pagina.";
                });
        });
}

function startITOpschonen() {
    if (!Array.isArray(text)) {
        text = JSON.parse(text);
    }
    tempgetal = 1;
    highArtikelr = Artikelr.length;
    while (tempgetal !== highArtikelr) {
        if (text[Artikeln[tempgetal]]["D"]) {
        } else {
            console.log(text[Artikeln[tempgetal]]);
            getKnop3 = document.getElementById("Radio3." + tempgetal);
            if (getKnop3 && getKnop3.checked) {
            } else {
                var getopmerking = document.getElementById("Opmerking" + tempgetal);
                if (getopmerking && getopmerking.value) {
                    getopmerking = getopmerking.value;
                } else {
                    getopmerking = "";
                }
                getKnop1 = document.getElementById("Radio1." + tempgetal);
                if (getKnop1 && getKnop1.checked) {
                    if (getopmerking) {
                        text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
                        text[Artikeln[tempgetal]]["O"] = getopmerking;
                        text[Artikeln[tempgetal]]["D"] = "D";
                    } else {
                        text[Artikeln[tempgetal]]["D"] = "D";
                        text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
                    }
                } else if (getopmerking) {
                    text[Artikeln[tempgetal]]["U"] = mw.config.get('wgUserName');
                    text[Artikeln[tempgetal]]["O"] = getopmerking;
                }
            }
        }
        tempgetal += 1;
    }
    editPageNowOpschonen(text);
}

function getJSONTextOpschonen() {
    return api.get({
        action: "query",
        prop: "revisions",
        titles: "Gebruiker:Rots61/Test.json",
        rvlimit: "1",
        rvprop: "content",
        rvslots: "main",
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[148926];
        temp = temp.revisions;
        temp = temp[0];
        text = temp.slots.main;
        text = text["*"];
        return JSON.parse(text);
    });
}

function getRandomNumberOpschonen(lengtetext) {
    if (showAll) {
        allNummer += 1;
        return allNummer;
    }
    return Math.floor(Math.random() * lengtetext);
}

function startHintsOpschonen() {
    htmltext = document.getElementById('mw-content-text').innerHTML;
    paginalink = 'https://wikikids.nl/Wikikids:Wikiproject/Opschonen#';
    document.getElementById('mw-content-text').innerHTML = '<div id="gadget-ophalen">Hints ophalen</div>'
    	+ '<div id="gadget-hint-standaard">Er kunnen taal of spellingsfouten in het artikel staan. De opmaak kan te wensen overlaten. Ook kan de informatie niet kloppen. </div>'
        + '<div id="gadget-hint-http" style="color:red; display:none;">Er is een link die begint met http. (<a href="' + paginalink + 'HTTP_links">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-vreemdelink" style="color:red; display:none;">Er klopt iets niet met een link. (<a href="' + paginalink + 'Link_klopt_niet">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-dp" style="color:red; display:none;">Er staat een link naar een doorverwijspagina op dit artikel. (<a href="' + paginalink + 'Doorverwijspagina">Wat moet ik doen?</a>)</div>'
        + '<span id="gadget-hint-geenlinks" style="color:red; display:none;">Er verwijzen geen andere artikels naar dit artikel. <span id="gadget-hint-welportaal" style="color:green; display:none;">(Wel een portaal) </span>(<a href="' + paginalink + 'Geen_links">Wat moet ik doen?</a>)</span>'
        + '<div id="gadget-hint-grootbeg" style="color:red; display:none;">Dit artikel is wel groot voor een beginnetje. (<a href="' + paginalink + 'Groot_beginnetje">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-geencat" style="color:red; font-weight:bold; display:none;">Er staat geen categorie op dit artikel. (<a href="' + paginalink + 'Geen_categorie">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-weiniglinks" style="color:red; display:none;">Er staan te weinig links op dit artikel. (<a href="' + paginalink + 'Te_weinig_links_op_pagina">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-woordenschat" style="display:none;">Ter informatie: Woordenschatartikel</div>'
        + '<div id="gadget-hint-extlink" style="display:none;">Er staan externe links op deze pagina. (<a href="' + paginalink + 'Externe_links">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-haslinks-dp" style="display:none;">Er wordt gelinkt naar deze doorverwijspagina. (<a href="' + paginalink + 'Artikel_al_gecontroleerd">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-hanssain" style="color:green; font-weight:bold; display:none;">Artikel is geschreven door Hanssain. (<a href="' + paginalink + 'Artikel_gemaakt_door_gebruiker">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-mike1023" style="color:green; font-weight:bold; display:none;">Artikel is geschreven door Mike1023. (<a href="' + paginalink + 'Artikel_gemaakt_door_gebruiker">Wat moet ik doen?</a>)</div>'
        + '<div id="gadget-hint-gecontroleerd" style="color:green; font-weight:bold; display:none;">Artikel is al gecontroleerd. (<a href="' + paginalink + 'Artikel_al_gecontroleerd">Wat moet ik doen?</a>)</div>'
        + '<hr id="gadget-ophalenlijn>'
        + document.getElementById('mw-content-text').innerHTML;
    getFirstAuteur();
    getTextLengthOpschonen();
    getBegOpschonen();
    checkIfDPOpschonen();
    getLinksOut();
    checkIfChecked();
    getWoordenschat();
    getExterneLinks();
    setTimeout(removeLoadingOpschonen, 1500);
}

function removeLoadingOpschonen() {
    if (!woordenschat) {
    	if (isDP) {
    		if (linksopartikel !== 0) {
    			console.log(linksopartikel);
    			document.getElementById('gadget-hint-haslinks-dp').style.display = "";
    		}
    	} else {
    		getLinksIn();
   		    getCategoriesOpschonen();
    		if (articlesize > 2000) {
	            if (beg) {
	                document.getElementById('gadget-hint-grootbeg').style.display = "";
	            }
	            if (linksopartikel < 5) {
	                document.getElementById('gadget-hint-weiniglinks').style.display = "";
	            }
    		} else if (linksopartikel < 2) {
				document.getElementById('gadget-hint-weiniglinks').style.display = "";
    		}
    	}
    }
    api.get({
        action: "query",
        prop: "linkshere",
        titles: articletitle,
        lhnamespace: "100",
        lhlimit: "50",
        lhshow: "!redirect",
    }).then(function (data) {
        temp = data.query.pages[articleId];
        if (typeof temp.linkshere === 'undefined') {
        } else {
            document.getElementById('gadget-hint-welportaal').style.display = "";
            document.getElementById('gadget-hint-geenlinks').style.color = "";
        }
    });
    document.getElementById("gadget-ophalen").innerHTML = "";
}

function getTextLengthOpschonen() {
    return api.get({
        action: "query",
        prop: "revisions",
        titles: articletitle,
        rvlimit: "1",
        rvprop: "content|size",
        rvslots: "main",
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId].revisions["0"].size;
        articlesize = temp;
        return temp;
    });
}

function checkIfDPOpschonen(){
    return api.get({
        action: "query",
        prop: "categories",
        clcategories: "Categorie:Wikikids:Doorverwijspagina",
        titles: articletitle,
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId];
        if (typeof temp.categories !== 'undefined') {
            isDP = true;
        }
    });
}

function getCategoriesOpschonen() {
    return api.get({
        action: "query",
        prop: "categories",
        titles: articletitle,
        clshow: "!hidden",
    }).then(function (data) {
        temp = data.query.pages[articleId].categories;
        if (!temp) {
            document.getElementById("gadget-hint-geencat").style.display = "";
        }
    });
}

function getFirstAuteur() {
    return api.get({
        action: "query",
        prop: "revisions",
        titles: articletitle,
        rvlimit: "1",
        rvprop: "user",
        rvdir: "newer",
        rvslots: "main",
    }).then(function (data) {
        temp = data.query.pages[articleId].revisions[0].user;
        if (temp === "Hanssain") {
            document.getElementById("gadget-hint-hanssain").style.display = "";
        }
        if (temp === "Mike1023") {
            document.getElementById("gadget-hint-mike1023").style.display = "";
        }
    });
}

function getWoordenschat() {
    return api.get({
        action: "query",
        prop: "categories",
        clcategories: "Category:Woordenschat",
        titles: articletitle,
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId];
        if (typeof temp.categories !== 'undefined') {
            woordenschat = true;
            document.getElementById('gadget-hint-woordenschat').style.display = "";
        }
    });
}

function getBegOpschonen() {
    return api.get({
        action: "query",
        prop: "categories",
        clcategories: "Category:WikiKids:Beginnetje",
        titles: articletitle,
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId];
        if (typeof temp.categories !== 'undefined') {
            beg = true;
        }
    });
}

function getLinksOut() {
    return api.get({
        action: "query",
        prop: "links",
        titles: articletitle,
        pllimit: "5000",
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId];
        if (typeof temp.links !== 'undefined') {
            linksopartikel = temp.links.length;
            getDP();
        } else {
            linksopartikel = 0;
        }
    });
}

function getLinksIn() {
    api.get({
        action: "query",
        prop: "linkshere",
        titles: articletitle,
        lhnamespace: "0",
        lhlimit: "50",
        lhshow: "!redirect",
    }).then(function (data) {
        temp = data.query.pages[articleId];
        if (typeof temp.linkshere === 'undefined') {
            document.getElementById("gadget-hint-geenlinks").style.display = "";
        }
    });
}

function checkIfChecked() {
    valuechecked = mw.util.getParamValue('opschonengecontroleerd');
    if (valuechecked === "Done") {
        document.getElementById("gadget-hint-gecontroleerd").style.display = "";
    } else {
        getJSONTextOpschonen().done(function (text) {
            for (var i = 0, iLen = text.length; i < iLen; i++) {
                if (text[i].N == articletitle) checkChecked = text[i]["D"];
            }
            if (checkChecked === "D") {
                document.getElementById("gadget-hint-gecontroleerd").style.display = "";
            }
        });
    }
}

function getDP() {
    api.get({
        action: "query",
        generator: "links",
        prop: "categories",
        titles: articletitle,
        gpllimit: "5000",
        cllimit: "5000",
        clcategories: "Categorie:Wikikids:Doorverwijspagina",
    }).then(function (data) {
        temp = data.query.pages;
        for (const property in temp) {
            if (temp[property].categories) {
                console.log(temp[property].title);
                document.getElementById("gadget-hint-dp").style.display = "";
            }
        }
    });
}

function getExterneLinks() {
    api.get({
        action: "query",
        prop: "extlinks|categories",
        titles: articletitle,
        ellimit: "5000",
    }).then(function (data) {
        temp = data.query.pages;
        temp = temp[articleId].extlinks;
        if (typeof temp === 'undefined') {
        } else {
            var tempgetal = 0;
            var aantallinks = 0;
            while (typeof temp[tempgetal] !== 'undefined') {
                if (temp[tempgetal]["*"].startsWith("http:")) {
                    document.getElementById("gadget-hint-http").style.display = "";
                } else if (temp[tempgetal]["*"].startsWith("https:")) {
                	aantallinks +=1;
                } else {
                    document.getElementById("gadget-hint-vreemdelink").style.display = "";
                }
                tempgetal += 1;
            }
            if (beg === true) {
            	aantallinks -=6;
            } 
            if (aantallinks > 0) {
            	document.getElementById("gadget-hint-extlink").style.display = "";
            }
        }
    });
}

function changeInstellingen() {
    var instelling = document.getElementById("instellingen").style.display;
    if (instelling === 'none') {
        document.getElementById("instellingen").style.display = "";
        document.getElementById("maxoption").disabled = false;
    } else {
        document.getElementById("instellingen").style.display = 'none';
        document.getElementById("maxoption").disabled = true;
        document.getElementById("user").value = "";
        document.getElementById("startwith").value = "";
    }
}

function hulpGadgetOpschonen() {
    document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
    document.title = "Help - Opschonen - WikiKids";
    infotext = '<input type="checkbox" id="allepaginas" onclick="changeInstellingen();">Krijg willekeurige pagina\'s. <br>'
        + '<div id="instellingen">'
        + 'Gebruiker: <input type="text" id="user"><br>'
        + 'Alleen artikels die starten met: <input type="text" id="startwith"><br></div>'
        + 'Gecontroleerd: <select name="done" id="done">'
        + '<option value="notdone">Niet</option>'
        + '<option value="xdone" selected>Maakt niet uit</option>'
        + '<option value="done">Wel</option>'
        + '</select><br>'
        + 'Aantal: <select name="aantal" id="aantal">'
        + '<option value="100">100</option>'
        + '<option value="50" selected>50</option>'
        + '<option value="10">10</option>'
        + '<option value="0">0</option>'
        + '<option value="max" id="maxoption">Max</option>'
        + '</select>'
        + '<br><button onclick="getsettings()">Bekijk pagina\'s</button>'
        + ' Vragen? Laat het me weten';
    document.getElementById('bodyContent').innerHTML = terugnaaropschonen + infotext;
}

function getsettings() {
    var allepaginasl = document.getElementById('allepaginas').checked;
    var startwithl = document.getElementById('startwith').value;
    var userl = document.getElementById('user').value;
    var aantall = document.getElementById('aantal').value;
    var donel = document.getElementById('done').value;
    var url = 'https://wikikids.nl/Speciaal:Opschonen?';
    if (allepaginasl) {
    } else {
        url += 'allepaginas=x&';
    }
    if (startwithl) {
    	url += 'startwith=' + startwithl + '&';
    }
    if (donel === "done") {
        url += 'done=x&';
    } else if (donel === "notdone") {
        url += 'notdone=x&';
    }
    if (userl) {
        url += 'user=' + userl + '&';
    }
    url += 'aantal=' + aantall;
    window.location.href = url;
}

function statsOpschonen(text){
	var xaantal = {"totaal": 300}; 
	var opschonenuser = [];
	for (const x of text) { 
		if (x.D === "D") {
			xaantal.totaal += 1;
			if (x.U) {
				opschonenuser.push(x.U);
				if (xaantal[x.U]) {
					xaantal[x.U] += 1;
				} else {
					xaantal[x.U] = 1;
				}
			}
		}
	} 
	var aantalwikikidsartikelen = 5000;
	api.get({
	    action: "query",
	    meta: 'siteinfo',
	    siprop: 'statistics'
	}).then(function (ret) {
		aantalwikikidsartikelen = ret.query.statistics.articles;
		console.log('X', ret, aantalwikikidsartikelen);
		opschonenuser = removeDuplicates(opschonenuser);
	    document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
	    document.title = "Opschonen - WikiKids";
		var tobody = `<br> Er zijn totaal ${xaantal.totaal} artikelen gecontroleerd. Dat is ${Math.round((xaantal.totaal/aantalwikikidsartikelen) * 100 * 1000) / 1000}% van WikiKids. Hieronder staan alle gebruikers die minimaal een artikel hebben gecontroleerd. <ul>`;
		tobody += `<div style="background-color:#eeeeee; width:400px;height:18px;float:left;margin-right:5px;border:1px solid #bbb;"><div style="background-color:#119000;width:${(xaantal.totaal/aantalwikikidsartikelen) * 100 * 4}px;height:18px;"><div style="font-weight:bold;width:400px;text-align:center;height:18px;line-height:18px;color:black;"><abbr title="7&nbsp;%"></abbr>${Math.round((xaantal.totaal/aantalwikikidsartikelen) * 100 * 1000) / 1000} / 100%</div></div></div><br>`;
		console.log(aantalwikikidsartikelen);
		for (const x of opschonenuser) {
			tobody += '<li>' + x + ' (aantal: ' + xaantal[x] + ')</li>';
		}
		tobody += '</ul>';
		document.getElementById('bodyContent').innerHTML = terugnaaropschonen + tobody;
	});
}
	
function removeDuplicates(arr) {
    let unique = arr.reduce(function (acc, curr) {
        if (!acc.includes(curr))
            acc.push(curr);
        return acc;
    }, []);
    return unique;
}

if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "Opschonen") {
	var terugnaaropschonen = '<div id="contentSub"><span class="subpages">&lt; <a href="/Speciaal:Opschonen" title="Speciaal:Opschonen">Speciaal:Opschonen</a></span></div>';
    document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Script gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></li>';
    var isOpgeslagenOpschonen = false;
    window.onbeforeunload = function() {
		if (!isOpgeslagenOpschonen) {
			return 'Weet je zeker dat je deze pagina wilt verlaten?';
		}
		return undefined;
	};
    if (document.URL === "https://wikikids.nl/Speciaal:Opschonen?action=help") {
        var infotext;
        hulpGadgetOpschonen();
    } else if (mw.util.getParamValue('action') === 'stats') {
    	getJSONTextOpschonen().done(function (text) {
            statsOpschonen(text);
        });
    } else {
        showAantal = parseInt(mw.util.getParamValue('aantal'));
        showUser = mw.util.getParamValue('user');
        showStartwith = mw.util.getParamValue('startwith');
        var tussenvoegsel;
        document.getElementById('bodyContent').innerHTML = "Laden... krijg je niets te zien? Maak hier dan een melding van bij mij met deze url:" + document.URL;
        var edit_token;
        var tempgetal;
        var temp;
        var Artikelr = [];
        var Artikeln = [];
        var Artikellink = [];
        var getUser;
        var Opmerkingtemp = [];
        var Opmerkingtempx;
        var Knop1x = [];
        var Knop3x = [];
        var Opmerking = [];
        var tabel;
        var eindetabel;
        var highArtikelr;
        var showAantal;
        var gedaan = [];
        var vorigeuser = [];
        var linkextra = [];
        var getKnop3;
        var getKnop1;
        var randomNumber;
        var showAll;
        var showSkipDone;
        var showSkipSkipped;
        var showDone;
        var addarticle;
        var paginalink;
        var checkChecked;
        var allNummer = 1;
        var showFrom;
        var showTo;
        var lengtetext;
        var showMax;
        var Waardes = { "Radio1": [], "Radio3": [], "Opmerking": [], "Opmerkingdis": []};
        //varvar
        getJSONTextOpschonen().done(function (text) {
            showProjectOpschonen(text);
        });
    }
}

var showHints = mw.util.getParamValue('projectopschonen');
if (showHints) {
    document.getElementById("footer-places").innerHTML += '<li id="footer-places-gadget-opschonen">Hints zijn gemaakt door <a href="/User:Rots61" title="Gebruiker:Rots61">Rots61</a></li>';
    //varvar
    var articletitle = mw.config.get('wgPageName');
    var articleId = mw.config.get('wgArticleId');
    var beg = false;
    var isDP = false; 
    var link = 0;
    var link2 = "";
    var temp;
    var temp2;
    var linkhttp = 0;
    var redirects = "";
    var Hints = "";
    var htmltext;
    var Nummer;
    var CheckChecked;
    var articlesize;
    var linksopartikel;
    var valuechecked;
    var woordenschat = false;
    startHintsOpschonen();
}

if ((mw.config.get('wgNamespaceNumber') === 0) && (mw.config.get('wgArticleId') > 1)) {
    document.getElementById("mw-panel").innerHTML += `<nav id="p-op" style="background-color: #1D9CB9" class="vector-menu vector-menu-portal portal"
    aria-labelledby="p-op-label" role="navigation">
    <h3 id="p-op-label">
        <span>Opschonen</span>
    </h3>
    <div class="body vector-menu-content" style="border-bottom: 1px solid #1D9CB9">
        <ul class="vector-menu-content-list">
            <li>
                <a href="https://wikikids.nl/Speciaal:Opschonen">Speciaal:Opschonen</a>
            </li>
            <li>
            	<a href="https://wikikids.nl/${mw.config.get('wgPageName')}?projectopschonen=x">Opschoon hints</a>
            </li>
            <li>
                <button onclick="fromPageaddPageOpschonen()">Gecontroleerd</button>
            </li>
        </ul>
    </div>
</nav>`;
}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=Gebruiker:Rots61/Gadget-Opschonen.js&oldid=779234"