MediaWiki:Common.js: Difference between revisions
Appearance
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));
});
});