Gebruiker:Rots61/Gadget-Opschonen.js

Uit Wikikids
Naar navigatie springen Naar zoeken springen

Let op! Nadat je de veranderingen hebt opgeslagen, moet je de cache van je browser nog legen om ze daadwerkelijk te zien.

Mozilla (incl. Firefox) ctrl-shift-r
IE ctrl-f5
Opera f5
Safari cmd-r
Konqueror f5
/* jshint sub:true maxerr:100000 */
function showProject (text) {
	document.getElementsByTagName("h1")[0].textContent = "Speciaal:Opschonen";
	document.title = "Opschonen - WikiKids";
	tempgetal = 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 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>';
	tabel = "Deze artikels kun jij controleren. Als je 100 artikels wilt, pas je de url aan naar 'https://wikikids.nl/Speciaal:Opschonen?aantal=100'. De eerste 4 zijn op dit moment voor iedereen hetzelfde. Pas deze vier niet aan!"
	+ '<br>Dit is nog geen uiteindelijke versie van de pagina, pagina\'s die je nu afvinkt, worden niet afgevinkt op de echte lijst. Opslaan duurt een paar seconden, wacht totdat je ziet dat het is aangepast.'
	+ '<br><input type="text" id="addarticle" name="addarticle" disabled> <button onclick="addArticletolist()" value="X">Voeg toe</button><small><small>(Ja hierachter staat "undefined", dat kan ik niet weghalen.)</small></small> '
	+ '<table class="wikitable"> <tbody> <tr> <th width="1"><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>';
	showAantal = parseInt(mw.util.getParamValue( 'aantal' ));
	if (showAantal) {
		showAantal = showAantal + 1;
	} else {
		showAantal = 11; 
	}
	while (tempgetal !== showAantal) {
		Artikeln[tempgetal] = getRandomNumber(text, tempgetal);
		Artikelr[tempgetal] = text[Artikeln[tempgetal]]["N"];
		if (text[Artikeln[tempgetal]]["D"]) {
			gedaan[tempgetal] = " disabled"; 
			text[Artikeln[tempgetal]]["T"] = "&nbsp;";
			Knop1x[tempgetal] = "";
			Knop2x[tempgetal] = "";
			Knop3x[tempgetal] = '<td colspan="3" style="color:green; font-weight: bold;">Gedaan</td>';
		} else {
			gedaan[tempgetal] = "";
			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] + '" 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>';
		tempgetal += 1;
	}
	eindetabel += '</tbody></table> <button onclick="startIT()">Opslaan</button>';
	document.getElementById('bodyContent').innerHTML = tabel + eindetabel;
	mw.notify("Welkom!");
}

function Change1(getal){
	document.getElementById('Thema' + getal).disabled = true;
	document.getElementById('Opmerking' + getal).disabled = false;
	Thematemp[getal] = document.getElementById('Thema' + getal).value;
	document.getElementById('Thema' + getal).value = "";
}

function Change2(getal){
	Thematempx = document.getElementById('Thema' + getal).value;
	Opmerkingtempx = document.getElementById('Opmerking' + getal).value;
	document.getElementById('Thema' + getal).disabled = false;
	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){
	document.getElementById('Thema' + getal).disabled = true;
	document.getElementById('Opmerking' + getal).disabled = true;
	Thematemp[getal] = document.getElementById('Thema' + getal).value;
	Opmerkingtemp[getal] = document.getElementById('Opmerking' + getal).value;
	document.getElementById('Thema' + getal).value = "";
	document.getElementById('Opmerking' + getal).value = "";
}

function startIT() {
getText().done( function ( 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 {
						delete text[Artikeln[tempgetal]];
					}
				} 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(text);
});
}

function getText() {
	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;
		return JSON.parse(text["*"]);
	});
}

function editpage(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 op de OP van Rots61", { autoHide: false });
				}
				console.log(data.edit);
				document.getElementById('bodyContent').innerHTML = "Opslaan gelukt. Herlaad de pagina om hem opnieuw te gebruiken. ";
			});
	});
}

function getRandomNumber (text, nummer) {
	randomNumber = Math.floor(Math.random() * text.length) +1 ;
	switch (nummer) {
		case 1: 
			randomNumber = 23005; 
			break;
		case 2:
			randomNumber = 6303;
			break;
		case 3: 
			randomNumber = 23453;
			break;
		case 4:
			randomNumber = 28811;
			break;
		case 5:
			randomNumber = 4292;
			break;
		default:
	}
	if (text[randomNumber]) {
		return randomNumber;
	} else {
		console.log("Y:" + randomNumber);
		return getRandomNumber(text);
	}
}

if (mw.config.get('wgNamespaceNumber') === -1 && mw.config.get('wgTitle') === "Opschonen") { 
	var text;
	var api = new mw.Api();
	var edit_token;
	var tempgetal;
	var temp;
	var Artikelr = [];
	var Artikeln = [];
	var Artikellink = [];
	var Thematemp = [];
	var Opmerkingtemp = [];
	var Thematempx;
	var Opmerkingtempx;
	var Knop1x = [];
	var Knop2x = [];
	var Knop3x = [];
	var Opmerking = [];
	var Thema = [];
	var tabel;
	var eindetabel;
	var highArtikelr;
	var showAantal;
	var gedaan = [];
	var vorigeuser = [];
	var getKnop3;
	var getKnop2;
	var getKnop1;
	var randomNumber;
	getText().done( function(text) {
		console.log(text);
		showProject(text);
		});
}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=Gebruiker:Rots61/Gadget-Opschonen.js&oldid=755651"