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.325: Baris 1.325:
     });
     });
});
});
/* ==========================================================
  🧠 MIPPEDIA SMART-SEARCH PREVIEW (Contextual Suggestions)
  Fungsi: Menampilkan saran otomatis berdasarkan artikel yang sedang dibaca
  ========================================================== */
(function() {
    $(document).ready(function() {
        // 1. Fungsi ambil data artikel terkait dari halaman saat ini
        function getContextualSuggestions() {
            var suggestions = [];
            // Ambil link internal dari paragraf pertama atau kategori
            $('#mw-content-text p a').slice(0, 5).each(function() {
                var title = $(this).attr('title');
                var href = $(this).attr('href');
                if (title && href && !href.includes(':')) {
                    suggestions.push({ title: title, url: href });
                }
            });
            return suggestions;
        }
        // 2. CSS untuk Styling Kotak Saran "Pintar"
        $('<style>').text(`
            .mip-smart-suggestion-box {
                padding: 15px;
                background: #fff;
            }
            .mip-suggest-item {
                display: flex;
                align-items: center;
                padding: 10px;
                border-bottom: 1px solid #eee;
                cursor: pointer;
            }
            .mip-suggest-item:before {
                content: '📄';
                margin-right: 10px;
                font-size: 16px;
            }
            .mip-suggest-title {
                font-size: 14px;
                color: #3498db;
                font-weight: bold;
            }
            .mip-suggest-label {
                font-size: 11px;
                color: #777;
                margin-bottom: 8px;
                display: block;
                text-transform: uppercase;
                letter-spacing: 1px;
            }
        `).appendTo('head');
        // 3. Monitor pembukaan Overlay Pencarian (Mobile)
        $(document).on('click', '.search-box, #searchIcon, .mw-ui-icon-minerva-search', function() {
            // Tunggu sebentar sampai overlay pencarian mobile muncul
            setTimeout(function() {
                var $overlay = $('.search-content, .results');
                var currentInput = $('.mw-ui-input:visible').val();
                // Cek jika kolom pencarian masih kosong (seperti di gambar lo)
                if ($overlay.length && (!currentInput || currentInput.trim() === "")) {
                    var items = getContextualSuggestions();
                   
                    if (items.length > 0) {
                        var html = '<div id="mip-smart-results" class="mip-smart-suggestion-box">';
                        html += '<span class="mip-suggest-label">Mungkin Anda ingin lanjut membaca:</span>';
                       
                        items.forEach(function(item) {
                            html += `
                                <div class="mip-suggest-item" onclick="window.location.href='${item.url}'">
                                    <div class="mip-suggest-title">${item.title}</div>
                                </div>
                            `;
                        });
                       
                        html += '</div>';
                       
                        // Masukkan saran ke dalam overlay yang tadinya kosong
                        $overlay.html(html);
                    }
                }
            }, 300);
        });
        // 4. Hapus saran pintar jika user mulai mengetik (biar balik ke pencarian asli)
        $(document).on('input', '.mw-ui-input', function() {
            if ($(this).val().length > 0) {
                // Biarkan MediaWiki menjalankan pencarian aslinya
            } else {
                // Jika dihapus sampai kosong, munculkan lagi saran pintarnya
                $('.mw-ui-icon-minerva-search').click();
            }
        });
    });
})();