MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus KiwiThek
Wechseln zu: Navigation, Suche
(43 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
/* Das folgende JavaScript wird für alle Benutzer geladen. */
+
/**
 
+
  * MediaWiki:Common.js
 
/** Extra toolbar options ******************************************************
 
  *
 
*  Description: Adds extra buttons to the editing toolbar.
 
 
*  To disable this script, add <code>mwCustomEditButtons = [];<code> to [[Special:Mypage/monobook.js]].
 
 
*  Maintainers: [[User:MarkS]], [[User:Voice of All]], [[User:R. Koot]]
 
 
  */
 
  */
  
+
// remove empty p-Tags & hide p-Tags only containing br-Tags
if (mwCustomEditButtons) {
+
$content = jQuery( '#content' );
+
$content.remove( 'p:empty' );
    mwCustomEditButtons.push({
+
$content.find( 'p > br' ).each( function ( i, e ) {
        "imageFile": "http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png",
+
$br = jQuery( e );
        "speedTip": "Zeilenumbruch",
+
if (
        "tagOpen": "<br />",
+
$br.siblings().length === 0 &&
        "tagClose": "",
+
$br.parent().text().trim().length === 0
        "sampleText": ""
+
) {
    });
+
$br.parent().hide()
 +
}
 +
} );
  
 +
// set language code
 +
var languageCode = "de";
 +
var urlParameterDeEasy = "einfach";
 +
if ( window.location.href.indexOf( urlParameterDeEasy ) > -1 ) {
 +
languageCode = "de-easy";
 +
}
 +
jQuery( '#mw-content-text' ).attr( 'lang', languageCode );
 +
jQuery( 'body' ).attr( 'lang', languageCode );
  
    mwCustomEditButtons.push({
+
// increase body height to match sidebar height
        "imageFile": "http://upload.wikimedia.org/wikipedia/en/1/12/Button_gallery.png",
+
var sidebarHeight = jQuery( '#mw-panel' ).outerHeight();
        "speedTip": "Bildergalerie einfügen",
+
var bodyHeight = jQuery( 'body.mediawiki' ).outerHeight();
        "tagOpen": "\n<gallery>\n",
+
if ( sidebarHeight > bodyHeight ) {
        "tagClose": "\n</gallery>",
+
jQuery( '#footer' ).css( 'margin-bottom', sidebarHeight - bodyHeight );
        "sampleText": "Image:Example.jpg|Caption1\nImage:Example.jpg|Caption2"
+
} else {
    });
+
jQuery( '#mw-panel' ).height( jQuery( 'body' ).height() )
+
}
    mwCustomEditButtons.push({
 
        "imageFile": "http://upload.wikimedia.org/wikipedia/en/6/60/Button_insert_table.png",
 
        "speedTip": "Tabelle (3x3) einfügen",
 
        "tagOpen": '{| class="wikitable"\n|',
 
        "tagClose": "\n|}",
 
        "sampleText": "-\n! header 1\n! header 2\n! header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3"
 
    });
 
 
 
    mwCustomEditButtons.push({
 
        "imageFile": "skins/common/images/button_link.png",
 
        "speedTip": "Interner Link",
 
        "tagOpen": '<div class="intern">[[',
 
        "tagClose": "]]</div>",
 
        "sampleText": "Hier steht der interne Link"
 
    });
 
 
 
    mwCustomEditButtons.push({
 
        "imageFile": "images/Button_Farbe.PNG",
 
        "speedTip": "Farbe1",
 
        "tagOpen": '<span class="farbe1">',
 
        "tagClose": "</span>",
 
        "sampleText": "Hier steht der eingefärbte Text"
 
    });
 
  
    mwCustomEditButtons.push({
+
// replace registration link
        "imageFile": "images/Anker.png",
+
jQuery( '#pt-createaccount' )
        "speedTip": "Top Anker",
+
.attr( 'id', 'pt-gettingstarted' );
        "tagOpen": '<div class="imagelink_anker">[[#top|&nbsp;]]</div>',
+
jQuery( '#pt-gettingstarted a' )
        "tagClose": "",
+
.attr( 'href', '/index.php/Kiwithek:Getting_Started' )
        "sampleText": ""
+
.attr( 'title', 'Lies nach, wie du mit uns in Kontakt treten kannst um an der KiwiThek mitzuarbeiten.' )
    });
+
.text( 'Getting Started' );
  
    mwCustomEditButtons.push({
+
// insert Bildinformationen template into uploaded file page
        "imageFile": "images/2SpaltenLayout.png",
+
var template = '{{Bildinformationen\n' +
        "speedTip": "2SpaltenLayout",
+
'| Beschreibung = Bitte bearbeite mich und fülle die Bildinfos aus!\n' +
        "tagOpen": '{{2SpaltenLayout|Text=|Bilder=',
+
'| Urheber =\n' +
        "tagClose": "}",
+
'| Herausgeber =\n' +
        "sampleText": "}"
+
'| QuelleText =\n' +
    });
+
'| QuelleUrl =\n' +
}
+
'| LizenzText =\n' +
+
'| LizenzUrl =\n' +
//fix edit summary prompt for undo
+
'| Originaltitel =\n' +
//this code fixes the fact that the undo function combined with the "no edit summary prompter" causes problems if leaving the
+
'| Bearbeitung =\n' +
//edit summary unchanged
+
'| GeoLand =\n' +
//this was added by [[User:Deskana]], code by [[User:Tra]]
+
'| GeoRegion =\n' +
//see bug 8912
+
'| GeoGPSNorth =\n' +
addOnloadHook(function () {
+
'| GeoGPSEast =\n' +
    if (document.location.search.indexOf("undo=") != -1
+
'| Sonstiges =\n' +
        && document.getElementsByName('wpAutoSummary')[0]) {
+
'}}'
        document.getElementsByName('wpAutoSummary')[0].value='1';
+
jQuery( '#wpUploadDescription' ).val(template)
    }
 
})
 
 
/** Edittools javascript loader ************************************************
 
*
 
*  Description: Pulls in [[MediaWiki:Edittools.js]]. Includes a cache-bypassing
 
*  version number in the URL in order to allow any changes to the edittools to
 
*  be rapidly deployed to users.
 
*
 
*  Note that, by default, this function does nothing unless the element with
 
*  the ID "editpage-specialchars" (which contains the old edittools code in
 
*  [[MediaWiki:Edittools]], and will be retained as a placeholder in the new
 
*  implementation) has a class named "edittools-version-NNN", where NNN is a
 
*  number.  If the class name has "test" before the number, the code will only
 
*  run for users who have set "window.testJsEdittools = true" in their user JS.
 
*  The "test" should be retained in the class name until the new edittools
 
*  implementation is ready and fully tested, and until at least 30 days have
 
*  passed since this loader stub was added (which will be in 27 June 2008).
 
*
 
*  For compatibility with Alex Smotrov's original implementation, on which this
 
*  code is loosely based (see [[mw:User talk:Alex Smotrov/edittools.js]]), this
 
*  loader can also be disabled by setting "window.noDefaultEdittools = true".
 
*
 
*  Maintainers: [[User:Ilmari Karonen]]
 
*/
 
 
addOnloadHook(function () {
 
    // needs to be deferred until the DOM has fully loaded
 
    var placeholder = document.getElementById("editpage-specialchars");
 
    if (!placeholder || window.noDefaultEdittools) return;
 
    var match = /(?:^| )edittools-version-(\d+)(?: |$)/.exec(placeholder.className);
 
 
    // set window.testJsEdittools = true to enable testing before full deployment
 
    if (!match && window.testJsEdittools)
 
        match = /(?:^| )edittools-version-(test\d+)(?: |$)/.exec(placeholder.className);
 
 
    if (!match) return;
 
    var url = wgScript + '?title=MediaWiki:Edittools.js&action=raw&ctype=text/javascript&nocache=' + match[1];
 
    importScriptURI(url);
 
});
 
  
/**
+
// Badge: Page created by children
+
var hasCreatedByChildrenCategory = jQuery('#catlinks').
* Modify Sidebar for special usergroups!
+
  text().
*
+
  indexOf('Seiten von Schulteams') >= 0
*/
+
if (hasCreatedByChildrenCategory) {
+
  var $pageByChildrenNode = jQuery('<div class="badge badge--children"><img src="/resources/assets/klassenseite_logo.svg" alt="Diese Seite wurde von SchülerInnen erstellt" title="Diese Seite wurde von SchülerInnen erstellt"></div>')
function ModifySidebar(action, section, name, link) {
 
    try {
 
        switch (section) {
 
          case "languages":
 
            var target = "p-lang";
 
            break;
 
          case "toolbox":
 
            var target = "p-tb";
 
            break;
 
          case "navigation":
 
            var target = "p-navigation";
 
            break;
 
          default:
 
            var target = "p-" + section;
 
            break;
 
        }
 
 
        if (action == "add") {
 
            var node = document.getElementById(target)
 
                              .getElementsByTagName('div')[0]
 
                              .getElementsByTagName('ul')[0];
 
 
            var aNode = document.createElement('a');
 
            var liNode = document.createElement('li');
 
 
            aNode.appendChild(document.createTextNode(name));
 
            aNode.setAttribute('href', link);
 
            liNode.appendChild(aNode);
 
            liNode.className='plainlinks';
 
            node.appendChild(liNode);
 
        }
 
 
        if (action == "remove") {
 
            var list = document.getElementById(target)
 
                              .getElementsByTagName('div')[0]
 
                              .getElementsByTagName('ul')[0];
 
 
            var listelements = list.getElementsByTagName('li');
 
 
            for (var i = 0; i < listelements.length; i++) {
 
                if (listelements[i].getElementsByTagName('a')[0].innerHTML == name ||
 
                    listelements[i].getElementsByTagName('a')[0].href == link) {
 
 
                    list.removeChild(listelements[i]);
 
                }
 
            }
 
        }
 
 
    } catch(e) {
 
      // lets just ignore what's happened
 
      return;
 
    }
 
}
 
 
function CustomizeModificationsOfSidebar() {
 
    //removes [[Special:Specialsites]] from toolbox
 
    ModifySidebar("remove", "toolbox", "Spezialseiten", "/index.php/Spezial:Spezialseiten");
 
}
 
 
 
function isObject(obj) {
 
    if (typeof obj == "object" && obj != null)
 
        return true;
 
    else
 
        return false;
 
}
 
 
function isArray(obj) {
 
    if (isObject(obj)) {
 
        if (obj.constructor.toString().indexOf("Array") == -1)
 
            return false;
 
        else
 
            return true;
 
    }
 
    else
 
        return false;
 
}
 
 
Array.prototype.Contains = function(element,strict) {
 
    for(i in this) {
 
          if(this[i] == element && !strict) return true;
 
              else if(this[i] === element) return true;
 
          }
 
    return false;
 
}
 
  
if (isArray(wgUserGroups)) {
+
  jQuery($pageByChildrenNode).insertAfter('#firstHeading')
    if (!wgUserGroups.Contains('sysop') && !wgUserGroups.Contains('bureaucrat') && !wgUserGroups.Contains('user') && !wgUserGroups.Contains('bot')) {
 
        addOnloadHook(CustomizeModificationsOfSidebar);
 
    }
 
 
}
 
}
  
//</source>
+
jQuery('#footer-places-disclaimer').find('a')
 +
  .attr('href', 'https://lehrerweb.wien/footer-nav/impressum')
 +
  .attr('target', '_blank')

Version vom 20. März 2024, 13:26 Uhr

/**
 * MediaWiki:Common.js
 */

// remove empty p-Tags & hide p-Tags only containing br-Tags
$content = jQuery( '#content' );
$content.remove( 'p:empty' );
$content.find( 'p > br' ).each( function ( i, e ) {
	$br = jQuery( e );
	if (
		$br.siblings().length === 0 &&
		$br.parent().text().trim().length === 0
	) {
		$br.parent().hide()
	}
} );

// set language code
var languageCode = "de";
var urlParameterDeEasy = "einfach";
if ( window.location.href.indexOf( urlParameterDeEasy ) > -1 ) {
	languageCode = "de-easy";
}
jQuery( '#mw-content-text' ).attr( 'lang', languageCode );
jQuery( 'body' ).attr( 'lang', languageCode );

// increase body height to match sidebar height
var sidebarHeight = jQuery( '#mw-panel' ).outerHeight();
var bodyHeight = jQuery( 'body.mediawiki' ).outerHeight();
if ( sidebarHeight > bodyHeight ) {
	jQuery( '#footer' ).css( 'margin-bottom', sidebarHeight - bodyHeight );
} else {
	jQuery( '#mw-panel' ).height( jQuery( 'body' ).height() )
}

// replace registration link
jQuery( '#pt-createaccount' )
	.attr( 'id', 'pt-gettingstarted' );
jQuery( '#pt-gettingstarted a' )
	.attr( 'href', '/index.php/Kiwithek:Getting_Started' )
	.attr( 'title', 'Lies nach, wie du mit uns in Kontakt treten kannst um an der KiwiThek mitzuarbeiten.' )
	.text( 'Getting Started' );

// insert Bildinformationen template into uploaded file page
var template = '{{Bildinformationen\n' +
	'| Beschreibung = Bitte bearbeite mich und fülle die Bildinfos aus!\n' +
	'| Urheber =\n' +
	'| Herausgeber =\n' +
	'| QuelleText =\n' +
	'| QuelleUrl =\n' +
	'| LizenzText =\n' +
	'| LizenzUrl =\n' +
	'| Originaltitel =\n' +
	'| Bearbeitung =\n' +
	'| GeoLand =\n' +
	'| GeoRegion =\n' +
	'| GeoGPSNorth =\n' +
	'| GeoGPSEast =\n' +
	'| Sonstiges =\n' +
	'}}'
jQuery( '#wpUploadDescription' ).val(template)

// Badge: Page created by children
var hasCreatedByChildrenCategory = jQuery('#catlinks').
  text().
  indexOf('Seiten von Schulteams') >= 0
if (hasCreatedByChildrenCategory) {
  var $pageByChildrenNode = jQuery('<div class="badge badge--children"><img src="/resources/assets/klassenseite_logo.svg" alt="Diese Seite wurde von SchülerInnen erstellt" title="Diese Seite wurde von SchülerInnen erstellt"></div>')

  jQuery($pageByChildrenNode).insertAfter('#firstHeading')
}

jQuery('#footer-places-disclaimer').find('a')
  .attr('href', 'https://lehrerweb.wien/footer-nav/impressum')
  .attr('target', '_blank')