Benutzer:J*/vector.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
J* (Diskussion | Beiträge) (Müsste es nicht so sein?) Markierung: WK: interner Datei-Hotlink |
(das ist dieaktuelle version ..) |
||
Zeile 58: | Zeile 58: | ||
/* Empfehlungs-Dings */ | /* Empfehlungs-Dings */ | ||
− | var | + | var gagaList; |
+ | var entry; | ||
+ | var subpath = '/Empfehlung'; // Name bzw. Pfad der Kamelbau-Unterseiten | ||
+ | var gagaNS = new Array ("", "File", "Kamelionary"); // hierhin die Namensräume, die zur Wahl stehen (Achtung! canonical namespaces!); | ||
− | // | + | // Empfehlungsliste auslesen |
− | function | + | function readGaGA(username) { |
− | jQuery | + | jQuery.ajax({ |
− | + | url: wgScript, | |
− | + | data: { title: "Kamel:" + username + subpath, action: "raw" }, | |
+ | cache: false, | ||
+ | // Noch keine Empfehlungs-Seite angelegt | ||
+ | error: function() { gagaList = new Array() }, | ||
+ | // Empfehlungs-Seite auslesen | ||
+ | success: function(data) { gagaList = data.match(/\[\[.*\]\]/g) } | ||
+ | }); | ||
} | } | ||
− | + | ||
− | // | + | // Seite zur Empfehlungsliste hinzufügen |
− | function | + | function addGaGA() { |
− | jQuery. | + | // edit-Token holen |
− | + | jQuery.ajax({ | |
− | function(data){ | + | url: '/api.php', |
− | + | data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + wgUserName + subpath, format: "xml" }, | |
− | + | cache: false, | |
− | + | success: function(data) { | |
− | } | + | var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken'); |
− | + | gagaList.push(entry); // Aktuelle Seite dazu | |
− | + | gagaList = sortGaGA(gagaList); // Sortieren | |
− | + | // Empfehlungsliste bearbeiten | |
− | // | + | jQuery.ajax({ |
− | + | url: '/api.php', | |
− | + | type: 'POST', | |
− | + | cache: false, | |
+ | data: { action: "edit", title: "Kamel:" + wgUserName + subpath, text: "* " + gagaList.join("\n* "), summary: "+ " + entry, token: edittoken }, | ||
+ | success: function(data) { | ||
+ | var text = '<p>Die Seite „' + wgPageName.replace(/_/g, ' ') + '“ wurde zu deinen <a href="' | ||
+ | + wgScript + '/Kamel:' + wgUserName + subpath + '">Empfehlungen</a> hinzugefügt.</p>'; | ||
+ | jQuery('#mw-js-message').html(text); | ||
+ | jQuery('#mw-js-message').slideDown('fast'); | ||
+ | } | ||
+ | }) | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | |||
+ | function removeGaGA() { | ||
+ | // edit-Token holen | ||
+ | jQuery.ajax({ | ||
+ | url: '/api.php', | ||
+ | data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + wgUserName + subpath, format: "xml" }, | ||
+ | cache: false, | ||
+ | success: function(data) { | ||
+ | var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken'); | ||
+ | var i = jQuery.inArray(entry, gagaList); | ||
+ | delete gagaList[i]; // Aktuelle Seite wech | ||
+ | gagaList = sortGaGA(gagaList); // Sortieren | ||
+ | // Empfehlungsliste bearbeiten | ||
+ | jQuery.ajax({ | ||
+ | url: '/api.php', | ||
+ | type: 'POST', | ||
+ | cache: false, | ||
+ | data: { action: "edit", title: "Kamel:" + wgUserName + subpath, text: "* " + gagaList.join("\n* "), summary: "- " + entry, token: edittoken }, | ||
+ | success: function(data) { | ||
+ | var text = '<p>Die Seite „' + wgPageName.replace(/_/g, ' ') + '“ wurde von deinen <a href="' | ||
+ | + wgScript + '/Kamel:' + wgUserName + subpath + '">Empfehlungen</a> entfernt.</p>'; | ||
+ | jQuery('#mw-js-message').html(text); | ||
+ | jQuery('#mw-js-message').slideDown('fast'); | ||
} | } | ||
− | + | }) | |
− | + | } | |
− | + | }); | |
− | + | } | |
− | + | ||
− | + | function showGaGA(username) { | |
− | + | /* soll später html-Code für Empfehlungslisten ausspucken */ | |
− | + | } | |
− | + | ||
− | + | // doppelte & leere Einträge entfernen + alphabetisch sortieren | |
− | + | function sortGaGA(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 | // Das ganze starten | ||
− | + | jQuery(document).ready(function() { | |
− | if(jQuery.inArray(wgCanonicalNamespace, | + | if(typeof(disableGaGA) != 'undefined' && disableGaGA) return; |
− | + | if(jQuery.inArray(wgCanonicalNamespace, gagaNS) != -1) { | |
+ | entry = (wgCanonicalNamespace == "File") ? "[[:" + wgPageName.replace(/_/g, ' ') + "]]" | ||
+ | : "[[" + wgPageName.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, gagaList) != -1) { | ||
+ | jQuery(this).attr('id', 'ca-ungaga'); | ||
+ | jQuery('#ca-ungaga a').html('Entfehlen'); | ||
+ | jQuery('#ca-ungaga a').attr('title', 'Seite nicht mehr empfehlen'); | ||
+ | jQuery('#ca-ungaga a').unbind('click'); | ||
+ | jQuery('#ca-ungaga a').bind('click', function() { removeGaGA() }); | ||
+ | } else { | ||
+ | jQuery(this).attr('id', 'ca-gaga'); | ||
+ | jQuery('#ca-gaga a').html('Empfehlen'); | ||
+ | jQuery('#ca-gaga a').attr('title', 'Seite empfehlen'); | ||
+ | jQuery('#ca-gaga a').unbind('click'); | ||
+ | jQuery('#ca-gaga a').bind('click', function() { addGaGA() }); | ||
+ | } | ||
+ | }); | ||
+ | readGaGA(wgUserName); | ||
} | } | ||
}) | }) |
Version vom 3. Mai 2011, 16:53 Uhr
/* für's Bürokratenspiel */
function bksp ()
{
if (wgPageName.indexOf("Projekt:Bürokratenspiel") != -1 )
{
var t = wgTitle.split("/");
var e = (wgAction = "edit") ? "$ " : "";
document.title = t[t.length-1];
}
}
addOnloadHook(bksp);
/* Zusammenfassungs-Warnung */
addOnloadHook( function () {
jQuery("#wpSummary, #wpTextbox1").bind("keypress", function() {
jQuery("#wpSummary").css("background-color","#ffffff");
try {
clearInterval(summaryWarnInterval);
summaryWarnInterval = null;
}
catch (e) {}
summaryWarnState = -1;
});
jQuery("#editform").bind("submit", function (e) {
if ( e.originalEvent.explicitOriginalTarget != jQuery("#wpSave")[0] )
return true;
if (! jQuery("#wpSummary").val().replace(/^\s+/,"").replace(/\s+$/,"").replace(/\/\*.*?\*\//,"") && summaryWarnState == -1)
{
jQuery("#wpSummary").focus();
summaryWarnInterval = window.setInterval(summaryWarn,70);
return false;
}
return true;
});
});
summaryWarnState = -1;
summaryWarnInterval = null;
function summaryWarn()
{
summaryWarnState ++;
if (summaryWarnState % 2 == 0)
jQuery("#wpSummary").css("background-color","#ffff99");
else
jQuery("#wpSummary").css("background-color","#ffffff");
if (summaryWarnState > 11)
clearInterval(summaryWarnInterval);
}
/* Empfehlungs-Dings */
var gagaList;
var entry;
var subpath = '/Empfehlung'; // Name bzw. Pfad der Kamelbau-Unterseiten
var gagaNS = new Array ("", "File", "Kamelionary"); // hierhin die Namensräume, die zur Wahl stehen (Achtung! canonical namespaces!);
// Empfehlungsliste auslesen
function readGaGA(username) {
jQuery.ajax({
url: wgScript,
data: { title: "Kamel:" + username + subpath, action: "raw" },
cache: false,
// Noch keine Empfehlungs-Seite angelegt
error: function() { gagaList = new Array() },
// Empfehlungs-Seite auslesen
success: function(data) { gagaList = data.match(/\[\[.*\]\]/g) }
});
}
// Seite zur Empfehlungsliste hinzufügen
function addGaGA() {
// edit-Token holen
jQuery.ajax({
url: '/api.php',
data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + wgUserName + subpath, format: "xml" },
cache: false,
success: function(data) {
var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken');
gagaList.push(entry); // Aktuelle Seite dazu
gagaList = sortGaGA(gagaList); // Sortieren
// Empfehlungsliste bearbeiten
jQuery.ajax({
url: '/api.php',
type: 'POST',
cache: false,
data: { action: "edit", title: "Kamel:" + wgUserName + subpath, text: "* " + gagaList.join("\n* "), summary: "+ " + entry, token: edittoken },
success: function(data) {
var text = '<p>Die Seite „' + wgPageName.replace(/_/g, ' ') + '“ wurde zu deinen <a href="'
+ wgScript + '/Kamel:' + wgUserName + subpath + '">Empfehlungen</a> hinzugefügt.</p>';
jQuery('#mw-js-message').html(text);
jQuery('#mw-js-message').slideDown('fast');
}
})
}
});
}
function removeGaGA() {
// edit-Token holen
jQuery.ajax({
url: '/api.php',
data: { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + wgUserName + subpath, format: "xml" },
cache: false,
success: function(data) {
var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken');
var i = jQuery.inArray(entry, gagaList);
delete gagaList[i]; // Aktuelle Seite wech
gagaList = sortGaGA(gagaList); // Sortieren
// Empfehlungsliste bearbeiten
jQuery.ajax({
url: '/api.php',
type: 'POST',
cache: false,
data: { action: "edit", title: "Kamel:" + wgUserName + subpath, text: "* " + gagaList.join("\n* "), summary: "- " + entry, token: edittoken },
success: function(data) {
var text = '<p>Die Seite „' + wgPageName.replace(/_/g, ' ') + '“ wurde von deinen <a href="'
+ wgScript + '/Kamel:' + wgUserName + subpath + '">Empfehlungen</a> entfernt.</p>';
jQuery('#mw-js-message').html(text);
jQuery('#mw-js-message').slideDown('fast');
}
})
}
});
}
function showGaGA(username) {
/* soll später html-Code für Empfehlungslisten ausspucken */
}
// doppelte & leere Einträge entfernen + alphabetisch sortieren
function sortGaGA(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(wgCanonicalNamespace, gagaNS) != -1) {
entry = (wgCanonicalNamespace == "File") ? "[[:" + wgPageName.replace(/_/g, ' ') + "]]"
: "[[" + wgPageName.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, gagaList) != -1) {
jQuery(this).attr('id', 'ca-ungaga');
jQuery('#ca-ungaga a').html('Entfehlen');
jQuery('#ca-ungaga a').attr('title', 'Seite nicht mehr empfehlen');
jQuery('#ca-ungaga a').unbind('click');
jQuery('#ca-ungaga a').bind('click', function() { removeGaGA() });
} else {
jQuery(this).attr('id', 'ca-gaga');
jQuery('#ca-gaga a').html('Empfehlen');
jQuery('#ca-gaga a').attr('title', 'Seite empfehlen');
jQuery('#ca-gaga a').unbind('click');
jQuery('#ca-gaga a').bind('click', function() { addGaGA() });
}
});
readGaGA(wgUserName);
}
})