MediaWiki:Seitenempfehlung.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Warnung @Dufo ;) ...) |
(test, deprecated zeuch ersetzt ... hoffe, das ist richtig so) |
||
Zeile 18: | Zeile 18: | ||
function readHwList(username, action) { | function readHwList(username, action) { | ||
jQuery.ajax({ | jQuery.ajax({ | ||
− | url: wgScript, | + | url: mw.config.get( 'wgScript' ), |
data: { title: "Kamel:" + username + subpath, action: "raw" }, | data: { title: "Kamel:" + username + subpath, action: "raw" }, | ||
cache: false, | cache: false, | ||
Zeile 53: | Zeile 53: | ||
jQuery.ajax({ | jQuery.ajax({ | ||
url: '/api.php', | url: '/api.php', | ||
− | data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + | + | data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + Kamelname + subpath, format: "xml" }, |
cache: false, | cache: false, | ||
success: function(data) { | success: function(data) { | ||
Zeile 64: | Zeile 64: | ||
type: 'POST', | type: 'POST', | ||
cache: false, | cache: false, | ||
− | data: { action: "edit", title: "Kamel:" + | + | data: { action: "edit", title: "Kamel:" + Kamelname + subpath, text: "* " + hwList.join("\n* "), summary: "+ " + entry, token: edittoken }, |
success: function(data) { | success: function(data) { | ||
− | var text = '<p>Die Seite „' + | + | var text = '<p>Die Seite „' + Seitenname.replace(/_/g, ' ') + '“ wurde zu deinen <a href="' |
− | + wgScript + '/Kamel:' + | + | + mw.config.get( 'wgScript' ) + '/Kamel:' + Kamelname + subpath + '">Empfehlungen</a> hinzugefügt.</p>'; |
jQuery('#mw-js-message').html(text); | jQuery('#mw-js-message').html(text); | ||
jQuery('#mw-js-message').slideDown('fast'); | jQuery('#mw-js-message').slideDown('fast'); | ||
Zeile 80: | Zeile 80: | ||
jQuery.ajax({ | jQuery.ajax({ | ||
url: '/api.php', | url: '/api.php', | ||
− | data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + | + | data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + Kamelname + subpath, format: "xml" }, |
cache: false, | cache: false, | ||
success: function(data) { | success: function(data) { | ||
Zeile 92: | Zeile 92: | ||
type: 'POST', | type: 'POST', | ||
cache: false, | cache: false, | ||
− | data: { action: "edit", title: "Kamel:" + | + | data: { action: "edit", title: "Kamel:" + Kamelname + subpath, text: "* " + hwList.join("\n* "), summary: "- " + entry, token: edittoken }, |
success: function(data) { | success: function(data) { | ||
− | var text = '<p>Die Seite „' + | + | var text = '<p>Die Seite „' + Seitenname.replace(/_/g, ' ') + '“ wurde von deinen <a href="' |
− | + wgScript + '/Kamel:' + | + | + mw.config.get( 'wgScript' ) + '/Kamel:' + Kamelname + subpath + '">Empfehlungen</a> entfernt.</p>'; |
jQuery('#mw-js-message').html(text); | jQuery('#mw-js-message').html(text); | ||
jQuery('#mw-js-message').slideDown('fast'); | jQuery('#mw-js-message').slideDown('fast'); | ||
Zeile 123: | Zeile 123: | ||
jQuery(document).ready(function() { | jQuery(document).ready(function() { | ||
//if(typeof(disableGaGA) != 'undefined' && disableGaGA) return; | //if(typeof(disableGaGA) != 'undefined' && disableGaGA) return; | ||
− | if(jQuery.inArray(wgCanonicalNamespace, hwNS) != -1) { | + | if(jQuery.inArray(mw.config.get( 'wgCanonicalNamespace' ), hwNS) != -1) { |
− | entry = (wgCanonicalNamespace == "File") ? "[[:" + | + | entry = (mw.config.get( 'wgCanonicalNamespace' ) == "File") ? "[[:" + Seitenname.replace(/_/g, ' ') + "]]" |
− | : "[[" + | + | : "[[" + Seitenname.replace(/_/g, ' ') + "]]"; |
jQuery('#p-views ul').append('<li class="icon"><span><a href="#"></a></span></li>'); | jQuery('#p-views ul').append('<li class="icon"><span><a href="#"></a></span></li>'); | ||
jQuery('#p-views li:last').ajaxComplete(function() { | jQuery('#p-views li:last').ajaxComplete(function() { | ||
Zeile 133: | Zeile 133: | ||
jQuery('#ca-unhw a').attr('title', 'Seite nicht mehr empfehlen'); | jQuery('#ca-unhw a').attr('title', 'Seite nicht mehr empfehlen'); | ||
jQuery('#ca-unhw a').unbind('click'); | jQuery('#ca-unhw a').unbind('click'); | ||
− | jQuery('#ca-unhw a').bind('click', function() { readHwList( | + | jQuery('#ca-unhw a').bind('click', function() { readHwList(Kamelname, 'remove') }); |
} else { | } else { | ||
jQuery(this).attr('id', 'ca-hw'); | jQuery(this).attr('id', 'ca-hw'); | ||
Zeile 139: | Zeile 139: | ||
jQuery('#ca-hw a').attr('title', 'Seite empfehlen'); | jQuery('#ca-hw a').attr('title', 'Seite empfehlen'); | ||
jQuery('#ca-hw a').unbind('click'); | jQuery('#ca-hw a').unbind('click'); | ||
− | jQuery('#ca-hw a').bind('click', function() { readHwList( | + | jQuery('#ca-hw a').bind('click', function() { readHwList(Kamelname, 'add') }); |
} | } | ||
}); | }); | ||
− | readHwList( | + | readHwList(Kamelname, false); |
} | } | ||
}) | }) |
Version vom 19. Mai 2011, 22:21 Uhr
/*
* Version 2011-05-15.1 sollte halbwegs fehlerfrei funktionieren
*/
var hwList; // HatWas-Liste
var entry;
var subpath = '/Empfehlung'; // Name bzw. Pfad der Kamelbau-Unterseiten
// Es gibt KEINE Regeln bzgl. der persönlichen Empfehlungen, ein automatischer Daumen taucht jedoch nur auf
// Seiten auf, wo es auch potentiell lesenswertes Zeug geben tut
//
// HINWEIS an ---> DUFO <----
// FINGER WEG VON DEN NAMENSRÄUMEN, wehe, du nimmst da was raus
//
var hwNS = (typeof(hwNS) == 'object') ? hwNS : new Array ("", "File", "Kamelionary", "Kamelobooks", "News", "Projekt"); // hierhin die Namensräume, wo der Daumen auftauchen soll (Achtung! canonical namespaces!);
// Empfehlungsliste auslesen
function readHwList(username, action) {
jQuery.ajax({
url: mw.config.get( 'wgScript' ),
data: { title: "Kamel:" + username + subpath, action: "raw" },
cache: false,
// Noch keine Empfehlungs-Seite angelegt
error: function() {
hwList = new Array();
switch (action) {
case "add":
adHW();
break;
case "remove":
removeHW();
break;
}
},
// Empfehlungs-Seite auslesen
success: function(data) {
hwList = data.match(/\[\[.*\]\]/g);
switch (action) {
case "add":
adHW();
break;
case "remove":
removeHW();
break;
}
}
});
}
// Seite zur Empfehlungsliste hinzufügen
function adHW() {
// edit-Token holen
jQuery.ajax({
url: '/api.php',
data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + Kamelname + subpath, format: "xml" },
cache: false,
success: function(data) {
var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken');
hwList.push(entry); // Aktuelle Seite dazu
hwList = sortHW(hwList); // Sortieren
// Empfehlungsliste bearbeiten
jQuery.ajax({
url: '/api.php',
type: 'POST',
cache: false,
data: { action: "edit", title: "Kamel:" + Kamelname + subpath, text: "* " + hwList.join("\n* "), summary: "+ " + entry, token: edittoken },
success: function(data) {
var text = '<p>Die Seite „' + Seitenname.replace(/_/g, ' ') + '“ wurde zu deinen <a href="'
+ mw.config.get( 'wgScript' ) + '/Kamel:' + Kamelname + subpath + '">Empfehlungen</a> hinzugefügt.</p>';
jQuery('#mw-js-message').html(text);
jQuery('#mw-js-message').slideDown('fast');
}
})
}
});
}
function removeHW() {
// edit-Token holen
jQuery.ajax({
url: '/api.php',
data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + Kamelname + subpath, format: "xml" },
cache: false,
success: function(data) {
var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken');
var i = jQuery.inArray(entry, hwList);
delete hwList[i]; // Aktuelle Seite wech
hwList = sortHW(hwList); // Sortieren
// Empfehlungsliste bearbeiten
jQuery.ajax({
url: '/api.php',
type: 'POST',
cache: false,
data: { action: "edit", title: "Kamel:" + Kamelname + subpath, text: "* " + hwList.join("\n* "), summary: "- " + entry, token: edittoken },
success: function(data) {
var text = '<p>Die Seite „' + Seitenname.replace(/_/g, ' ') + '“ wurde von deinen <a href="'
+ mw.config.get( 'wgScript' ) + '/Kamel:' + Kamelname + subpath + '">Empfehlungen</a> entfernt.</p>';
jQuery('#mw-js-message').html(text);
jQuery('#mw-js-message').slideDown('fast');
}
})
}
});
}
function showHW(username) {
/* soll später html-Code für Empfehlungslisten ausspucken */
}
// doppelte & leere Einträge entfernen + alphabetisch sortieren
function sortHW(list) {
var sorted = new Array();
for(var i=0; i<list.length; i++){
for(var j=i+1; j<list.length; j++){
if (list[i] == list[j]) j = ++i;
}
if (typeof(list[i]) != 'undefined') sorted.push(list[i]);
}
return sorted.sort();
}
// Das ganze starten
jQuery(document).ready(function() {
//if(typeof(disableGaGA) != 'undefined' && disableGaGA) return;
if(jQuery.inArray(mw.config.get( 'wgCanonicalNamespace' ), hwNS) != -1) {
entry = (mw.config.get( 'wgCanonicalNamespace' ) == "File") ? "[[:" + Seitenname.replace(/_/g, ' ') + "]]"
: "[[" + Seitenname.replace(/_/g, ' ') + "]]";
jQuery('#p-views ul').append('<li class="icon"><span><a href="#"></a></span></li>');
jQuery('#p-views li:last').ajaxComplete(function() {
if(jQuery.inArray(entry, hwList) != -1) {
jQuery(this).attr('id', 'ca-unhw');
jQuery('#ca-unhw a').html('Entfehlen');
jQuery('#ca-unhw a').attr('title', 'Seite nicht mehr empfehlen');
jQuery('#ca-unhw a').unbind('click');
jQuery('#ca-unhw a').bind('click', function() { readHwList(Kamelname, 'remove') });
} else {
jQuery(this).attr('id', 'ca-hw');
jQuery('#ca-hw a').html('Empfehlen');
jQuery('#ca-hw a').attr('title', 'Seite empfehlen');
jQuery('#ca-hw a').unbind('click');
jQuery('#ca-hw a').bind('click', function() { readHwList(Kamelname, 'add') });
}
});
readHwList(Kamelname, false);
}
})