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.338: | Baris 1.338: | ||
/* ========================================================== | /* ========================================================== | ||
🚀 MIPPEDIA METADATA GUARD - RADAR SYSTEM ( | 🚀 MIPPEDIA METADATA GUARD - RADAR SYSTEM (V5) | ||
Status: | Status: Professional Messaging | Hybrid Mobile/Desktop | ||
========================================================== */ | ========================================================== */ | ||
(function($, mw) { | (function($, mw) { | ||
| Baris 1.350: | Baris 1.350: | ||
var originalShortDesc = null; | var originalShortDesc = null; | ||
function validateAndBlock(e) { | function validateAndBlock(e) { | ||
var $textbox = $('#wpTextbox1, textarea.previewable-render, .editor-container textarea, textarea[name="wpTextbox1"]'); | var $textbox = $('#wpTextbox1, textarea.previewable-render, .editor-container textarea, textarea[name="wpTextbox1"]'); | ||
| Baris 1.359: | Baris 1.358: | ||
var currentShortDesc = currentMatch ? currentMatch[0] : ""; | var currentShortDesc = currentMatch ? currentMatch[0] : ""; | ||
if (originalShortDesc === null) { | if (originalShortDesc === null) { | ||
originalShortDesc = currentShortDesc; | originalShortDesc = currentShortDesc; | ||
| Baris 1.366: | Baris 1.364: | ||
if (originalShortDesc !== currentShortDesc) { | if (originalShortDesc !== currentShortDesc) { | ||
// --- PESAN PROFESIONAL BARU --- | |||
window.alert( | window.alert( | ||
" | "MIPPEDIA SYSTEM NOTIFICATION\n" + | ||
" | "──────────────────────────────\n\n" + | ||
" | "Sinkronisasi otomatis terdeteksi tidak valid.\n\n" + | ||
"Untuk menjaga integritas metadata, deskripsi singkat (ShortDescription) wajib dikelola melalui repositori Mippedia Data.\n\n" + | |||
"Tindakan: Harap urungkan perubahan manual pada kode {{SHORTDESC}} untuk melanjutkan proses penyimpanan." | |||
); | ); | ||
e.preventDefault(); | e.preventDefault(); | ||
e.stopPropagation(); | e.stopPropagation(); | ||
| Baris 1.379: | Baris 1.381: | ||
} | } | ||
// | // Radar untuk menangkap elemen editor saat muncul (terutama di Mobile) | ||
var observer = new MutationObserver(function() { | var observer = new MutationObserver(function() { | ||
var $textbox = $('#wpTextbox1, .editor-container textarea, textarea[name="wpTextbox1"]'); | var $textbox = $('#wpTextbox1, .editor-container textarea, textarea[name="wpTextbox1"]'); | ||
| Baris 1.386: | Baris 1.388: | ||
var match = content.match(shortDescRegex); | var match = content.match(shortDescRegex); | ||
originalShortDesc = match ? match[0] : ""; | originalShortDesc = match ? match[0] : ""; | ||
} | } | ||
}); | }); | ||
| Baris 1.392: | Baris 1.393: | ||
observer.observe(document.body, { childList: true, subtree: true }); | observer.observe(document.body, { childList: true, subtree: true }); | ||
// | // Event listener untuk tombol simpan di berbagai platform | ||
$(document).on('click mousedown touchstart', | $(document).on('click mousedown touchstart', | ||
'#wpSave, .mw-ui-button.primary, button.submit, .editor-save, .save-button, button[type="submit"]', | '#wpSave, .mw-ui-button.primary, button.submit, .editor-save, .save-button, button[type="submit"]', | ||
| Baris 1.400: | Baris 1.401: | ||
); | ); | ||
window.addEventListener('submit', function(e) { | window.addEventListener('submit', function(e) { | ||
if (!validateAndBlock(e)) | if (!validateAndBlock(e)) e.preventDefault(); | ||
}, true); | }, true); | ||
})(jQuery, mediaWiki); | })(jQuery, mediaWiki); | ||