MediaWiki:Gadget-add cats.js

Aus DCPedia
Version vom 23. Dezember 2012, 18:22 Uhr von Meister (Diskussion | Beiträge) (Mal sehen...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
// Alle Kategorien können so eingefügt werden.


function add_cat(kat){
  if (mw.config.get('wgPageName') == 'Spezial:Hochladen') {
    var tb = document.getElementById('wpUploadDescription');
  }
  else {
    var tb = document.editform.wpTextbox1;
  }
  var scroll = tb.scrollTop;
  var output= '';
  if (tb.value.indexOf('Kategorie:' + kat + ']]') == -1) {
    if (mw.config.get('wgPageName') == 'Spezial:Hochladen' && tb.value.indexOf('Kategorie:') == -1) {
      output += '\n';
    }
    output += '\n[[Kategorie:' + kat + ']]';
  }
  tb.value += output;
  tb.scrollTop = scroll;
}

function search_cats(){
  var word = document.getElementById('cat_search_word').value;
  $('#kat_div_2').remove();
  add_cats_init(word);
}

function reset_cats(){
  $('#kat_div_2').remove();
  add_cats_init();
}

function add_cats_init(word){ //word ist der optionale Parameter, der übergeben wird, wenn über search_cats() die Kategorien gefiltert werden.
  var helptext = 'In das Textfeld oben einfach eine Zeichenfolge eingeben und bestätigen (>Enter< drücken oder >[ok]< klicken).\nEs werden dann nur noch die Kategorien angezeigt, die diese Zeichenfolge enthalten.';

  var inhalt = '<div style="background:none; z-index: 50; float: right;" id="cat_search_div">';
  inhalt += '<form name="cat_search" id="cat_search" action="javascript:search_cats()">';
  inhalt += '<input type="text" size="15" id="cat_search_word" value="(in Kats suchen)" onclick="if(this.value == \'(in Kats suchen)\') this.value = \'\';"></input>';
  inhalt += '</form><a href="javascript:document.getElementById(\'cat_search\').submit();">[ok]</a> <a href="javascript:reset_cats()">[reset]</a> <a href="javascript:alert(\'' + helptext + '\')">[hilfe]</a></div>';

  inhalt += '<div style="background:none; z-index: 50; height: 200px; width: 200px; overflow: auto; float: right; clear: both;" id="cat_div">';

  if (mw.config.get('wgNamespaceNumber') == 6 || mw.config.get('wgPageName') == 'Spezial:Hochladen') {
    inhalt += '<b>Typkategorien:</b><br />'
    + '<i>Für Bilder:</i><br />'
    + '<a href="javascript:add_cat(\'Datei:Animation\')">Animation</a><br />'
    + '<a href="javascript:add_cat(\'Datei:Foto\')">Foto</a><br />'
    + '<a href="javascript:add_cat(\'Datei:Fotomontage\')">Fotomontage</a><br />'
    + '<a href="javascript:add_cat(\'Datei:Grafik\')">Grafik</a><br />'
    + '<a href="javascript:add_cat(\'Datei:Screenshot\')">Screenshot</a><br />'
    + '<a href="javascript:add_cat(\'Datei:Zeichnung\')">Zeichnung</a><br />'
    + '<i>Für Audiodateien:</i><br />'
    + '<a href="javascript:add_cat(\'Datei:Gesprochene Artikel\')">Gesprochene Artikel</a><br />'
    + '<a href="javascript:add_cat(\'Datei:Musikstück\')">Musikstück</a><br />'
    + '<a href="javascript:add_cat(\'Datei:Sprache\')">Sprache</a><br /><br />';
  }

  inhalt += '<b>Kategorien einfügen:</b><br />';

  var kategorien = new Array('Superheld',
    'Superschurke',
    'Superhelden-Team',
    'Richtiger Name',
    'Männlich',
    'Weiblich',
    'Superschurken-Team',
    'Ehapa',
    'Hethke',
    'Amerika',
    'Amerikaner',
    'Carlsen',
    'Dino',
    'Panini',
    'Nachname',
    'Helden in den Kontinenten',
    'Europa',
    'Afrika',
    'Australien',
    'Nord-Amerika',
    'Süd-Amerika',
    'Planeten').sort(compare_strings);
  if (mw.config.get('wgNamespaceNumber') == 6 || mw.config.get('wgPageName') == 'Spezial:Hochladen') {
    kategorien = new Array('Datei:Icon',
    ).sort(compare_strings);
  }

  if(typeof word != 'string'){ // Eine Schleife, wenn noch keine Suchanfrage eingegeben wurde
    for(var i=0; kat=kategorien[i]; i++){
      if( (kat.charAt(0) != letzter_buchstabe) && (kat.charAt(0) != '!') ){
        inhalt += '<span style="float:right; font-size: 15pt;">' + kat.charAt(0) + '</span><hr>';
      }
      inhalt += '<a href="javascript:add_cat(\'' + kat + '\')">' + kat.replace(/^Datei:/, '') + '</a><br />'
      var letzter_buchstabe = kat.charAt(0);
    }
  }

  else{ // und eine für den anderen Fall
    for(var i=0; kat=kategorien[i]; i++){
      var katL = kat.toLowerCase();
      var wordL = word.toLowerCase();
      if(katL.indexOf(wordL) == -1) continue;

      if( (kat.charAt(0) != letzter_buchstabe) && (kat.charAt(0) != '!') ){
        inhalt += '<span style="float:right; font-size: 15pt;">' + kat.charAt(0) + '</span><hr>';
      }
      inhalt += '<a href="javascript:add_cat(\'' + kat + '\')">' + kat.replace(/^Datei:/, '') + '</a><br />'
      var letzter_buchstabe = kat.charAt(0);
    }
  }

  var kat_div_2 = document.createElement('div');
  kat_div_2.id = 'kat_div_2';
  kat_div_2.style.backgroundColor = 'white';
  kat_div_2.style.cssFloat = 'right';
  kat_div_2.innerHTML += inhalt;
  if (mw.config.get('wgPageName') == 'Spezial:Hochladen') {
    $('#mw-htmlform-description').before(kat_div_2);
  }
  else {
    $('.editOptions').after(kat_div_2);
  }
  $('#kat_div_2').css('margin-left', '15px').css('margin-bottom', '15px');
}

function compare_strings(a, b) {
  a = a.toLowerCase();
  a = a.replace("ä", "a");
  a = a.replace("ö", "o");
  a = a.replace("ü", "u");
  a = a.replace("ß", "s");
   
  b = b.toLowerCase();
  b = b.replace("ä", "a");
  b = b.replace("ö", "o");
  b = b.replace("ü", "u");
  b = b.replace("ß", "s");
   
  return (a == b)? 0: (a > b)? 1: -1;
}

// Beim Bearbeiten einer Seite ...
if ((global.isEditing === true && $.inArray(mw.config.get('wgNamespaceNumber'), [0, 6, 102, 106]) != -1) || mw.config.get('wgPageName') == 'Spezial:Hochladen') {
  // ... wird, wenn die Seite fertig geladen ist, der Container mit den Kategorien eingefügt.
  addOnload(add_cats_init);
}

//</syntaxhighlight>