User:Alyxia/common.js: Difference between revisions

From Fyra Wiki
Jump to navigation Jump to search
(Add Special:AllPages to the toolbar through mw.util.addPortletLink)
 
(Support i18n on the AllPages item text)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
$.when(mw.loader.using(['mediawiki.util'])/*, $.ready*/).then(function () {
$.when(
  // addPortletLink returns a DOM node that can be used for modifying its
  mw.loader.using(["mediawiki.api", "mediawiki.util", "mediawiki.jqueryMsg"]),
  // functionality further.
  $.ready
  var node = mw.util.addPortletLink('p-tb', new mw.Title('Special:AllPages').getUrl(), 'All pages');
)
  /* For example, custom functionality upon clicking. (note that this requires
  .then(function () {
    uncommenting the $.ready dependency)
  // Force-load the `allpages` message for i18n support
    return new mw.Api().loadMessagesIfMissing(["allpages"]);
  })
  .then(function () {
    // By default, use the next item after "Special pages", namely "Printable
    // version"
    // If that's not available, use "Page information", because that should ALWAYS
    // be there.
    var beforeItem = $("#t-print");
    beforeItem.length == 0 && (beforeItem = $("#t-info"));
 
    // addPortletLink returns a DOM node that can be used for modifying its
    // functionality further.
    var node = mw.util.addPortletLink(
      "p-tb",
      new mw.Title("Special:AllPages").getUrl(),
      mw.message("allpages").text(), // use the previously fetched message
      "t-allpages",
      "",
      "m",
      beforeItem
    );
 
    /* For example, custom functionality upon clicking.
   $(node).on('click', function (e) {
   $(node).on('click', function (e) {
     console.log('Example');
     console.log('Example');
Line 10: Line 33:
   });
   });
   */
   */
});
  });

Latest revision as of 10:27, 7 June 2023

$.when(
  mw.loader.using(["mediawiki.api", "mediawiki.util", "mediawiki.jqueryMsg"]),
  $.ready
)
  .then(function () {
  	// Force-load the `allpages` message for i18n support
    return new mw.Api().loadMessagesIfMissing(["allpages"]);
  })
  .then(function () {
    // By default, use the next item after "Special pages", namely "Printable
    // version"
    // If that's not available, use "Page information", because that should ALWAYS
    // be there.
    var beforeItem = $("#t-print");
    beforeItem.length == 0 && (beforeItem = $("#t-info"));

    // addPortletLink returns a DOM node that can be used for modifying its
    // functionality further.
    var node = mw.util.addPortletLink(
      "p-tb",
      new mw.Title("Special:AllPages").getUrl(),
      mw.message("allpages").text(), // use the previously fetched message
      "t-allpages",
      "",
      "m",
      beforeItem
    );

    /* For example, custom functionality upon clicking.
  $(node).on('click', function (e) {
    console.log('Example');
    e.preventDefault();
  });
  */
  });