MediaWiki:Common.js: Perbedaan antara revisi
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
||
| Baris 1.309: | Baris 1.309: | ||
}); | }); | ||
/* * Skrip Penarik Infobox Otomatis Mippedia ( | /* * Skrip Penarik Infobox Otomatis Mippedia (Anti-Galat Pratinjau) | ||
* Fungsi: | * Fungsi: Tarik data, fix URL gambar, dan matikan pop-up rusak (MultimediaViewer). | ||
*/ | */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
var pageName = mw.config.get('wgPageName'); | var pageName = mw.config.get('wgPageName'); | ||
var container = $('#mip-infobox-container'); | var container = $('#mip-infobox-container'); | ||
var dataDomain = 'https://data.mippedia.org'; // Domain pusat data | var dataDomain = 'https://data.mippedia.org'; // Domain pusat data lo | ||
if (container.length) { | if (container.length) { | ||
| Baris 1.332: | Baris 1.332: | ||
var html = data.parse.text['*']; | var html = data.parse.text['*']; | ||
var $html = $(html); | var $html = $(html); | ||
var infobox = $html.find('table.infobox'); | var infobox = $html.find('table.infobox'); | ||
| Baris 1.345: | Baris 1.344: | ||
var oldSrc = $img.attr('src'); | var oldSrc = $img.attr('src'); | ||
// Fix Source Gambar | // Fix Source Gambar (agar muncul di infobox) | ||
if (oldSrc && !oldSrc.startsWith('http')) { | if (oldSrc && !oldSrc.startsWith('http')) { | ||
$img.attr('src', dataDomain + oldSrc); | $img.attr('src', dataDomain + oldSrc); | ||
} | } | ||
// Fix Srcset (untuk layar | // Fix Srcset (untuk layar HP/Retina) | ||
var oldSrcset = $img.attr('srcset'); | var oldSrcset = $img.attr('srcset'); | ||
if (oldSrcset) { | if (oldSrcset) { | ||
| Baris 1.360: | Baris 1.359: | ||
} | } | ||
// 3. FIX LINK KLIK | // 3. FIX LINK KLIK & MATIKAN POP-UP RUSAK | ||
if ($link.length) { | if ($link.length) { | ||
var href = $link.attr('href'); | var href = $link.attr('href'); | ||
if (href && (href.includes('Berkas:') || href.includes('File:'))) { | if (href && (href.includes('Berkas:') || href.includes('File:'))) { | ||
var fileName = href.split(':').pop(); | var fileName = href.split(':').pop(); | ||
// | var finalUrl = dataDomain + '/wiki/Berkas:' + fileName; | ||
$link.attr('href', | |||
$link.attr(' | // Update URL ke domain pusat | ||
$link.attr('href', finalUrl); | |||
// KUNCINYA DI SINI: | |||
// Tambahkan class 'mw-no-invert' atau hapus class yang memicu MultimediaViewer | |||
$link.addClass('no-viewer'); | |||
$link.attr('data-mw', ''); // Reset metadata internal | |||
// Paksa buka di tab baru agar tidak memicu galat pop-up hitam | |||
$link.on('click', function(e) { | |||
e.stopPropagation(); // Stop script pop-up lokal | |||
window.open(finalUrl, '_blank'); | |||
return false; | |||
}); | |||
} | } | ||
} | } | ||
| Baris 1.379: | Baris 1.389: | ||
}).remove(); | }).remove(); | ||
// TAMPILKAN | // TAMPILKAN | ||
$('#mip-loading').hide(); | $('#mip-loading').hide(); | ||
container.html(infobox); | container.html(infobox); | ||
} else { | } else { | ||
container.html('<div style="color:#d33; font-weight:bold;">Data tidak ditemukan di pusat | container.html('<div style="color:#d33; font-weight:bold;">Data tidak ditemukan di pusat.</div>'); | ||
} | } | ||
} | } | ||
}, | }, | ||
error: function() { | error: function() { | ||
container.html('<div style="color:#d33; font-weight:bold;">Gagal terhubung ke | container.html('<div style="color:#d33; font-weight:bold;">Gagal terhubung ke Mippedia Data.</div>'); | ||
} | } | ||
}); | }); | ||
} | } | ||
}); | }); | ||