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.279: | Baris 1.279: | ||
if ($infobox.length) { | if ($infobox.length) { | ||
// 1. TOMBOL DATA | // 1. TOMBOL DATA MELAYANG (Gak ganggu Tab) | ||
injectFloatingDataBtn(pageName); | injectFloatingDataBtn(pageName); | ||
// 2. FIX GAMBAR ( | // 2. FIX GAMBAR (UKURAN ASLI DARI DATA) | ||
$infobox.find('img').each(function() { | $infobox.find('img').each(function() { | ||
var rawAlt = $(this).attr('alt') || ""; | var rawAlt = $(this).attr('alt') || ""; | ||
| Baris 1.288: | Baris 1.288: | ||
if (fileMatch) { | if (fileMatch) { | ||
var pureName = fileMatch[0].replace(/Berkas:|File:/i, '').trim(); | var pureName = fileMatch[0].replace(/Berkas:|File:/i, '').trim(); | ||
$(this).attr('src', '/thumb.php?f=' + encodeURIComponent(pureName) + '&w= | // Pakai URL asli tanpa paksa lebar 350px | ||
$(this).attr('src', '/thumb.php?f=' + encodeURIComponent(pureName) + '&w=500'); | |||
$(this).attr('srcset', ''); | $(this).attr('srcset', ''); | ||
$(this).css({'width': '100%', 'height': 'auto'}); // Biar pas di kotak infobox | |||
} | } | ||
}); | }); | ||
// 3. FIX | // 3. FIX LINK (BIAR GAK MERAH - JANGAN BUANG KURUNG) | ||
$infobox.find('a').each(function() { | $infobox.find('a').each(function() { | ||
var href = $(this).attr('href') || ''; | var href = $(this).attr('href') || ''; | ||
var | var fullText = $(this).text().trim(); | ||
// Ambil judul asli dari attribute title (ini yang paling akurat dari MediaWiki) | |||
var realTarget = $(this).attr('title') || fullText; | |||
$(this).attr('data-real-title', | |||
// | if (href.indexOf('http') !== 0 && fullText.length > 2) { | ||
$(this).attr('data-real-title', realTarget); | |||
// Tampilan teks tetep apa adanya (biar pipe link [[A|B]] tetep muncul B) | |||
} else { | } else { | ||
$(this).addClass('is-safe-link'); | $(this).addClass('is-safe-link'); | ||
| Baris 1.308: | Baris 1.311: | ||
}); | }); | ||
// 4. MASUKKAN KE CONTAINER | // 4. MASUKKAN KE CONTAINER | ||
$('#mip-loading').hide(); | $('#mip-loading').hide(); | ||
$container.html($infobox); | $container.html($infobox); | ||
// 5. JALANKAN CEK LINK | // 5. JALANKAN CEK LINK (CASE-INSENSITIVE) | ||
checkLinksPerfect($infobox); | |||
} else { | } else { | ||
$('#mip-loading').text('Data tidak tersedia.'); | $('#mip-loading').text('Data tidak tersedia.'); | ||
| Baris 1.324: | Baris 1.327: | ||
function injectFloatingDataBtn(name) { | function injectFloatingDataBtn(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: 'position: absolute; right: 10px; top: - | style: 'position: absolute; right: 10px; top: -30px; background: #36c; color: #fff; padding: 4px 10px; border-radius: 4px; font-weight: bold; font-size: 10px; text-decoration: none; z-index: 1000;', | ||
text: 'DATA' | text: 'DATA' | ||
}); | }); | ||
var $target = $('.page-actions-menu, .mw-editsection-visualeditor, #ca-edit'); | var $target = $('.page-actions-menu, .mw-editsection-visualeditor, #ca-edit'); | ||
if ($target.length) { | if ($target.length) { | ||
| Baris 1.340: | Baris 1.340: | ||
} | } | ||
function | function checkLinksPerfect($container) { | ||
var titles = []; | var titles = []; | ||
$container.find('a:not(.is-safe-link)').each(function() { | $container.find('a:not(.is-safe-link)').each(function() { | ||
| Baris 1.354: | Baris 1.354: | ||
success: function(res) { | success: function(res) { | ||
var pages = res.query.pages; | var pages = res.query.pages; | ||
var | var existMap = {}; | ||
// Mapping judul yang ada di wiki lokal (Lowercase) | // Mapping judul yang beneran ada di wiki lokal (Lowercase) | ||
for (var id in pages) { | for (var id in pages) { | ||
if (parseInt(id) > 0) | if (parseInt(id) > 0) existMap[pages[id].title.toLowerCase()] = pages[id].title; | ||
} | } | ||
| Baris 1.363: | Baris 1.363: | ||
var myTitle = $(this).attr('data-real-title'); | var myTitle = $(this).attr('data-real-title'); | ||
var lower = myTitle.toLowerCase(); | var lower = myTitle.toLowerCase(); | ||
if ( | |||
// | if (existMap[lower]) { | ||
$(this).removeClass('new').attr('href', mw.util.getUrl( | // KETEMU: Jadi Biru (Pakai judul resmi dari database) | ||
$(this).removeClass('new').attr('href', mw.util.getUrl(existMap[lower])); | |||
} else { | } else { | ||
// | // GAK KETEMU: Tetep Merah | ||
$(this).addClass('new').attr('href', mw.util.getUrl(myTitle, { action: 'edit', redlink: '1' })); | $(this).addClass('new').attr('href', mw.util.getUrl(myTitle, { action: 'edit', redlink: '1' })); | ||
} | } | ||