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.001: | Baris 1.001: | ||
/* ========================================================== | /* ========================================================== | ||
🔵 MIPPEDIA IRONCLAD SYSTEM | 🔵 MIPPEDIA IRONCLAD SYSTEM V3 | ||
Fitur: Proteksi | Fitur: Proteksi Namespace Pengguna Saja, Fix Pop-up, & Full Auto | ||
========================================================== */ | ========================================================== */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
| Baris 1.011: | Baris 1.011: | ||
api = new mw.Api(); | api = new mw.Api(); | ||
var vBadgeUrl = mw.config.get('wgScriptPath') + '/index.php?title=Special:Redirect/file/Verified_Badge.png'; | var vBadgeUrl = mw.config.get('wgScriptPath') + '/index.php?title=Special:Redirect/file/Verified_Badge.png'; | ||
// --- 1. POP-UP TERVERIFIKASI ( | // --- 1. POP-UP TERVERIFIKASI (FIXED & CENTERED) --- | ||
function showVerifiedPopup() { | function showVerifiedPopup() { | ||
var modalHtml = '<div id="mippedia-v-modal" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0. | var modalHtml = '<div id="mippedia-v-modal" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.75);z-index:99999;display:flex;align-items:center;justify-content:center;">' + | ||
'<div style="background:#fff;padding:30px;border-radius:20px;width:85%;max-width: | '<div style="background:#fff;padding:30px;border-radius:20px;width:85%;max-width:320px;text-align:center;box-shadow:0 15px 35px rgba(0,0,0,0.5);position:relative;">' + | ||
'<img src="' + vBadgeUrl + '&width=60" style="width:60px;height:60px;margin-bottom: | '<img src="' + vBadgeUrl + '&width=60" style="width:60px;height:60px;margin-bottom:15px;">' + | ||
'<h2 style="margin:0 0 | '<h2 style="margin:0 0 10px 0;color:#1a1a1a;font-family:sans-serif;font-size:20px;font-weight:bold;">Akun Terverifikasi</h2>' + | ||
'<p style="color:#555;line-height:1. | '<p style="color:#555;line-height:1.5;font-size:13px;margin-bottom:20px;font-family:sans-serif;">Mippedia telah mengonfirmasi bahwa identitas pemilik akun ini adalah asli. Lencana ini menandakan kredibilitas tinggi di dalam komunitas kami.</p>' + | ||
'<button id="close-v-modal" style="background:#0095f6;color:#fff;border:none;padding:12px 0;width:100%;border-radius:10px;cursor:pointer;font-weight:bold;font-size: | '<button id="close-v-modal" style="background:#0095f6;color:#fff;border:none;padding:12px 0;width:100%;border-radius:10px;cursor:pointer;font-weight:bold;font-size:14px;">Mengerti</button>' + | ||
'</div></div>'; | '</div></div>'; | ||
$('body').append(modalHtml); | $('body').append(modalHtml); | ||
| Baris 1.027: | Baris 1.026: | ||
} | } | ||
// --- 2. RENDER BADGE | // --- 2. RENDER BADGE --- | ||
api.get({ action: 'query', list: 'categorymembers', cmtitle: 'Category:Pengguna_Terverifikasi', cmlimit: 'max' }).done(function(d) { | api.get({ action: 'query', list: 'categorymembers', cmtitle: 'Category:Pengguna_Terverifikasi', cmlimit: 'max' }).done(function(d) { | ||
var vUsers = d.query.categorymembers.map(function(m) { return m.title.replace('Pengguna:', ''); }); | var vUsers = d.query.categorymembers.map(function(m) { return m.title.replace('Pengguna:', ''); }); | ||
| Baris 1.048: | Baris 1.047: | ||
}); | }); | ||
// --- 3. PROTEKSI KATEGORI ( | // --- 3. PROTEKSI KATEGORI (KHUSUS NAMESPACE PENGGUNA) --- | ||
if (['edit', 'submit'].includes(mw.config.get('wgAction'))) { | if (ns === 2 && (['edit', 'submit'].includes(mw.config.get('wgAction')))) { | ||
function | $('#editform').on('submit', function(e) { | ||
var $box = $('#wpTextbox1'); | var $box = $('#wpTextbox1'); | ||
var content = $box.val(); | var content = $box.val(); | ||
var catPattern = /\[\[Category:Pengguna_Terverifikasi\]\]/gi; | var catPattern = /\[\[Category:Pengguna_Terverifikasi\]\]/gi; | ||
if (catPattern.test(content) && !sessionStorage.getItem('is_system_verify')) { | if (catPattern.test(content) && !sessionStorage.getItem('is_system_verify')) { | ||
alert("⚠️ AKSES DITOLAK: | alert("⚠️ AKSES DITOLAK: Penambahan kategori verifikasi secara manual hanya dilarang di profil pengguna.\n\nSilakan gunakan sistem verifikasi otomatis."); | ||
$box.val(content.replace(catPattern, '') | $box.val(content.replace(catPattern, '')); | ||
return false; | return false; | ||
} | } | ||
| Baris 1.093: | Baris 1.080: | ||
} | } | ||
// --- 5. PANEL ADMIN (BYPASS | // --- 5. PANEL ADMIN (BYPASS) --- | ||
if (ns === 3 && isAdmin && $('#mw-content-text').text().includes("Sedang diverifikasi")) { | if (ns === 3 && isAdmin && $('#mw-content-text').text().includes("Sedang diverifikasi")) { | ||
var $pnl = $('<div style="background:#f0f7ff;border:2px solid #0095f6;padding:12px;border-radius:10px;margin-bottom:10px">').append('<b>🔵 ADMIN SYSTEM</b><br>'); | var $pnl = $('<div style="background:#f0f7ff;border:2px solid #0095f6;padding:12px;border-radius:10px;margin-bottom:10px">').append('<b>🔵 ADMIN SYSTEM</b><br>'); | ||
| Baris 1.100: | Baris 1.087: | ||
$btnApprove.click(function() { | $btnApprove.click(function() { | ||
$(this).prop('disabled', true).text('Working...'); | $(this).prop('disabled', true).text('Working...'); | ||
sessionStorage.setItem('is_system_verify', 'true'); | sessionStorage.setItem('is_system_verify', 'true'); | ||
api.postWithToken('edit', { action: 'edit', title: "Pengguna:" + mw.config.get('wgTitle'), appendtext: '\n[[Category:Pengguna_Terverifikasi]]', summary: 'System: Account Verified' }) | api.postWithToken('edit', { action: 'edit', title: "Pengguna:" + mw.config.get('wgTitle'), appendtext: '\n[[Category:Pengguna_Terverifikasi]]', summary: 'System: Account Verified' }) | ||
.then(function() { | .then(function() { | ||