A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.

To request an account, ask an autoconfirmed user on Chat (such as one of these permanent autoconfirmed members).

MediaWiki:Gadget-edittop.js: Difference between revisions

From WHATWG Wiki
Jump to navigation Jump to search
m (1 revision: Import edittop gadget)
 
(No difference)

Latest revision as of 18:38, 23 October 2012

// **********************************************************************
// **                 ***WARNING GLOBAL GADGET FILE***                 **
// **             changes to this file affect many users.              **
// **           please discuss on the talk page before editing         **
// **                                                                  **
// **********************************************************************
// Imported from [[User:Alex Smotrov/edittop.js]], version as of: 2007-06-19T04:28:52
// Updated from [[User:TheDJ/Gadget-edittop.js]], version as of: 2009-04-28T11:54:22

if ($.inArray( mw.config.get('wgAction'), [ 'view', 'purge' ]) !== -1 && mw.config.get( 'wgNamespaceNumber' ) >=0) {
  $(function edittop_hook () {
    var localtitles = {
      cs: 'Editovat úvodní sekci',
      en: 'Edit lead section',
      fa: 'ویرایش بخش آغازین',
      fr: 'Modifier le résumé introductif',
      it: 'Modifica della sezione iniziale',
      ja: '導入部を編集',
      ko: '도입부를 편집',
      pa: 'ਸੋਧ',
      pt: 'Editar a seção superior',
      'pt-br': 'Editar a seção superior',
      sr: 'Уреди уводни део'
    };

    var our_content = document.getElementById ("content") || document.getElementById ("mw_content") || document.body;
    var editspans = getElementsByClassName (our_content, "span", "editsection");
    var span1;
    var dir = $('#firstHeading').css('direction') || 'rtl';
    var side = "right";

    if (dir.toLowerCase() == "rtl" ) {
      side = "left";
    }


    for (var i = 0; editspans && i < editspans.length; i++) {
      if (editspans[i].className.indexOf ("plainlinks") == -1) {
        span1 = editspans[i];
        break;
      }
    }
    if (!span1) {
      return;
    }
    var span0 = span1.cloneNode (true);
    var editwidth = span1.offsetWidth;
    if (mw.config.get("skin") == "monobook") {
      mw.util.addCSS ("h1.firstHeading span.editsection {float: " + side + ";}");
    }
    if (mw.config.get("skin") == "modern") {
      mw.util.addCSS ("h1#firstHeading span.editsection {float: " + side + ";}");
    }
    if (mw.config.get("skin") == "vector") {
      mw.util.addCSS ("h1.firstHeading span.editsection {font-size: 50%;}");
    } else {
      editwidth += 10;
    }
    var topicons = getElementsByClassName (our_content, "div", "topicon");
    for (var el = 0; topicons && el < topicons.length; el++) {
      if (dir.toLowerCase() == "rtl" ) {
        topicons[el].style.marginLeft = editwidth + "px";
      } else {
        topicons[el].style.marginRight = editwidth + "px";
      }
    }
    var mwfrtag = document.getElementById ("mw-fr-revisiontag");
    if (mwfrtag) {
      if (dir.toLowerCase() == "rtl" ) {
        mwfrtag.style.marginLeft = editwidth + "px";
      } else {
        mwfrtag.style.marginRight = editwidth + "px";
      }
    }

    our_content = document.getElementById ("mw_header") || document.getElementById ("content") || document.body;
    var parent = our_content.getElementsByTagName ("H1")[0];
    parent.insertBefore (span0, parent.firstChild);
    var a = span0.getElementsByTagName ("A")[0];
    if (a.href.indexOf ("&section=T") == -1) {
      a.title = a.title.replace (/(: |:).*$/, "$1" + "0");
      a.setAttribute ("href", a.getAttribute ("href", 2).replace (/&section=\d+/, "&section=0"));
    }
    else { //transcluded
      a.title = localtitles[mw.config.get( 'wgUserLanguage' )] || localtitles.en;
      a.setAttribute ("href", mw.util.wikiGetlink( mw.config.get( 'wgPageName' ) ) + "?action=edit&section=0");
    }
  });
}