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 USER VERIFICATION SYSTEM ( | 🔵 MIPPEDIA USER VERIFICATION SYSTEM (TECH-SYNC) | ||
Fitur: Request Badge, Auto-Notif, & | Fitur: Request Badge, Auto-Notif, & Centang Biru (Metode Berkas) | ||
========================================================== */ | ========================================================== */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
| Baris 1.011: | Baris 1.011: | ||
var $content = $('#mw-content-text'); | var $content = $('#mw-content-text'); | ||
// --- 1. DISPLAY CENTANG BIRU ( | // --- 1. DISPLAY CENTANG BIRU (PAKE CARA KODE BERKAS) --- | ||
if (ns === 2 || ns === 3) { | if (ns === 2 || ns === 3) { | ||
var api = new mw.Api(); | var api = new mw.Api(); | ||
api.get({ | api.get({ | ||
action: 'query', | action: 'query', | ||
prop: 'categories | prop: 'categories', | ||
titles: pageName, | titles: pageName, | ||
clcategories: 'Category:Pengguna_Terverifikasi | clcategories: 'Category:Pengguna_Terverifikasi' | ||
}).done(function(data) { | }).done(function(data) { | ||
var pages = data.query.pages; | var pages = data.query.pages; | ||
var isVerified = false; | var isVerified = false; | ||
for (var id in pages) { | for (var id in pages) { | ||
if (pages[id].categories) isVerified = true; | if (pages[id].categories) isVerified = true; | ||
} | } | ||
if (isVerified) { | if (isVerified) { | ||
// | // Pake teknik 'parse' biar gambar Verified_Badge.png pasti muncul | ||
var | api.parse('[[Berkas:Verified_Badge.png|20px|link=|middle]]') | ||
.done(function(renderedImage) { | |||
// Hilangkan tag <p> bawaan hasil parse agar tidak berantakan | |||
var cleanImage = $(renderedImage).find('img').first() || renderedImage; | |||
// Masukkan tepat di sebelah nama (firstHeading) | |||
var badgeHtml = $('<span style="margin-left: 5px; vertical-align: middle; display: inline-block;"></span>').append(cleanImage); | |||
$('#firstHeading').append(badgeHtml); | |||
}); | |||
} | } | ||
}); | }); | ||
| Baris 1.050: | Baris 1.044: | ||
if (mw.config.get('wgAction') === 'edit' && sessionStorage.getItem('mippedia_verify_req')) { | if (mw.config.get('wgAction') === 'edit' && sessionStorage.getItem('mippedia_verify_req')) { | ||
var savedText = sessionStorage.getItem('mippedia_verify_req'); | var savedText = sessionStorage.getItem('mippedia_verify_req'); | ||
$('#wpTextbox1').val(savedText + "\n\n**Persyaratan Verifikasi:** \n( | $('#wpTextbox1').val(savedText + "\n\n**Persyaratan Verifikasi:** \n(Tulis alasan verifikasi, boys!) \n\n<div class='mippedia-status'>'''Status: 🕒 Sedang diverifikasi'''</div>\n\n--" + user); | ||
sessionStorage.removeItem('mippedia_verify_req'); | sessionStorage.removeItem('mippedia_verify_req'); | ||
} | } | ||
// --- 3. TOMBOL MINTA VERIFIKASI --- | // --- 3. TOMBOL MINTA VERIFIKASI (DI MENU TAB) --- | ||
if (ns === 2 && user && pageName.includes('Pengguna:' + user)) { | if (ns === 2 && user && pageName.includes('Pengguna:' + user)) { | ||
var $verifyLink = $('<li>').attr({'id': 'ca-verify-request', 'class': 'mw-list-item'}).append( | var $verifyLink = $('<li>').attr({'id': 'ca-verify-request', 'class': 'mw-list-item'}).append( | ||
$('<a>').attr({'href': '#', 'title': 'Minta | $('<a>').attr({'href': '#', 'title': 'Minta Verifikasi'}).css({ | ||
'display': 'flex', 'align-items': 'center', 'padding': '6px 12px' | 'display': 'flex', 'align-items': 'center', 'padding': '6px 12px' | ||
}).append( | }).append( | ||
$('<span>').html('🔵 Verifikasi | $('<span>').html('🔵 Verifikasi').css({'color': '#0095f6', 'font-weight': 'bold', 'margin-left': '2px'}) | ||
) | ) | ||
); | ); | ||
| Baris 1.067: | Baris 1.061: | ||
e.preventDefault(); | e.preventDefault(); | ||
var talkPage = "Pembicaraan_Pengguna:" + user; | var talkPage = "Pembicaraan_Pengguna:" + user; | ||
sessionStorage.setItem('mippedia_verify_req', "Halo Pengurus,\n\nSaya memohon verifikasi untuk | sessionStorage.setItem('mippedia_verify_req', "Halo Pengurus,\n\nSaya memohon verifikasi untuk akun [[" + pageName + "]] agar terverifikasi."); | ||
window.location.href = mw.util.getUrl(talkPage, { action: 'edit', section: 'new', preloadtitle: 'Permintaan Verifikasi Profil Pengguna' }); | window.location.href = mw.util.getUrl(talkPage, { action: 'edit', section: 'new', preloadtitle: 'Permintaan Verifikasi Profil Pengguna' }); | ||
}); | }); | ||
| Baris 1.074: | Baris 1.068: | ||
} | } | ||
// --- 4. PANEL ADMIN VERIFIKASI ( | // --- 4. PANEL ADMIN VERIFIKASI (SISTEM OTOMATIS) --- | ||
if (ns === 3 && isAdmin && $content.text().includes("Sedang diverifikasi")) { | if (ns === 3 && isAdmin && $content.text().includes("Sedang diverifikasi")) { | ||
var targetUserPage = "Pengguna:" + mw.config.get('wgTitle'); | var targetUserPage = "Pengguna:" + mw.config.get('wgTitle'); | ||
| Baris 1.087: | Baris 1.080: | ||
var $panel = $('<div style="background:#f0f7ff; border:2px solid #0095f6; padding:15px; border-radius:12px; margin-bottom:15px;">' + | var $panel = $('<div style="background:#f0f7ff; border:2px solid #0095f6; padding:15px; border-radius:12px; margin-bottom:15px;">' + | ||
'<b style="color:#0095f6;">🔵 ADMIN VERIFICATION | '<b style="color:#0095f6;">🔵 ADMIN VERIFICATION</b><br><small>User: '+requester+'</small></div>'); | ||
var $btnApprove = $('<button>').text('✅ VERIFIKASI').css({'background':'#0095f6','color':'#fff','padding':'5px 12px','border':'none','cursor':'pointer','font-weight':'bold'}); | var $btnApprove = $('<button>').text('✅ VERIFIKASI').css({'background':'#0095f6','color':'#fff','padding':'5px 12px','border':'none','cursor':'pointer','font-weight':'bold'}); | ||
| Baris 1.098: | Baris 1.091: | ||
$btnApprove.text('Step 2/3...'); | $btnApprove.text('Step 2/3...'); | ||
var newText = oldContent.replace("Status: 🕒 Sedang diverifikasi", "Status: ✅ '''Akun Terverifikasi''' 🔵"); | var newText = oldContent.replace("Status: 🕒 Sedang diverifikasi", "Status: ✅ '''Akun Terverifikasi''' 🔵"); | ||
return api.postWithToken('edit', { action: 'edit', title: pageName, text: newText, summary: ' | return api.postWithToken('edit', { action: 'edit', title: pageName, text: newText, summary: 'Approved' }); | ||
}).then(function() { | }).then(function() { | ||
$btnApprove.text('Step 3/3...'); | $btnApprove.text('Step 3/3...'); | ||
var msg = "\n== | var msg = "\n== Profil Terverifikasi ==\nHalo [["+requester+"]], akun Anda [["+targetUserPage+"]] resmi terverifikasi dengan centang biru 🔵. --[[Pengguna:Admin|Admin]] ([[Pembicaraan Pengguna:Admin|bicara]]) 10 April 2026 20.10 (UTC)"; | ||
return api.postWithToken('edit', { action: 'edit', title: "Pembicaraan_Pengguna:"+requester, section: 'new', text: msg }); | return api.postWithToken('edit', { action: 'edit', title: "Pembicaraan_Pengguna:"+requester, section: 'new', text: msg }); | ||
}).done(function() { | }).done(function() { | ||
| Baris 1.114: | Baris 1.107: | ||
var newText = oldContent.replace("Status: 🕒 Sedang diverifikasi", "Status: ❌ '''Ditolak'''\n\nAlasan: " + alasan); | var newText = oldContent.replace("Status: 🕒 Sedang diverifikasi", "Status: ❌ '''Ditolak'''\n\nAlasan: " + alasan); | ||
api.postWithToken('edit', { action: 'edit', title: pageName, text: newText, summary: 'Rejected' }).then(function() { | api.postWithToken('edit', { action: 'edit', title: pageName, text: newText, summary: 'Rejected' }).then(function() { | ||
var msg = "\n== Notifikasi Verifikasi ==\nHalo [["+requester+"]], | var msg = "\n== Notifikasi Verifikasi ==\nHalo [["+requester+"]], verifikasi profil Anda ditolak: " + alasan + " --[[Pengguna:Admin|Admin]] ([[Pembicaraan Pengguna:Admin|bicara]]) 10 April 2026 20.10 (UTC)"; | ||
return api.postWithToken('edit', { action: 'edit', title: "Pembicaraan_Pengguna:"+requester, section: 'new', text: msg }); | return api.postWithToken('edit', { action: 'edit', title: "Pembicaraan_Pengguna:"+requester, section: 'new', text: msg }); | ||
}).done(function() { | }).done(function() { | ||