MediaWiki:Votecounter.js

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.

  • Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
  • Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
  • Internet Explorer / Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
  • Opera: натисніть Ctrl-F5
function votecountadmin() {
	var a = 0;
	var b = 0;
	var results = [];
	var trunc;
	for (j=0; $("h3").eq(j).find("span").attr("id") !== undefined; j++) {
		results[a] = 0;
		results[a+1] = 0;
		results[a+2] = 0;
		for (i=0; $("h4").eq(a).nextUntil("h4").children("li").eq(i).html() !== undefined; i++) 
			results[a] = i+1;
		$("td.support").eq(j).text(results[a]);
		for (i=0; $("h4").eq(a+1).nextUntil("h4").children("li").eq(i).html() !== undefined; i++) 
			results[a+1] = i+1;
		$("td.oppose").eq(j).text(results[a+1]);
		for (i=0; $("h4").eq(a+2).nextUntil("h4").children("li").eq(i).html() !== undefined; i++) 
			results[a+2] = i+1;
		$("td.neutral").eq(j).text(results[a+2]);
		results[a+3] = results[a]/(results[a]+results[a+1])*100;
		trunc = results[a+3].toFixed(2);
		$("td.percent").eq(j).text(trunc);
		b = $("h3").eq(j).nextUntil("h3", "h4").length + b;
		a = b;
	}
}
function votecountbureaucrat() {
	var a = 0;
	var b = 0;
	var results = [];
	var trunc;
	for (j=0; $("h3").eq(j+1).find("span").attr("id") !== undefined; j++) {
		results[a] = 0;
		results[a+1] = 0;
		results[a+2] = 0;
		for (i=0; $("h4").eq(a).nextUntil("h4").children("li").eq(i).html() !== undefined; i++) 
			results[a] = i+1;
		$("td.support").eq(j).text(results[a]);
		for (i=0; $("h4").eq(a+1).nextUntil("h4").children("li").eq(i).html() !== undefined; i++) 
			results[a+1] = i+1;
		$("td.oppose").eq(j).text(results[a+1]);
		for (i=0; $("h4").eq(a+2).nextUntil("h4").children("li").eq(i).html() !== undefined; i++) 
			results[a+2] = i+1;
		$("td.neutral").eq(j).text(results[a+2]);
		results[a+3] = results[a]/(results[a]+results[a+1])*100;
		trunc = results[a+3].toFixed(2);
		$("td.percent").eq(j).text(trunc);
		try {
			for(i=1; ($("h4").eq(b+1).children("span").eq(1).attr("id")).search(/За/i) == -1; i++) 
				b = i+a;
		} catch (e) {
			// TypeError: Cannot read property 'search' of undefined (id not present)
			mw.log.error(e);
			return;
		}
		b++;
		a = b+2;
	}
}
function votecountarbitr() {
	var a = 0;
	var b = 0;
	var results = [];
	var trunc;
	var skin;
	if (mw.config.get("skin") == "vector-2022")
		skin = 0;
	else
		skin = 1;
	for (j=0; $("h2").eq(j+skin).find("span")[3] !== undefined; j++) {
		a = 3*j;
		b = 2*j;
		results[a] = 0;
		results[a+1] = 0;
		results[a+2] = 0;
		for (i=0; $("h3").eq(b).nextUntil("h3").children("li").eq(i).html() !== undefined; i++) 
			results[a] = i+1;
		$("td.support").eq(j).text(results[a]);
		for (i=0; $("h3").eq(b+1).nextUntil("h3").children("li").eq(i).html() !== undefined; i++) 
			results[a+1] = i+1;
		$("td.oppose").eq(j).text(results[a+1]);
		results[a+2] = results[a]/(results[a]+results[a+1])*100;
		trunc = parseFloat(results[a+2].toFixed(2));
		$("td.percent").eq(j).text(trunc);
		if (trunc >= 75)
			$("td.percent").eq(j).css("background", "#33ff33");
		else if (trunc >=70 && trunc < 75)
			$("td.percent").eq(j).css("background", "#ffff33");
		else
			$("td.percent").eq(j).css("background","#ff3333");
	}
}
var PageName = mw.config.get( 'wgPageName' );
if(PageName === "Вікіпедія:Заявки_на_позбавлення_прав_адміністратора" || PageName === "Вікіпедія:Заявки_на_права_адміністратора")
	$(votecountadmin);
if(PageName === "Вікіпедія:Бюрократи")
	$(votecountbureaucrat);
if(PageName.search(/Вікіпедія:Вибори_арбітрів\/\d{4}(_\(довибори\))?\/Голосування\/Попередні_результати/) > -1)
	$(votecountarbitr);