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 | // 1. TOMBOL DATA TANPA MERUSAK TAB (Position Absolute) | ||
injectFloatingDataBtn(pageName); | |||
// 2. FIX GAMBAR ( | // 2. FIX GAMBAR (Ambil murni nama file) | ||
$infobox.find('img').each(function() { | $infobox.find('img').each(function() { | ||
var rawAlt = $(this).attr('alt') || ""; | var rawAlt = $(this).attr('alt') || ""; | ||
| Baris 1.293: | Baris 1.293: | ||
}); | }); | ||
// 3. FIX LINK (Support | // 3. FIX TEKS & LINK (Support Pipe, Kurung, & Case-Insensitive) | ||
$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) { | ||
// Ambil judul asli dari title kalau ada, kalau nggak pake text | |||
var target = $(this).attr('title') || text; | var target = $(this).attr('title') || text; | ||
$(this).attr('data-real-title', target); | $(this).attr('data-real-title', target); | ||
// | // Bersihkan tampilan teks (buang tanda kurung tambahan) | ||
$(this).text(text.replace(/\s*\(.*?\)\s*/g, '').trim()); | $(this).text(text.replace(/\s*\(.*?\)\s*/g, '').trim()); | ||
} else { | } else { | ||
| Baris 1.307: | Baris 1.308: | ||
}); | }); | ||
// 4. MASUKKAN | // 4. MASUKKAN KE CONTAINER TEMPLATE | ||
$('#mip-loading').hide(); | $('#mip-loading').hide(); | ||
$container.html($infobox); | $container.html($infobox); | ||
// 5. CEK | // 5. JALANKAN CEK LINK BIRU/MERAH (WAJIB) | ||
checkLinksFinal($infobox); | checkLinksFinal($infobox); | ||
} else { | } else { | ||
| Baris 1.317: | Baris 1.318: | ||
} | } | ||
} | } | ||
} | |||
}); | }); | ||
} | } | ||
function | function injectFloatingDataBtn(name) { | ||
if ($('#mippedia-data-btn').length) return; | if ($('#mippedia-data-btn').length) return; | ||
// Pake style melayang biar gak nendang tab navigasi | |||
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: ' | style: 'position: absolute; right: 10px; top: -35px; background: #36c; color: #fff; padding: 3px 8px; border-radius: 4px; font-weight: bold; font-size: 10px; text-decoration: none; z-index: 100;', | ||
text: 'DATA' | text: 'DATA' | ||
}); | }); | ||
// | |||
// Tempel di area aksi halaman (dekat pensil) | |||
var $target = $('.page-actions-menu, .mw-editsection-visualeditor, #ca-edit'); | var $target = $('.page-actions-menu, .mw-editsection-visualeditor, #ca-edit'); | ||
if ($target.length) $target.first(). | if ($target.length) { | ||
$target.first().css('position', 'relative').append($btn); | |||
} | |||
} | } | ||
| Baris 1.342: | Baris 1.346: | ||
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.349: | Baris 1.355: | ||
var pages = res.query.pages; | var pages = res.query.pages; | ||
var map = {}; | var map = {}; | ||
for (var id in pages) { if (id > 0) map[pages[id].title.toLowerCase()] = pages[id].title; } | // Mapping judul yang ada di wiki lokal (Lowercase) | ||
for (var id in pages) { | |||
if (parseInt(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'); | ||
var lower = myTitle.toLowerCase(); | var lower = myTitle.toLowerCase(); | ||
if (map[lower]) { | if (map[lower]) { | ||
// JADI BIRU (Case-Insensitive OK) | |||
$(this).removeClass('new').attr('href', mw.util.getUrl(map[lower])); | $(this).removeClass('new').attr('href', mw.util.getUrl(map[lower])); | ||
} else { | } else { | ||
// 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' })); | ||
} | } | ||