MediaWiki:Meinungen.js

aus Wikinews, einem freien Wiki für Nachrichten

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
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
( function () {
  var ns = mw.config.get( 'wgNamespaceNumber' ),
      page = mw.config.get( 'wgPageName' );

  if ( ( ns != 0 || ns != 1 || ns != 102 ) || ( page == 'Hauptseite' && page == 'Diskussion:Hauptseite' ) ) {
    return;
  }

  function dewikinews_meinungen_createtab(tabname, tabid, linkpre, linktarget, linktitle, accesskey, mright) {
    /* Link erzeugen */
    var link = document.createElement('a');
    if ( accesskey != '' ) link.setAttribute('accesskey',accesskey);
    link.setAttribute('title',linktitle);
    link.setAttribute('href','/wiki/' + linkpre + encodeURIComponent(linktarget));
    link.appendChild( document.createTextNode(tabname) );

    /* Span erzeugen */
    var span = document.createElement('span');
    span.appendChild( link );

    /* LI (Tab) erzeugen, Link einhängen und Style setzen */
    var newtab = document.createElement('li');
    newtab.id = tabid;
    newtab.appendChild(span);

    /* ggf. rechten Abstand setzen */
    if ( mright != '' )
      newtab.style.marginRight = mright;

    /* Tab zurückgeben */
    return(newtab);
  }
  
  function dewikinews_meinungen_addtabs() {
  
    var Diskussion_zu_Redaktion = ( typeof dewn_Diskussion_zu_Redaktion != 'undefined' );
    var isVector = mw.config.get('skin') == 'vector';
    var Margin1 = ( isVector ? '' : '0.6em' );
    var Margin2 = ( isVector ? '' : '1.6em' );

    if ( ns < 2 ) {

      var PageName = ns == 0 ? page : page.substring(11);

      /* Meinungstab erzeugen */
      var meinungtab = dewikinews_meinungen_createtab(
        'Meinungen', 'ca-meinungen', 'Meinungen:', PageName, 'Meinungen zum Artikel [m]', 'm', Margin2);

      /* Tab nach ca-talk einbauen und Style sowie Linktext von ca-talk korrigieren */
      var disktab = document.getElementById('ca-talk');
      disktab.parentNode.insertBefore(meinungtab, disktab.nextSibling);
      if ( Margin1 != '' )
        disktab.style.marginRight = Margin1;
      if ( Diskussion_zu_Redaktion ) disktab.firstChild.firstChild.data = 'Redaktion';

      /* Wenn Diskussionsseite, dann Titel ändern */
      if ( ns == 1 && Diskussion_zu_Redaktion ) {
        var heading = document.getElementsByTagName('h1')[0];
        if ( heading && heading.firstChild.data.substring(0,11) == 'Diskussion:' )
          heading.firstChild.data = 'Redaktion:' + heading.firstChild.data.substring(11);
      }
    } else {

      /* Meinungen_Diskussion Tab entsorgen */
      var disktab = document.getElementById('ca-talk');
      disktab.parentNode.removeChild(disktab);
      
      /* Artikeltab und Artikeldiskussionstab erzeugen */
      var artikeltab = dewikinews_meinungen_createtab(
        'Artikel', 'ca-nstab-main', '', page.substring(10), 'Artikel [c]', 'c', Margin1);
      disktab = dewikinews_meinungen_createtab(
        (Diskussion_zu_Redaktion ? 'Redaktion' : 'Diskussion'), 'ca-talk', 'Diskussion:', page.substring(10), 'Redaktion (Entstehung des Artikels) [d]', 'd', Margin1);

      /* Tabs einbauen und Abstand nach Meinungstab korrigieren */
      meinungtab = document.getElementById('ca-nstab-meinungen');
      meinungtab.parentNode.insertBefore(disktab, meinungtab);
      meinungtab.parentNode.insertBefore(artikeltab, disktab);
      if ( Margin2 =! '' )
        meinungtab.style.marginRight = Margin2;

      /* Wenn Meinungsseite noch nicht existiert, trotzdem Tab nicht rotfärben, aber Erstellen-Button entfernen */
      if ( meinungtab.className.indexOf('new') != -1 ) {
        meinungtab.className='selected';
        var edittab = document.getElementById('ca-edit');
        edittab.parentNode.removeChild(edittab);
      }
    }
  }

  $( dewikinews_meinungen_addtabs );

}() );