Zum Inhalt springen

Benutzer:SpBot/TAXman-tool-dev.js

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 8. September 2008 um 09:43 Uhr durch SpBot (Diskussion | Beiträge) (AZ: Die Seite wurde neu angelegt.). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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
// for [[Benutzer:TAXman/Gemeinschaftsseite]]
// //könnte etwas Refactoring vertragen
//
// <nowiki>
workPage = "Benutzer:Euku/neue_Anfragen";
requestPage = "Benutzer:Euku/neue_Einträge";

// creates a new attribute
// e.g. newAttrib("href", "bla") returns
//     href="bla" as an attribute for the <a>-tag
function newAttrib(name, attrib) {
   var tmpAttrib = document.createAttribute(name);
   tmpAttrib.nodeValue = attrib;
   return tmpAttrib;
}

function AmIin() {
   // load user list
   var rawText = loadFile('Benutzer:Euku/alle Benutzer');
   if (!rawText) {
   	alert("Ein Fehler ist aufgetreten. Melde es bitte Benutzer:Euku");
   	return;
   }
   var userNameArray = rawText.split('\n');
   for (i in userNameArray)
       if (wgUserName == userNameArray[i])
           return true;
   return false;
}

function AddMeToThisList() {
   if (AmIin)
       alert("Du bist bereits in der Liste eingetragen. Normalerweise wird diese Aktion nun abgebrochen, doch dies ist ein Test...")
   userComment = prompt("Hier kannst du einen Kommentar zu dir abgeben. z. B. wenn du im Vorstand von Wikimedia bist, gibst du 'Wikimedia Deutschland' ein; ansonsten leer lassen.", "");
   if (userComment == null) return; // Abgebrochen
   tellUserToWait();

   // concat the string to save
   addTextAndSavePage('{{Benutzer:Euku/neuer Benutzer|Name=' + wgUserName + '|Kommentar=' + userComment + '|Zeit=~~~~~}}', "füge mich selbst hinzu");
}

// add hidden iframe, add text and save it
function addTextAndSavePage(newText, comment) {
  // get a token
  xmlHttp = null;
  if (typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); }
  if (!xmlHttp) {
     try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
     catch(e) {
         try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
         catch(e) { throw 'Konnte keinen XMLHttpRequest erstellen. Breche ab.'; }
     }
  }
  if (xmlHttp) {
     xmlHttp.open('GET', 'http://de.wikipedia.org/w/api.php?action=query&prop=info&intoken=edit&titles=' + requestPage + '&format=xml', false);
     xmlHttp.send(null);
  }
  rawXML = xmlHttp.responseXML;

  // get information
  var token = rawXML.getElementsByTagName("page")[0].getAttribute("edittoken");
  var section=0;
  var basetimestamp = rawXML.getElementsByTagName("page")[0].getAttribute("touched");
  var oldText = loadFile(requestPage);

  // save it
  xmlHttp = null;
  // Mozilla, Opera, Safari and Internet Explorer 7
  if (typeof XMLHttpRequest != 'undefined') {
      xmlHttp = new XMLHttpRequest();
  }
  if (!xmlHttp) {
    // <= Internet Explorer 6
    try {
        xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
            xmlHttp  = null;
        }
    }
  }
  var parm = 'action=edit&title=' + encodeURI(requestPage) + '&section=' + section +
     '&basetimestamp=' + basetimestamp + '&token=' + token + '&summary=' + encodeURIComponent(comment) +
     '&text='+encodeURIComponent(oldText + "\n" + newText);
  xmlHttp.open("POST", 'http://de.wikipedia.org/w/api.php?action=edit', true);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("title", encodeURI(requestPage));
  xmlHttp.setRequestHeader("section", section);
  xmlHttp.setRequestHeader("basetimestamp", basetimestamp);
  xmlHttp.setRequestHeader("token", token);
  xmlHttp.setRequestHeader("summary", encodeURI(comment));
  xmlHttp.setRequestHeader("text", encodeURI(oldText + "\n" + newText));
  xmlHttp.setRequestHeader("Content-length", parm.length);
  xmlHttp.setRequestHeader("Connection", "close");
  xmlHttp.onreadystatechange = function() {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200 && xmlHttp.responseText) {
       // load current page again
       xmlHttp.abort();
       window.location.href = wgServer + '/wiki/' + workPage;
    }
  };
  xmlHttp.send(parm);
}

function loadFile(file) {
     xmlHttp = null;
     if (typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); }
     if (!xmlHttp) {
        try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
        catch(e) {
            try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
            catch(e) { throw 'Konnte keinen XMLHttpRequest erstellen. Breche loadFile ab.'; }
        }
     }
     if (xmlHttp) {
        xmlHttp.open('GET', 'http://de.wikipedia.org/w/index.php?title='+ file +'&action=raw&ctype=text/javascript&dontcountme=s', false);
        xmlHttp.send(null);
        return (xmlHttp.responseText);
     }
     return false;
 }

function saveACKForm() {
     var confirmed = document.getElementById('confirmed').value;
     var comment = document.getElementById('comment').value;
     if (confirmed == wgUserName) {
         alert("[[Cogito ergo sum]]: Du kannst dich nicht selbst bestätigen!");
         return;
     }
     tellUserToWait();
     addTextAndSavePage('{{Benutzer:Euku/neue Bestätigung|Bestätiger=' + wgUserName + '|Bestätigter=' + confirmed +
        '|Kommentar=' + comment + '|Zeit=~~~~~}}', "Bestätige [[Benutzer:" + confirmed + "|" + confirmed + "]]");
}

function tellUserToWait() {
   // tell the user to wait
   document.getElementById('no-gadget-active').innerHTML = 'bitte warten ... ';
   var newElement = document.createElement("img");
       newElement.setAttributeNode(newAttrib("src", "/media/wikipedia/commons/4/42/Loading.gif"));
       newElement.setAttributeNode(newAttrib("width", 18));
       newElement.setAttributeNode(newAttrib("id", "busyImg"));
       newElement.setAttributeNode(newAttrib("height", 18));
   document.getElementById("no-gadget-active").appendChild(newElement);
}

function showFormToACKsomeone() {
   tellUserToWait();
   if (!AmIin) {
       alert("Du bist noch nicht in der Liste eingetragen und damit nicht bestätigt. Du darfst noch nicht selber bestätigen. Benutze den oberen Link und warte bis du 3 Bestätigungen bekommst.")
       window.location.href = wgServer + '/wiki/' + workPage;
       return;
   }
   // load user list
   var rawText = loadFile('Benutzer:Euku/alle Benutzer');
   if (!rawText) {
        alert("Ein Fehler ist aufgetreten. Melde es bitte Benutzer:Euku!");
   	return;
   }
   
   var userNameArray = rawText.split('\n');
   var usersToConfirm = '<optgroup label="0-9">';
   var currentLetter = "0-9";
   for (var userCounter in userNameArray) {
   	var tmpUser = userNameArray[userCounter];
   	// new header?
   	if ((currentLetter == "0-9") && (tmpUser[0] == "A")) {
   	    currentLetter = "A";
   	    usersToConfirm += '</optgroup><optgroup label="A">';
   	}
   	else if ((currentLetter != "0-9") && (tmpUser[0] > currentLetter)) {
   	    currentLetter = tmpUser[0];
   	    usersToConfirm += '</optgroup><optgroup label="' + currentLetter + '">';
   	}
       usersToConfirm += '<option label="' + userNameArray[userCounter] + '">' + userNameArray[userCounter] + '</option>';
   }
   usersToConfirm += '</optgroup>';
   
   var formHTMLcode = '<table width="500" align="center" class="wikitable" id="ACKtable">'+
   '<tbody><tr><td>dein Benutzername</td><td width="150" id="myUserName">' + wgUserName +
   '</td></tr>'+
   '<tr><td>Wen möchtest du bestätigen?</td><td>'+
   '    <select id="confirmed" style="width: 100%;">' + usersToConfirm +
   '    </select>' +
   '</td></tr>'+
   '<tr><td>Kommentar zur Bestätigung<br/><small>vermeide Details, die die Identität offenlegen könnten</small></td><td>'+
   '<input type="text" maxlength="250" id="comment" title="hier auf Wunsch Kommentar eingeben" value="" maxlenght="250"/>'+
   '</td></tr>'+
   '<tr><td align="right" colspan="2"><b><a href="javascript:saveACKForm();">Speichern</a></b> <a href="javascript:startTAXmanPage();">Abbrechen</a></td></tr>'+
   '</tbody></table>';
   document.getElementById('no-gadget-active').innerHTML = formHTMLcode; //write form
}

function startTAXmanPage() {
   // ersetze den Hinweis und entferne den Edit-Knopf
   document.getElementById('no-gadget-active').innerHTML = '<div align="center" id="new-user-link"><b><a href="javascript:AddMeToThisList();">ich möchte mich in das System eintragen</a></b></div><br /><div align="center" id="new-ack-link"><b><a href="javascript:showFormToACKsomeone();">ich möchte jemanden bestätigen</a></b></div>';
   document.getElementById('ca-edit').innerHTML = '';
}

if (document.URL == wgServer + '/wiki/' + workPage)
   addOnloadHook(startTAXmanPage);
// </nowiki>