Jump to content

MediaWiki:Common.js: Difference between revisions

From Megabonk Wiki
Blanked the page
Tag: Blanking
 
No edit summary
Tag: Reverted
Line 1: Line 1:
mw.loader.using(['mediawiki.api', 'mediawiki.util']).then(function () {
  var api = new mw.Api();


  function togglePanel($btn) {
    var targetId = $btn.attr('data-target');
    var $panel = $('#' + targetId);
    var $row = $('#build-panel-row-' + $panel.data('title'));
    var $content = $panel.find('.build-content');
    var $loading = $panel.find('.build-loading');
    var isOpen = $row.is(':visible');
    if (isOpen) {
      $row.hide();
      $btn.text('Show');
      return;
    }
    if ($content.data('loaded') === 1) {
      $row.show();
      $btn.text('Hide');
      return;
    }
    $loading.show();
    $row.show();
    $btn.text('Hide');
    var title = $panel.data('title');
    api.get({
      action: 'parse',
      page: title,
      prop: 'text',
      disableeditsection: 1,
      formatversion: 2
    }).then(function (data) {
      var html = (data && data.parse && data.parse.text) ? data.parse.text : '<em>Could not load content.</em>';
      $content.html(html);
      $content.data('loaded', 1);
    }).catch(function () {
      $content.html('<em>Error while loading content.</em>');
    }).always(function () {
      $loading.hide();
    });
  }
  $(document).on('click', '.build-toggle', function () {
    togglePanel($(this));
  });
});

Revision as of 21:16, 4 October 2025

mw.loader.using(['mediawiki.api', 'mediawiki.util']).then(function () {
  var api = new mw.Api();

  function togglePanel($btn) {
    var targetId = $btn.attr('data-target');
    var $panel = $('#' + targetId);
    var $row = $('#build-panel-row-' + $panel.data('title'));
    var $content = $panel.find('.build-content');
    var $loading = $panel.find('.build-loading');

    var isOpen = $row.is(':visible');
    if (isOpen) {
      $row.hide();
      $btn.text('Show');
      return;
    }

    if ($content.data('loaded') === 1) {
      $row.show();
      $btn.text('Hide');
      return;
    }

    $loading.show();
    $row.show();
    $btn.text('Hide');

    var title = $panel.data('title');

    api.get({
      action: 'parse',
      page: title,
      prop: 'text',
      disableeditsection: 1,
      formatversion: 2
    }).then(function (data) {
      var html = (data && data.parse && data.parse.text) ? data.parse.text : '<em>Could not load content.</em>';
      $content.html(html);
      $content.data('loaded', 1);
    }).catch(function () {
      $content.html('<em>Error while loading content.</em>');
    }).always(function () {
      $loading.hide();
    });
  }

  $(document).on('click', '.build-toggle', function () {
    togglePanel($(this));
  });
});