MediaWiki:Common.js: Difference between revisions
No edit summary Tags: Reverted Mobile edit Mobile web edit |
No edit summary Tags: Reverted Mobile edit Mobile web edit |
||
| Line 9: | Line 9: | ||
var dataDomain = 'https://data.mippedia.org'; | var dataDomain = 'https://data.mippedia.org'; | ||
// Alamat API Mippedia Bahasa Indonesia | // Alamat API Mippedia Bahasa Indonesia | ||
var indonesianWikiApi = 'https://id.mippedia.org/api.php'; | var indonesianWikiApi = 'https://id.mippedia.org/api.php'; | ||
| Line 89: | Line 89: | ||
if ($('#mippedia-data-btn').length) return; | if ($('#mippedia-data-btn').length) return; | ||
// | // Otak Cerdas Baru: Panggil API MediaWiki lokal buat nyari link image SVG yang valid | ||
var | var api = new mw.Api(); | ||
api.get({ | |||
action: 'query', | |||
titles: 'File:Locked_Data.svg', | |||
prop: 'imageinfo', | |||
iiprop: 'url', | |||
iiurlwidth: 24, // Minta server MediaWiki render ukuran lebar 24px otomatis | |||
format: 'json' | |||
}).done(function(data) { | |||
var imageUrl = ''; | |||
try { | |||
var pages = data.query.pages; | |||
for (var id in pages) { | |||
if (pages[id].imageinfo && pages[id].imageinfo[0]) { | |||
// Dapat URL render resmi berformat PNG/SVG yang didukung browser! | |||
imageUrl = pages[id].imageinfo[0].thumburl || pages[id].imageinfo[0].url; | |||
} | |||
} | |||
} catch (e) { | |||
imageUrl = ''; | |||
} | |||
// Jika gagal dapet gambar, pakai fallback ikon dasar murni teks atau kosongan | |||
if (!imageUrl) return; | |||
var $btn = $('<a>', { | |||
id: 'mippedia-data-btn', | |||
href: domain + '/wiki/' + encodeURIComponent(name), | |||
target: '_blank', | |||
style: 'position: absolute; right: 15px; top: -5px; z-index: 1000; text-decoration: none; display: inline-block; transition: transform 0.2s;', | |||
html: $('<img>', { | |||
src: imageUrl, | |||
alt: 'Data Icon', | |||
style: 'height: 24px; width: 24px; display: block; vertical-align: middle;' | |||
}) | |||
}); | |||
// Efek hover interaktif | |||
$btn.hover( | |||
function() { $(this).css('transform', 'scale(1.15)'); }, | |||
function() { $(this).css('transform', 'scale(1.0)'); } | |||
); | |||
// Target penempatan tombol aksi di Minerva mobile / Desktop skin | |||
var $target = $('.page-actions-menu, .mw-editsection-visualeditor, #ca-edit, .minerva__tab-container').first(); | |||
if ($target.length) { | |||
$target.css('position', 'relative').append($btn); | |||
} else { | |||
} | // Fallback aman agar tidak nabrak teks judul halaman utama | ||
$('#firstHeading').css('position', 'relative').append($btn); | |||
$btn.css('top', '5px'); | |||
} | |||
}); | |||
} | } | ||
}); | }); | ||