MediaWiki:Common.js

Revision as of 14:13, 27 May 2026 by Admin (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* ==========================================================
   🚀 MIPPEDIA DATA BUTTON ONLY (Otomatis - English Bridge Version)
   Hanya memunculkan tombol jika data tersedia di pusat.
   Mendukung pencarian pintar berbasis Interlanguage Links (EN -> ID).
   ========================================================== */
$(document).ready(function() {
    var pageName = mw.config.get('wgPageName');
    var namespace = mw.config.get('wgNamespaceNumber');
    var dataDomain = 'https://data.mippedia.org';

    // Jalankan hanya di namespace artikel resmi
    if (namespace === 0) {
        // Otak Pintar: Ambil daftar link bahasa lain yang ada di artikel ini
        var langLinks = mw.config.get('wgLanguageLinks');
        var targetDataPage = '';

        if (langLinks && langLinks.length > 0) {
            // Cari apakah ada link yang mengarah ke bahasa Indonesia (id)
            for (var i = 0; i < langLinks.length; i++) {
                if (langLinks[i].lang === 'id') {
                    // Ketemu! Ambil judul artikel versi Bahasa Indonesianya
                    targetDataPage = langLinks[i].title.replace(/\s+/g, '_');
                    break;
                }
            }
        }

        // Fallback: Jika artikel belum dihubungkan ke bahasa Indonesia, pakai nama aslinya
        if (!targetDataPage) {
            targetDataPage = pageName;
        }

        // Cek langsung ke Mippedia Data menggunakan nama halaman Indonesia/aslinya
        $.ajax({
            url: dataDomain + '/api.php',
            data: { 
                action: 'query', 
                titles: targetDataPage, 
                format: 'json', 
                origin: '*' 
            },
            dataType: 'jsonp',
            success: function(res) {
                if (res && res.query && res.query.pages) {
                    var pages = res.query.pages;
                    var isExist = false;
                    
                    for (var id in pages) {
                        if (parseInt(id) > 0) {
                            isExist = true;
                            break;
                        }
                    }

                    // Jika data valid ditemukan di pusat, munculkan tombol melayang
                    if (isExist) {
                        injectFloatingDataBtn(targetDataPage, dataDomain);
                    }
                }
            }
        });
    }

    function injectFloatingDataBtn(name, domain) {
        if ($('#mippedia-data-btn').length) return;

        var $btn = $('<a>', {
            id: 'mippedia-data-btn',
            href: domain + '/wiki/' + encodeURIComponent(name),
            target: '_blank',
            style: 'position: absolute; right: 10px; top: -32px; background: #36c; color: #fff; padding: 4px 10px; border-radius: 4px; font-weight: bold; font-size: 10px; text-decoration: none; z-index: 1000; box-shadow: 0 2px 4px rgba(0,0,0,0.1);',
            text: 'DATA'
        });

        var $target = $('.page-actions-menu, .mw-editsection-visualeditor, #ca-edit, .minerva__tab-container').first();
        
        if ($target.length) {
            $target.css('position', 'relative').append($btn);
        } else {
            $('#firstHeading').css('position', 'relative').append($btn);
        }
    }
});