Przejdź do zawartości

Wikipedysta:Persino/Gadget-StronicowyParser.js/Tryb ciemny.js

Z Wikibooks, biblioteki wolnych podręczników.

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5.
  • Opera: Naciśnij klawisze Ctrl+F5.
StronicowyParser.TrybCiemnyIJasny=async function(rodzic,tab_promise){
	await StronicowyParser.muteks.zablokuj();
	let tryb_jasny=(((rodzic==document)||(rodzic==null))?($('#mw-content-text .mw-parser-output .uruchom_tryb_jasny')):($(rodzic).find('.uruchom_tryb_jasny')));
	let tryb_ciemny=(((rodzic==document)||(rodzic==null))?($('#mw-content-text .mw-parser-output .uruchom_tryb_ciemny')):($(rodzic).find('.uruchom_tryb_ciemny')));
	async function Tryby(tryb_jasnego_lub_ciemnego,klasa_oznaczenie_jasnego_lub_ciemnego,tab_promise){
		await StronicowyParser.muteks.zablokuj();
		if((tryb_jasnego_lub_ciemnego!==null)&&(tryb_jasnego_lub_ciemnego.length>0)){
			for(let i=0;i<tryb_jasnego_lub_ciemnego.length;++i){
				let element=tryb_jasnego_lub_ciemnego[i];
				let klasy_jasnego_lub_ciemnego=element.classList;
				for(let k=0;k<klasy_jasnego_lub_ciemnego.length;++k){
					let klasa_trybu_jasnego_lub_ciemnego=klasy_jasnego_lub_ciemnego[k];
					if((klasa_trybu_jasnego_lub_ciemnego!=klasa_oznaczenie_jasnego_lub_ciemnego)&&(/^tryb_/g.test(klasa_trybu_jasnego_lub_ciemnego))){
						async function UruchomTrybJakisTryb(){
							if(StronicowyParser.muteks.LiczbaBlokat()>0){return;}
							await StronicowyParser.muteks.zablokuj();
							let tryby_klasy_ciemnego=$('#mw-content-text .mw-parser-output .tryb_ciemny');
							if((tryby_klasy_ciemnego!==null)&&(tryby_klasy_ciemnego.length>0)){
								for(let j=0;j<tryby_klasy_ciemnego.length;++j){
									let div_ciemny=tryby_klasy_ciemnego[j];
									let klasy_trybu_ciemny=div_ciemny.classList;
									for(let k=0;k<klasy_trybu_ciemny.length;++k){
										let klasa_trybu_ciemny=klasy_trybu_ciemny[k];
										if((klasa_trybu_ciemny!="tryb_ciemny")&&(/^tryb_/g.test(klasa_trybu_ciemny))){
											if(klasa_trybu_ciemny==klasa_trybu_jasnego_lub_ciemnego){
												if(klasa_oznaczenie_jasnego_lub_ciemnego=='uruchom_tryb_jasny'){
													let a=element.querySelector('a');
													a.setAttribute('href',"#tryb_ciemny");
													a.innerHTML="Tryb ciemny";
													$(element).removeClass('uruchom_tryb_jasny').addClass('uruchom_tryb_ciemny');
													element.removeEventListener("click",UruchomTrybJakisTryb, false);
													Tryby($(element),'uruchom_tryb_ciemny');
												}else if(klasa_oznaczenie_jasnego_lub_ciemnego=='uruchom_tryb_ciemny'){
													let a=element.querySelector('a');
													a.setAttribute('href',"#tryb_jasny");
													a.innerHTML="Tryb jasny";
													$(element).removeClass('uruchom_tryb_ciemny').addClass('uruchom_tryb_jasny');
                                                    element.removeEventListener("click",UruchomTrybJakisTryb, false);
													Tryby($(element),'uruchom_tryb_jasny');
												}
												if(klasa_oznaczenie_jasnego_lub_ciemnego=='uruchom_tryb_ciemny'){
													if(!$(div_ciemny).hasClass('ciemny')){
														div_ciemny.classList.add('ciemny');
													}
												}else if(klasa_oznaczenie_jasnego_lub_ciemnego=='uruchom_tryb_jasny'){
													if($(div_ciemny).hasClass('ciemny')){
														div_ciemny.classList.remove('ciemny');
													}
												}
												break;
											}
										}
									}
								}
							}
							StronicowyParser.muteks.odblokuj();
						}
						element.addEventListener("click",UruchomTrybJakisTryb, false);
						break;
					}
				}
			}
		}
		StronicowyParser.muteks.odblokuj();
		if(tab_promise){tab_promise.zwolnij();}
	}
	if(tab_promise){tab_promise.wygeneruj(1);};Tryby(tryb_jasny,'uruchom_tryb_jasny',tab_promise);
	if(tab_promise){tab_promise.wygeneruj(1);};Tryby(tryb_ciemny,'uruchom_tryb_ciemny',tab_promise);
    StronicowyParser.muteks.odblokuj();
    if(tab_promise){tab_promise.zwolnij();}
}
StronicowyParser.TrybCiemnyIJasny(document);