Benutzer:Hgzh/js/lintTableHelp.js

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
 // <nowiki>
 // include the following line in your script file (without //):
 // mw.loader.load('https://de.wikipedia.org/w/index.php?title=Benutzer:Hgzh/js/lintTableHelp.js&action=raw&ctype=text/javascript');

 (function(mw,$){
 'use strict';

 letLINTPAGE={
 canonical:'LintErrors',
 selectorEntries:'.TablePager_col_title a:first-child',
 selectorHeader:'#mw-content-text table.mw-datatable thead tr',
 pages:[]
 };

 letAPI={
 checkTemplates:[
 'Vorlage:In Bearbeitung',
 'Vorlage:Du darfst nicht'
 ],
 msgError:'API-Abfrage fehlgeschlagen.'
 };

 letADDITION={
 classTimestamp:'lintTableHelp-timestamp',
 classRemarks:'lintTableHelp-remarks',
 textTimestamp:'Bearbeitet',
 textRemarks:'Hinweise',
 highlightPeriod:48,
 highlightCSS:{
 'font-weight':'bold',
 'color':'red'
 },
 list:[]
 };

 LINTPAGE.getPage=($line)=>{
 consttext=$line.text();

 if(!LINTPAGE.pages.includes(text)){
 LINTPAGE.pages.push(text);
 }
 };

 API.request=()=>{
 API.handle=newmw.Api();

 API.handle.get({
 action:'query',
 titles:LINTPAGE.pages.join('|'),
 prop:'revisions|templates',
 rvprop:'timestamp',
 tlnamespace:10,
 tltemplates:API.checkTemplates.join('|'),
 formatversion:2
 })
 .then(API.processResult)
 .fail(API.processError);
 };

 API.processResult=(result)=>{
 result.query.pages.forEach((page,i)=>{
 letinfo={
 title:page.title,
 timestamp:page.revisions[0].timestamp,
 templates:[]
 };

 if(typeofpage.templates==='object'){
 page.templates.forEach((template,i)=>{
 info.templates.push(template.title.replace('Vorlage:',''));
 });
 }

 ADDITION.list.push(info);
 });

 ADDITION.apply();
 };

 API.processError=()=>{
 mw.notify(API.msgError);
 };

 ADDITION.formatTimestamp=(timestamp)=>{
 constts=newDate(timestamp);
 constnow=newDate();
 const$content=$('<span>');

 consttext=ts.toLocaleTimeString('de-DE',{
 day:'2-digit',
 month:'2-digit',
 year:'2-digit',
 hour:'2-digit',
 minute:'2-digit'
 });
 constdiff=Math.abs(ts.getTime()-now.getTime())/36e5;
 if(diff<ADDITION.highlightPeriod){
 $content.css(ADDITION.highlightCSS);
 }
 $content.text(text);

 return$content;
 };

 ADDITION.applySingle=($line)=>{
 ADDITION.list.forEach((entry,i)=>{
 if($line.text()===entry.title){
 const$row=$line.parents('tr');
 $('<td>')
 .addClass(ADDITION.classTimestamp)
 .append(ADDITION.formatTimestamp(entry.timestamp))
 .appendTo($row);

 $('<td>')
 .addClass(ADDITION.classRemarks)
 .text(entry.templates.join(', '))
 .appendTo($row);

 return;
 }
 });
 };

 ADDITION.apply=()=>{
 LINTPAGE.$entries.each(function(){
 ADDITION.applySingle($(this));
 });

 const$header=$(LINTPAGE.selectorHeader);
 $('<th>').text(ADDITION.textTimestamp).appendTo($header);
 $('<th>').text(ADDITION.textRemarks).appendTo($header);
 };

 constinit=()=>{
 LINTPAGE.$entries=$(LINTPAGE.selectorEntries);
 if(!LINTPAGE.$entries.length){
 return;
 }

 LINTPAGE.$entries.each(function(){
 LINTPAGE.getPage($(this));
 });

 API.request();
 };

 if(mw.config.get('wgCanonicalSpecialPageName')===LINTPAGE.canonical){
 $(mw.loader.using(['mediawiki.api'],()=>{
 init();
 }));
 }

 }(window.mediaWiki,window.jQuery));

 // </nowiki>
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Benutzer:Hgzh/js/lintTableHelp.js&oldid=241356125"