mic_none

User:DVRTed/refInfo.js Source: en.wikipedia.org/wiki/User:DVRTed/refInfo.js

/*
Shows {{Ref info}} of the current page in a dialog box 
when "Show ref info" is clicked in the Tools section.
*/

(async () => {
  await mw.loader.using([
    "oojs-ui-core",
    "oojs-ui-windows",
    "mediawiki.api",
    "jquery.makeCollapsible",
  ]);

  async function show_page_refinfo() {
    const current_page = mw.config.get("wgPageName");

    try {
      const data = await new mw.Api().get({
        action: "parse",
        text: `{{Ref info|${current_page}}}`,
        contentmodel: "wikitext",
        formatversion: 2,
      });

      const $html = $("<div>").html(data.parse.text);
      $html.find(".mw-").makeCollapsible();

      await OO.ui.alert($html);
    } catch (err) {
      OO.ui.alert("Failed to fetch ref info.");
      console.error(err);
    }
  }

  if (mw.config.get("wgCanonicalNamespace") !== "Special") {
    mw.util.addPortletLink(
      "p-tb",
      "#",
      "Show ref info",
      "pt-refinfo",
      "Shows ref info of a page"
    );

    document
      .getElementById("pt-refinfo")
      .addEventListener("click", function (e) {
        e.preventDefault();
        show_page_refinfo();
      });
  }
})();