Benutzer:ParaDox/monobook/countTableRows.js
aus Wikipedia, der freien Enzyklopädie
< Benutzer:ParaDox | monobook
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
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
// Siehe Diskussionsseite:
// http://de.wikipedia.org/wiki/Benutzer_Diskussion:ParaDox/monobook/countTableRows.js
window.addEventListener('load', function(event) {
/* ============================== */
function __ONLOAD() {} // DUMMY
var thisTabID = 'CountTableRowsTab';
var thisLinkText = 'T';
var thisVersion = ' (V0.01 by "de:user:ParaDox" 2009-12-28)';
var thisScript = '[[:de:user:ParaDox/monobook/countTableRows.js]]';
var textAreaObj;
if ( document.getElementById('ca-edit') ) {
var wikiTab = document.getElementById('ca-edit');
} else if ( document.getElementById('ca-viewsource') ) {
var wikiTab = document.getElementById('ca-viewsource');
} else {
return;
}
if ( document.getElementById(thisTabID) ) {
alert(thisScript + thisVersion + '\nFehler: ID "' + thisTabID + '" schon vorhanden!')
return;
}
/* ============================== */
function makeTab() {
// geclonten Tab und Link initialisieren
var cloneTab = wikiTab.cloneNode(true);
cloneTab.id = thisTabID;
cloneTab.className = '';
cloneTab.style.marginRight = '1.5pt';
var cloneTab_link = cloneTab.firstChild;
cloneTab_link.accessKey = '';
cloneTab_link.title = 'Zähle Tabellen-Reihen' + thisVersion;
cloneTab_link.href = '#';
cloneTab_link.style.paddingLeft = '2.25pt';
cloneTab_link.style.paddingRight = '1.50pt';
cloneTab_link.style.backgroundColor = '#FFFFBB';
// LinkText
cloneTab_link.firstChild.nodeValue = thisLinkText;
// Tab ins DOM hinter letztem Tab anfügen
wikiTab.parentNode.appendChild(cloneTab);
}
/* ============================== */
function appendTextarea(pRows, pStr) {
var textContainer = document.createElement('TEXTAREA');
document.getElementsByTagName('H1')[0].appendChild(textContainer);
textContainer.style.width = '100%';
textContainer.rows = String(pRows);
textContainer.value = pStr;
return textContainer;
}
/* ============================== */
function clickListener() {
document.addEventListener('click', function(event) {
if ( event.target.parentNode.id == thisTabID ) {
event.stopPropagation();
event.preventDefault();
displayTableSummary();
}
}, true);
}
/* ============================== */
function displayTableSummary() {
var jetzt = (new Date()).toLocaleString(); jetzt = jetzt.substr(0, jetzt.length - 3);
var temp, i;
var tempArr = new Array();
var result = '';
var tableFound = 0;
var lessThan3Str = '';
var tableArr = document.getElementById('bodyContent').getElementsByTagName('table');
for ( var tbl=0; tbl<tableArr.length; tbl++ ) {
var thisNode = tableArr[tbl];
tableFound++;
var tableRowArr = tableArr[tbl].getElementsByTagName('tr');
if ( tableRowArr.length > 3 ) {
var tableRowCount = 0;
for ( var row=0; row<tableRowArr.length; row++ ) {
var rowCellArr = tableRowArr[row].getElementsByTagName('td');
if ( rowCellArr.length > 0 ) {
rowCellArr[0].innerHTML = '<span style="background-color:#FFFF00"><small>[T'
+ String(tableFound) + ' Z' + String(++tableRowCount)
+ ']</small></span> ' + rowCellArr[0].innerHTML;
}
}
result += '* Tabelle ' + String(tbl+1) + ' hat ' + tableRowCount + ' Zeilen.\n';
} else {
lessThan3Str += String(tbl+1) + ' ';
}
}
if ( lessThan3Str != '' ) result += '* Tabellen mit weniger als 3 Zeilen: '+ lessThan3Str + '\n';
var tableFound = String( tableFound > 0 ? tableFound : 'Keine' );
var tablePlural = tableFound > 1 ? 'Tabellen' : 'Tabelle';
var resultText = '* ' + tableFound + ' ' + tablePlural + ' gefunden am ' + jetzt + '\n';
if ( document.getElementById('lastmod') ) {
temp = document.getElementById('lastmod').innerHTML;
temp = temp.replace(/^ (.*)/, '$1');
temp = temp.replace(/(.*)\.$/, '$1');
resultText += '* ' + temp + '\n';
} else if ( document.getElementById('contentSub') ) {
temp = document.getElementById('contentSub').innerHTML;
tempArr = temp.match(/.*(Zeitpunkt der Bearbeitung:.+?) durch.*/);
if ( tempArr != null ) {
temp = tempArr[1].replace(/^Zeitpunkt der Bearbeitung: (\d\d:\d\d), (.*)/, 'SEITEN-VERSION VOM: $2 $1');
resultText += '** ' + temp + '\n';
}
}
resultText += result;
var Zeilen = resultText.split('\n');
if ( textAreaObj ) {
textAreaObj.rows = String(Zeilen.length - 1);
textAreaObj.value = resultText;
} else {
textAreaObj = appendTextarea(Zeilen.length - 1, resultText);
}
}
/* ============================== */
function __INIT() {} // DUMMY
makeTab();
clickListener();
}, false);