Maintenance

All wikis at Biowikifarm are in read-only mode due to the restoration after a severe cyberattack in October 2023.
After 1 year being shut down the Biowikifarm is online again.
You see the latest restored version from 18th October 2023.

Difference between revisions of "MediaWiki:Gadget-HeadingLink.js"

From Species-ID
Jump to: navigation, search
m (allow main + template namespace)
m (fix layout)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
// <source lang="javascript">
+
// <syntaxhighlight lang="javascript">
// This JavaScript will be loaded only for some pages, see MediaWiki:Common.js
+
/** 
// Copyright A. Plank
+
* This JavaScript will be loaded only for some pages, see MediaWiki:Common.js
/*
+
* This program is free software; you can redistribute it and/or modify it under the terms of  
  This program is free software; you can redistribute it and/or modify it under the terms of  
+
* the EUPL v.1.1 or (at your option) the GNU General Public License as published by the Free  
  the EUPL v.1.1 or (at your option) the GNU General Public License as published by the Free  
+
* Software Foundation; either GPL v.3 or (at your option) any later version. This program is   
  Software Foundation; either GPL v.3 or (at your option) any later version. This program is   
+
* distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the   
  distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the   
+
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General   
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General   
+
* Public License (http://www.gnu.org/licenses/) for more details.   
  Public License (http://www.gnu.org/licenses/) for more details.   
+
* Author: A. Plank
 +
* @description add a link of the section while hovering it
 +
* @requires $.jqueryEscapeId()
 +
* @requires $.jI18n
 +
* @requires $.resource()
 
  */
 
  */
/* global $j */
+
/*jslint sloppy: true, indent: 2, white: true */
/* add a link of the section while hovering it */
+
/*global clearInterval: false, clearTimeout: false, document: false, event: false, frames: false, history: false, Image: false, location: false, name: false, navigator: false, Option: false, parent: false, screen: false, setInterval: false, setTimeout: false, window: false, XMLHttpRequest: false, $: false, mw: false */
switch (mw.config.get( 'wgNamespaceNumber' )) {
+
 
  case  0: // main namespace
+
(function () {
  case 10: // template namespace
+
  function init_HeadingLink () {
    if ($j('h1,h2,h3,h4').length) {
+
    switch (mw.config.get( 'wgNamespaceNumber' )) {
      $j('h1,h2,h3,h4').mouseenter(function () {
+
      case  0: // main namespace
        hrefID = $j(this).find('.mw-headline').attr('id');
+
      case  1: // discussion namespace
        hrefID = hrefID === 'undefined' ? false : hrefID;
+
      case  2: // user namespace
        hasCurRevisionId = mw.config.get( 'wgCurRevisionId') ? true : false;
+
      case 10: // template namespace
        tmpArtilePath   = mw.config.get( 'wgServer') +  
+
      case 12: // help namespace
            mw.config.get( 'wgArticlePath').replace(/\$1/, mw.config.get( 'wgPageName')) ;
+
      case 200: // portal namespace
        msgBox = '<div id=linkmsg_' + hrefID + ' style=display:none class=js-messagebox >' +  
+
        if ($('h1,h2,h3,h4').length) {
          ( $.jI18n.en.toolTipHeadingLinkHelp ? $.resource('toolTipHeadingLinkHelp') : '(1) Normal link to this head line or (2) the permanent link with version number:' ) +
+
          $('h1,h2,h3,h4').mouseenter(function () {
          '<ol>' +  
+
            var hrefID = $(this).find('.mw-headline').attr('id') === undefined ? false : $(this).find('.mw-headline').attr('id'),
            '<li>' + tmpArtilePath + ( hrefID ? '#' + hrefID : '' ) + '</li>' +
+
              hasCurRevisionId = (mw.config.get( 'wgCurRevisionId') ? true : false),
            ( hasCurRevisionId ? '<li>' + tmpArtilePath + '?oldid=' + mw.config.get('wgCurRevisionId') + ( hrefID ? '#' + hrefID : '' ) + '</li>' : '')  +
+
              tmpArtilePath = (mw.config.get( 'wgServer') +  
          '</ol></div>';
+
                mw.config.get( 'wgArticlePath').replace(/\$1/, mw.config.get( 'wgPageName')));
        $j(this).append('<a ' +  
+
            if (hrefID) {
          ' class="headerlink" ' +  
+
              msgBoxHeadinglink = '<div id=linkmsg_' + hrefID + ' style=display:none class=js-messagebox >' +  
          ' onclick="$j(this).parent().before( msgBox );' +  
+
                ( $.jI18n.en.HeadingLink_toolTipHeadingLinkHelp ? $.resource('HeadingLink_toolTipHeadingLinkHelp') : '(1) Normal link to this head line or (2) the permanent link with version number:' ) +
            '$j(\'#linkmsg_' + hrefID + '\').slideDown(\'slow\');' +
+
                '<ol>' +  
            '$j(\'#linkmsg_' + hrefID + '\').mouseleave (function () {$j(this).slideUp(\'slow\', function () {$j(this).remove;});} );' +  
+
                  '<li>' + tmpArtilePath + ( hrefID ? '#' + hrefID : '' ) + '</li>' +
            '$j(this).attr(\'href\',\'#linkmsg_' + hrefID + '\')" ' +  
+
                  ( hasCurRevisionId ? '<li>' + tmpArtilePath + '?oldid=' + mw.config.get('wgCurRevisionId') + ( hrefID ? '#' + hrefID : '' ) + '</li>' : '')  +
          ' style="color:#CCCCCC; margin-left:0.2em;" ' +  
+
                '</ol></div>';
          ' title="' + ( $.jI18n.en.toolTipHeadingLink ? $.resource('toolTipHeadingLink') : 'Click to get a (permanent) link of this headline' ) + '" ' +  
+
              if ( $(this).find('.headinglink').length === 0 ) {
          ' href="#" ><img src="http://species-id.net/o/media/f/f9/Button-sprite_link-pale.png"  style="vertical-align:middle;" width="16" height="16"></a>');
+
                $(this).append(' '
      }).mouseleave(function () {
+
                + '<span ' +
        $j(this).find('a.headerlink').remove();
+
                  ' class="headinglink" ' +  
      });
+
                  ' onclick="' +
 +
                    '$(this).parent().before( msgBoxHeadinglink );' +  
 +
                    '$($.jqueryEscapeId(\'#linkmsg_' + hrefID + '\'))' +
 +
                      '.slideDown(\'slow\', function() {$(this).addClass(\'is-shown\');} )' +
 +
                      '.mouseleave (function () {if($(this).hasClass(\'is-shown\')) {$(this).slideUp(\'slow\', function () {$(this).remove();return false;});return false;} });' +  
 +
                    '"' +
 +
                  ' style="color:#CCCCCC;position:absolute;left:-22px;margin-left: 0.2em;cursor: pointer;" ' +  
 +
                  ' title="' + ( $.jI18n.en.HeadingLink_toolTipHeadingLink ? $.resource('HeadingLink_toolTipHeadingLink') : 'Click to get a (permanent) link of this headline' ) + '" ' +  
 +
                  ' >'
 +
                +  '<img src="http://species-id.net/o/media/f/f9/Button-sprite_link-pale.png"  style="vertical-align:middle;" width="16" height="16">'
 +
                + '</span>');
 +
              }
 +
            }// if hrefID
 +
          })// mouseenter
 +
          .mouseleave(function () {
 +
            var $this=$(this);
 +
            $this.find('span.headinglink').fadeOut(3000);
 +
            setTimeout(function(){
 +
              $this.find('span.headinglink').remove();
 +
            }, 3500);
 +
          });
 +
        }
 +
        break;
 
     }
 
     }
    break;
+
  }// init_HeadingLink
}
+
  jQuery(document).ready(init_HeadingLink);
// </source>
+
})();
 +
// </syntaxhighlight>

Latest revision as of 14:04, 14 March 2016

// <syntaxhighlight lang="javascript">
/**  
 * This JavaScript will be loaded only for some pages, see MediaWiki:Common.js
 * This program is free software; you can redistribute it and/or modify it under the terms of 
 * the EUPL v.1.1 or (at your option) the GNU General Public License as published by the Free 
 * Software Foundation; either GPL v.3 or (at your option) any later version. This program is  
 * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the  
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General  
 * Public License (http://www.gnu.org/licenses/) for more details.  
 * Author: A. Plank
 * @description add a link of the section while hovering it 
 * @requires $.jqueryEscapeId()
 * @requires $.jI18n
 * @requires $.resource()
 */
/*jslint sloppy: true, indent: 2, white: true */
/*global clearInterval: false, clearTimeout: false, document: false, event: false, frames: false, history: false, Image: false, location: false, name: false, navigator: false, Option: false, parent: false, screen: false, setInterval: false, setTimeout: false, window: false, XMLHttpRequest: false, $: false, mw: false */

(function () {
  function init_HeadingLink () {
    switch (mw.config.get( 'wgNamespaceNumber' )) {
      case  0: // main namespace
      case  1: // discussion namespace
      case  2: // user namespace
      case 10: // template namespace
      case 12: // help namespace
      case 200: // portal namespace
        if ($('h1,h2,h3,h4').length) {
          $('h1,h2,h3,h4').mouseenter(function () {
            var hrefID = $(this).find('.mw-headline').attr('id') === undefined ? false : $(this).find('.mw-headline').attr('id'),
              hasCurRevisionId = (mw.config.get( 'wgCurRevisionId') ? true : false),
              tmpArtilePath = (mw.config.get( 'wgServer') + 
                mw.config.get( 'wgArticlePath').replace(/\$1/, mw.config.get( 'wgPageName')));
            if (hrefID) {
              msgBoxHeadinglink = '<div id=linkmsg_' + hrefID + ' style=display:none class=js-messagebox >' + 
                ( $.jI18n.en.HeadingLink_toolTipHeadingLinkHelp ? $.resource('HeadingLink_toolTipHeadingLinkHelp') : '(1) Normal link to this head line or (2) the permanent link with version number:' ) +
                '<ol>' + 
                  '<li>' + tmpArtilePath + ( hrefID ? '#' + hrefID : '' ) + '</li>' +
                  ( hasCurRevisionId ? '<li>' + tmpArtilePath + '?oldid=' + mw.config.get('wgCurRevisionId') + ( hrefID ? '#' + hrefID : '' ) + '</li>' : '')  +
                '</ol></div>';
              if ( $(this).find('.headinglink').length === 0 ) {
                $(this).append(' '
                 + '<span ' +
                   ' class="headinglink" ' + 
                   ' onclick="' +
                     '$(this).parent().before( msgBoxHeadinglink );' + 
                     '$($.jqueryEscapeId(\'#linkmsg_' + hrefID + '\'))' + 
                       '.slideDown(\'slow\', function() {$(this).addClass(\'is-shown\');} )' + 
                       '.mouseleave (function () {if($(this).hasClass(\'is-shown\')) {$(this).slideUp(\'slow\', function () {$(this).remove();return false;});return false;} });' + 
                     '"' +
                   ' style="color:#CCCCCC;position:absolute;left:-22px;margin-left: 0.2em;cursor: pointer;" ' + 
                   ' title="' + ( $.jI18n.en.HeadingLink_toolTipHeadingLink ? $.resource('HeadingLink_toolTipHeadingLink') : 'Click to get a (permanent) link of this headline' ) + '" ' + 
                   ' >'
                 +  '<img src="http://species-id.net/o/media/f/f9/Button-sprite_link-pale.png"  style="vertical-align:middle;" width="16" height="16">' 
                 + '</span>');
              }
            }// if hrefID
          })// mouseenter
          .mouseleave(function () {
            var $this=$(this);
            $this.find('span.headinglink').fadeOut(3000);
            setTimeout(function(){ 
              $this.find('span.headinglink').remove();
            }, 3500);
          });
        }
        break;
    }
  }// init_HeadingLink
  jQuery(document).ready(init_HeadingLink);
})();
// </syntaxhighlight>