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 298: Baris 298:
         $(document).on('click', '#mip-open-editor', function() { $('#mip-editor').slideToggle(); });
         $(document).on('click', '#mip-open-editor', function() { $('#mip-editor').slideToggle(); });
         loadLinks();
         loadLinks();
    });
})();
/* ==========================================================
  🚀 MIPPEDIA DATA - AUTO PRELOAD INFOBOX
  Fungsi: Mengisi otomatis template Infobox pada halaman baru
  ========================================================== */
(function() {
    $(document).ready(function() {
        var action = mw.config.get('wgAction');
        var ns = mw.config.get('wgNamespaceNumber');
        var pageExists = mw.config.get('wgArticleId') > 0;
        // Hanya jalan jika: Mode Edit, Namespace Utama, & Halaman Belum Ada
        if ((action === 'edit' || action === 'submit') && ns === 0 && !pageExists) {
            var $textbox = $('#wpTextbox1');
           
            // Cek jika textbox masih kosong (mencegah double-fill)
            if ($textbox.length && $textbox.val().trim() === "") {
                var pageName = mw.config.get('wgTitle');
                var preloadContent = '{{Infobox umum\n|nama = ' + pageName + '\n}}';
               
                $textbox.val(preloadContent);
            }
        }
    });
})();
/* ==========================================================
  🚀 MIPPEDIA DATA - CONTENT GUARD (NAMESPACE 0 ONLY)
  Fungsi: Melarang pembuatan artikel tanpa struktur Infobox
  ========================================================== */
(function() {
    $(document).ready(function() {
        var action = mw.config.get('wgAction');
        var ns = mw.config.get('wgNamespaceNumber');
        if ((action === 'edit' || action === 'submit') && ns === 0) {
           
            // Fungsi panggil notifikasi kotak (Gue samain temanya biar keren)
            function showGuardNotif(title, msg) {
                $('.mip-guard-notif').remove();
                $('<div class="mip-guard-notif" style="position:fixed; top:20px; left:50%; transform:translateX(-50%); width:90%; max-width:450px; background:#fff5f5; border-left:6px solid #f56565; padding:18px; z-index:10005; border-radius:12px; box-shadow:0 15px 35px rgba(0,0,0,0.2); font-family:sans-serif;">' +
                    '<div style="display:flex; align-items:center; gap:12px; margin-bottom:8px;">' +
                        '<span style="font-size:20px;">🚫</span>' +
                        '<strong style="color:#742a2a; font-size:15px;">' + title + '</strong>' +
                    '</div>' +
                    '<p style="margin:0; font-size:13px; color:#742a2a; line-height:1.6;">' + msg + '</p>' +
                '</div>').appendTo('body').delay(6000).fadeOut();
            }
            // Cegah klik tombol Simpan (Save)
            $('#wpSave, #wpPreview, #wpDiff').click(function(e) {
                var content = $('#wpTextbox1').val();
               
                // Logika: Jika tidak mengandung string "{{Infobox"
                if (content.indexOf('{{Infobox') === -1) {
                    e.preventDefault(); // Batalkan proses simpan
                    showGuardNotif(
                        'Struktur Data Tidak Valid',
                        'Mippedia Data hanya menerima entitas dengan format <b>Infobox</b>. Teks artikel biasa dilarang di namespace ini guna menjaga integritas basis data terstruktur.'
                    );
                    return false;
                }
            });
        }
     });
     });
})();
})();