Jump to content

MediaWiki:Common.js: Difference between revisions

From Megabonk Wiki
No edit summary
Tag: Reverted
No edit summary
Tag: Reverted
Line 1: Line 1:
/* MediaWiki:Common.js — expandable build rows */
mw.loader.using(['mediawiki.api','mediawiki.util']).then(function(){
mw.loader.using(['mediawiki.api', 'mediawiki.util']).then(function () {
   var api = new mw.Api();
   var api = new mw.Api();
 
   function togglePanel($btn){
   function togglePanel($btn) {
     var targetId = $btn.attr('data-target');
     var targetId = $btn.attr('data-target');             // e.g. build-panel-Fox_Builds%2FWhatever
     var $panel = $('#'+targetId);
     var $panel = $('#' + targetId);
     var $panelRow = $panel.closest('tr');
     var slug = $panel.data('slug');                      // set in template via data-slug
    var $row = $('#build-panel-row-' + slug);
     var $content = $panel.find('.build-content');
     var $content = $panel.find('.build-content');
     var $loading = $panel.find('.build-loading');
     var $loading = $panel.find('.build-loading');


     var isOpen = $row.is(':visible');
     if ($panelRow.is(':visible')) { $panelRow.hide(); $btn.text('Show'); return; }
    if (isOpen) { $row.hide(); $btn.text('Show'); return; }
     $panelRow.show(); $btn.text('Hide');
 
     if ($content.data('loaded') === 1) { $row.show(); $btn.text('Hide'); return; }
 
    $loading.show(); $row.show(); $btn.text('Hide');


     var title = $panel.data('title');                   // original page title (with spaces)
     if ($content.data('loaded')===1) return;


     api.get({
    $loading.show();
      action: 'parse',
     api.get({action:'parse',page:$panel.data('title'),prop:'text',disableeditsection:1,formatversion:2})
      page: title,
      .then(function(data){
      prop: 'text',
        var html=(data && data.parse && data.parse.text)?data.parse.text:'<em>Could not load content.</em>';
      disableeditsection: 1,
        $content.html(html);
      formatversion: 2
        $content.data('loaded',1);
    }).then(function (data) {
      })
      var html = (data && data.parse && data.parse.text) ? data.parse.text : '<em>Could not load content.</em>';
      .catch(function(){ $content.html('<em>Error while loading content.</em>'); })
      $content.html(html);
      .always(function(){ $loading.hide(); });
      $content.data('loaded', 1);
    }).catch(function () {
      $content.html('<em>Error while loading content.</em>');
    }).always(function () {
      $loading.hide();
    });
   }
   }
 
   $(document).on('click','a.build-toggle',function(e){ e.preventDefault(); togglePanel($(this)); });
   $(document).on('click', '.build-toggle', function () { togglePanel($(this)); });
});
});

Revision as of 21:42, 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 $panelRow = $panel.closest('tr');
    var $content = $panel.find('.build-content');
    var $loading = $panel.find('.build-loading');

    if ($panelRow.is(':visible')) { $panelRow.hide(); $btn.text('Show'); return; }
    $panelRow.show(); $btn.text('Hide');

    if ($content.data('loaded')===1) return;

    $loading.show();
    api.get({action:'parse',page:$panel.data('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','a.build-toggle',function(e){ e.preventDefault(); togglePanel($(this)); });
});