Benutzer:J*/vector.js: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
das ist dieaktuelle version ..
K importJS('MediaWiki:Empfehlung.js');
Zeile 58: Zeile 58:
/* Empfehlungs-Dings */
/* Empfehlungs-Dings */


var gagaList;
importJS('MediaWiki:Empfehlung.js');
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);
  }
})

Version vom 3. Mai 2011, 23:05 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 */

importJS('MediaWiki:Empfehlung.js');