MediaWiki:Common.js
Appearance
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
mw.loader.using('mediawiki.api', function () {
var api = new mw.Api();
var cache = {}; // title -> { overviewHTML, strategyHTML }
function extractParts(html) {
var $wrap = $('<div>').html(html);
var $overview = $wrap.find('.build-layout-container').first();
var $strategy = $wrap.find('.build-strategy').first();
return {
overview: $overview.length ? $overview.prop('outerHTML') : '<div>Overview bulunamadı.</div>',
strategy: $strategy.length ? $strategy.prop('outerHTML') : '<div>Strategy bulunamadı.</div>'
};
}
function loadBuild(title, cb) {
if (cache[title]) return cb(cache[title]);
api.post({
action: 'parse',
format: 'json',
page: title,
prop: 'text'
}).done(function (res) {
var html = (res.parse && res.parse.text && res.parse.text['*']) || '';
var parts = extractParts(html);
cache[title] = { overviewHTML: parts.overview, strategyHTML: parts.strategy };
cb(cache[title]);
}).fail(function () {
cb({ overviewHTML: '<div>Yüklenemedi.</div>', strategyHTML: '<div>Yüklenemedi.</div>'});
});
}
function onToggleClick(btn) {
var $btn = $(btn);
var state = $btn.attr('data-state') || 'closed';
var $row = $btn.closest('.build-row--interactive');
var title = $row.attr('data-page');
var $panel = $('.build-inline-panel[data-target="' + title.replace(/"/g,'"') + '"]');
if (state === 'open') {
$btn.attr('data-state', 'closed').text('Göster');
$panel.attr('hidden', true);
return;
}
// önce diğer açık panelleri kapat (opsiyonel)
$('.build-inline-panel:not([hidden])').attr('hidden', true);
$('.br-toggle[data-state="open"]').attr('data-state','closed').text('Göster');
$btn.attr('data-state', 'open').text('Gizle');
$panel.removeAttr('hidden');
// İlk açılışta yükle
if (!$panel.data('loaded')) {
loadBuild(title, function (data) {
$panel.find('.tab-panel[data-tab="overview"]').html(data.overviewHTML);
$panel.find('.tab-panel[data-tab="strategy"]').html(data.strategyHTML);
$panel.data('loaded', '1');
});
}
}
// Satır düğmesi
$(document).on('click', '.br-toggle', function () { onToggleClick(this); });
// Basit sekme kontrolü
$(document).on('click', '.build-inline-tabs .tab-btn', function () {
var $btn = $(this);
var tab = $btn.attr('data-tab');
var $panel = $btn.closest('.build-inline-panel');
$panel.find('.tab-btn').removeClass('active');
$btn.addClass('active');
$panel.find('.tab-panel').attr('hidden', true);
$panel.find('.tab-panel[data-tab="' + tab + '"]').removeAttr('hidden');
});
});