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.262: | Baris 1.262: | ||
}); | }); | ||
$(document).ready(function() { | $(document).ready(function() { | ||
var pageName = mw.config.get('wgPageName'); | var pageName = mw.config.get('wgPageName'); | ||
var namespace = mw.config.get('wgNamespaceNumber'); | var namespace = mw.config.get('wgNamespaceNumber'); | ||
var dataDomain = 'https://data.mippedia.org'; | var dataDomain = 'https://data.mippedia.org'; | ||
var $container = $('#mip-infobox-container'); | |||
if (namespace === 0) { | if (namespace === 0 && $container.length) { | ||
$.ajax({ | $.ajax({ | ||
url: dataDomain + '/api.php', | url: dataDomain + '/api.php', | ||
| Baris 1.282: | Baris 1.279: | ||
if ($infobox.length) { | if ($infobox.length) { | ||
// 1. | // 1. TOMBOL KECIL DI ATAS PENSIL (Gak ganggu Tab) | ||
injectSmallDataBtn(pageName); | |||
// 2. FIX GAMBAR ( | // 2. FIX GAMBAR (Pisahin Nama File dari Deskripsi) | ||
$infobox.find('img').each(function() { | $infobox.find('img').each(function() { | ||
var | var rawAlt = $(this).attr('alt') || ""; | ||
var fileMatch = rawAlt.match(/[^\|\[\]]+\.(jpg|jpeg|png|gif|svg|webp)/i); | |||
var fileMatch = | |||
if (fileMatch) { | if (fileMatch) { | ||
var | var pureName = fileMatch[0].replace(/Berkas:|File:/i, '').trim(); | ||
$(this).attr('src', '/thumb.php?f=' + encodeURIComponent( | $(this).attr('src', '/thumb.php?f=' + encodeURIComponent(pureName) + '&w=350'); | ||
$(this).attr('srcset', ''); | $(this).attr('srcset', ''); | ||
} | } | ||
}); | }); | ||
// 3. FIX LINK (Support | // 3. FIX LINK (Support [[A|B]] & Bracket) | ||
$infobox.find('a').each(function() { | $infobox.find('a').each(function() { | ||
var href = $(this).attr('href') || ''; | var href = $(this).attr('href') || ''; | ||
var text = $(this).text().trim(); | var text = $(this).text().trim(); | ||
if (href.indexOf('http') !== 0 && text.length > 2) { | if (href.indexOf('http') !== 0 && text.length > 2) { | ||
var target = $(this).attr('title') || text; | |||
var | $(this).attr('data-real-title', target); | ||
$(this).attr('data-real-title', | // Hanya tampilkan teks setelah pipe jika ada | ||
$(this).text(text.replace(/\s*\(.*?\)\s*/g, '').trim()); | |||
} else { | } else { | ||
$(this).addClass('is-safe-link'); | $(this).addClass('is-safe-link'); | ||
| Baris 1.312: | Baris 1.307: | ||
}); | }); | ||
// 4. | // 4. MASUKKAN DATA KE TEMPLATE | ||
$('#mip-loading').hide(); | |||
$container.html($infobox); | |||
// 5. CEK STATUS LINK (Case-Insensitive) | // 5. CEK STATUS LINK (Case-Insensitive) | ||
checkLinksFinal($infobox); | checkLinksFinal($infobox); | ||
} else { | |||
$('#mip-loading').text('Data tidak tersedia.'); | |||
} | } | ||
} | } | ||
} | }, | ||
error: function() { $('#mip-loading').text('Gagal memuat data.'); } | |||
}); | }); | ||
} | } | ||
function | function injectSmallDataBtn(name) { | ||
if ($('#mippedia-data-btn').length) return; | if ($('#mippedia-data-btn').length) return; | ||
var $btn = $('<a>', { | var $btn = $('<a>', { | ||
id: 'mippedia-data-btn', | id: 'mippedia-data-btn', | ||
href: dataDomain + '/wiki/' + encodeURIComponent(name), | href: dataDomain + '/wiki/' + encodeURIComponent(name), | ||
target: '_blank', | target: '_blank', | ||
style: 'display: block; background: #36c; color: #fff; padding: | style: 'display: block; background: #36c; color: #fff; padding: 4px 8px; border-radius: 4px; font-weight: bold; text-align: center; font-size: 10px; margin-bottom: 5px; text-decoration: none; width: fit-content; margin-left: auto;', | ||
text: ' | text: 'DATA' | ||
}); | }); | ||
// Taruh tepat di atas menu aksi (ikon pensil) | |||
// | var $target = $('.page-actions-menu, .mw-editsection-visualeditor, #ca-edit'); | ||
var $ | if ($target.length) $target.first().before($btn); | ||
if ($ | |||
} | } | ||
| Baris 1.353: | Baris 1.342: | ||
if (t) titles.push(t); | if (t) titles.push(t); | ||
}); | }); | ||
if (!titles.length) return; | if (!titles.length) return; | ||
$.ajax({ | $.ajax({ | ||
url: mw.util.wikiScript('api'), | url: mw.util.wikiScript('api'), | ||
| Baris 1.362: | Baris 1.349: | ||
var pages = res.query.pages; | var pages = res.query.pages; | ||
var map = {}; | var map = {}; | ||
for (var id in pages) { | for (var id in pages) { if (id > 0) map[pages[id].title.toLowerCase()] = pages[id].title; } | ||
$container.find('a:not(.is-safe-link)').each(function() { | $container.find('a:not(.is-safe-link)').each(function() { | ||
var myTitle = $(this).attr('data-real-title'); | var myTitle = $(this).attr('data-real-title'); | ||