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
/*
	tbwlPage.js
	
* Project:  Toolbar Watchlist, Version: 0.1.1beta, Date: 2007-08-27
* Copyright (C) 2007 [[de:User:Revolus]] (revolus@web.de)
* http://www.gnu.org/copyleft/gpl.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE.
* See the GNU General Public License for more details.
	
Licence:
	You may redistribute this script either under the term of the GNU GPL
	or GNU FDL with no invariant sections. But either way, you have to
	accept the non-warranty clause as stated in the GNU GPL.
	
Uses
	libTBWL.js
	
Consts:
	cTBWL_Title_Page
	
Vars:
	vTBWL_Watchlist
	vTBWL_Page_Date
	vTBWL_Page_Headline
	
Funcs:
	TBWL_Page_Structure
	TBWL_EntryWrapper
	TBWL_ItemToHTML
	TBWL_ItemsToHTML
	TWBL_PageItem
	TBWL_Watchlist_Status
	TBWL_SetHeadline
	TBWL_AjaxCallback_Page
	TBWL_Initialize_Page
*/

var cTBWL_Title_Page = wgPageName+" - Wikipedia";
var vTBWL_Watchlist = false;
var vTBWL_Page_Date = "";
var vTBWL_Page_Headline = false;

var TBWL_Page_Structure = function(obj, p) {
	var difflen = obj.newlen-obj.oldlen;
	var aDate = p("Date") + '.' + p("Month") + '.' + p("FullYear");
	var aTime = p("Hours") + ':' + p("Minutes") + ':' + p("Seconds");
	var res = [
		0, ["Text", aDate, "TBWL_date"+(vTBWL_Page_Date==aDate ?" TBWL_same_date" :'') ],
		0, ["Space"],
		0, ["Node", "span", "TBWL_entry"],
			1, ["WPLink", "", "", obj.title, TBWL_LinkTitle(obj.ns, obj.title), "", "TBWL_title", ""],
			1, ["Text", " .. ", "TBWL_delim"],
			1, ["WPLink", "", "User", obj.user, TBWL_UserTitle(obj.user), "", "TBWL_user", ""],
			1, ["Text", " .. ", "TBWL_delim"],
			1, ["WPLink", "", "", obj.title, aTime, "diff=prev&oldid="+obj.revid, "TBWL_time", ""],
			1, ["Text", " .. ", "TBWL_delim"],
			1, ["Node", "span", "TBWL_len"],
				2, ["Text", String(obj.oldlen)+" ", "TBWL_oldlen"],
				2, ["Text", String(obj.newlen)+" ", "TBWL_newlen"],
				2, (difflen> 0) && ["Text", "+"+String(difflen),           "TBWL_difflen TBWL_diffplus"],
				2, (difflen==0) && ["Text",     String(difflen),           "TBWL_difflen TBWL_diffequal"],
				2, (difflen< 0) && ["Text", "−"+String(Math.abs(difflen)), "TBWL_difflen TBWL_diffminus"],
			1, ["Space"],
			1, ["Node", "span", "TBWL_flags"],
				2, (typeof(obj.bot)    != "undefined") && ["Text", "B", "TBWL_bot"],
				2, (typeof(obj["new"]) != "undefined") && ["Text", "N", "TBWL_new"],
				2, (typeof(obj.minor)  != "undefined") && ["Text", "K", "TBWL_minor"],
			1, ["Text", " .. ", "TBWL_delim"],
			1, ["Node", "span", "TBWL_comment"]
		];
	TBWL_CommentTitle(2, res, obj.comment||"ohne Kommentar", obj.ns, obj.title);
	vTBWL_Page_Date = aDate;
	return res;
	};
	
var TBWL_EntryWrapper = function(obj, index) {
	var res = TBWL_CreateElement.Node("li", "TBWL_entry");
	res.app("AddClass", "TBWL_entry_" + (index%2 == 0 ?"even" :"odd"));
	res.app("AddClass", "TBWL_entry_"+ String(index%3) +"mod3");
	res.app("AddClass", "TBWL_entry_"+ String(index));
	return res
	};
	
var TBWL_ItemToHTML = function(obj, index) {
	var res = TBWL_EntryWrapper(obj, index);
	if((typeof(obj.bot)=="undefined") && (typeof(obj["new"])=="undefined") && (typeof(obj.minor)=="undefined"))
		res.app("AddClass", "TBWL_noflags");
	if((typeof(obj.comment) == "undefined") || (obj.comment == ""))
		res.app("AddClass", "TBWL_nocomment");
	TBWL_StructureToHMTL(res, TWBL_PageItem(obj, index));
	return res;
	};
	
var TBWL_ItemsToHTML = function(obj) {
	var res = TBWL_CreateElement.Node("ul", "");
	res.id = "TBWL_entries";
	for(var i=0; i<obj.length; i++)
		res.appendChild(TBWL_ItemToHTML(obj[i], i));
	return res;
	};

var TWBL_PageItem = function(obj, index) {
	var p = function(n) {
		var i = obj.date["get"+n]();
		return(i<10 ?"0"+String(i) :String(i));
		};
	var res = TBWL_Page_Structure(obj, p);
	return res;
	};

var TBWL_Watchlist_Status = function(obj, fin) {
	vTBWL_Watchlist.parentNode.replaceChild(obj, vTBWL_Watchlist);
	};
	
var TBWL_SetHeadline = function(str) {
	vTBWL_Page_Headline.replaceChild(TBWL_CreateElement.Text(str, "TBWL_H1"), vTBWL_Page_Headline.firstChild);
	};
	
var TBWL_AjaxCallback_Page = function(obj) {
	switch(typeof obj) {
		case "number" : switch(obj) {
			case(1): TBWL_SetHeadline("(1) Anfrage wird gesendet…", "TBWL_H1"); break;
			case(2): TBWL_SetHeadline("(2) Warte auf Antwort…", "TBWL_H1"); break;
			case(3): TBWL_SetHeadline("(3) Erhalte Anwort…", "TBWL_H1"); break;
			case(4): TBWL_SetHeadline("Verbesserte Beobachtungsliste", "TBWL_H1"); break;
			
			case(0): TBWL_Watchlist_Status(TBWL_CreateElement.Text("Die Beobachtungsliste enthält keine Einträge")); break;
			default: TBWL_Watchlist_Status(TBWL_CreateElement.Text("Fehler-Nummer: "+String(obj))); break;
			}; break;
		case "number" : if(obj>=100) TBWL_Watchlist_Status(TBWL_CreateElement.Text(obj, "TBWL_HTTP")); break;
		case "boolean": TBWL_Watchlist_Status(TBWL_CreateElement.Text("Fehlerhafte Antwort", "TBWL_WrongAnswer")); break;
		case "object" : TBWL_Watchlist_Status(TBWL_ItemsToHTML(obj)); break;
		};
	};
	
var TBWL_Initialize_Page = function() {
	vTBWL_Page_Headline = document.getElementsByTagName("h1")[0];
	TBWL_SetHeadline("(0) Initialisiere…", "TBWL_H1");
	var e = document.getElementById("bodyContent");
	var f = e.getElementsByTagName("p");
	e.removeChild(f[1]);
	vTBWL_Watchlist = f[0];
	document.title = cTBWL_Title_Page;
	};
	
if((wgNamespaceNumber == -1) && (wgTitle == "TBWL")) {
	vTBWL_Addons.unshift("TBWL_Initialize_Page");
	vTBWL_AjaxCallback.push("TBWL_AjaxCallback_Page");
	cTBWL_Dorequest = true;
	};

TBWL_RegisterAddon("Special:TBWL", "tbwlPage");