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; | |||
} | |||
}); | |||
} | |||
}); | }); | ||
})(); | })(); | ||