Catatan: Setelah menyimpan, Anda harus memintas tembolok ( cache ) peramban Anda untuk melihat perubahannya. Google Chrome , Firefox , Microsoft Edge dan Safari : Tahan tombol ⇧ Shift dan klik Muat ulang ( Reload ) di tombol bilah alat. Untuk detail dan instruksi tentang peramban lain, lihat halaman menghapus singgahan (Inggris) .
/**
* Instalasi:
* 1. Buka [[Special:Mypage/vector.js]]
* 2. Tambahkan kode `importScript("Pengguna:Kenrick95/online.js");`
* 3. Simpan halaman
*
* apparentlyOnline
* - get RCFeed
* - get list of admin
* - see which admin is listed on RCFeed, report to a list, show as "apparently online"
*/
mw.loader.using("mediawiki.util", function () {
function apparentlyOnline() {
var online_sysops = [], online_sysops_msg = "Tidak ada", last_seen = [];
var window_msg_data = null;
var windowManager = null, messageDialog = null;
function loadNow() {
mw.loader.using("mediawiki.api", function () {
var api = new mw.Api();
var i;
api.get({
action: "query",
list: "allusers|recentchanges",
format: "json",
rclimit: 500,
rcprop: "user|userid|timestamp",
rcshow: "!bot|!anon",
augroup: "sysop",
aulimit: 500
})
.done(function (data) {
// console.log(data);
var rc = data.query.recentchanges;
var sysops = data.query.allusers;
var is_sysop = {};
for (i = 0; i < sysops.length; i++) {
is_sysop[sysops[i].userid] = true;
}
for (i = 0; i < rc.length; i++) {
if (is_sysop[rc[i].userid]) {
if (online_sysops.indexOf(rc[i].user) < 0) {
online_sysops.push(rc[i].user);
last_seen.push(rc[i].timestamp);
}
}
}
// console.log(online_sysops);
online_sysops_msg = "";
if (online_sysops.length === 0) {
online_sysops_msg = "Tidak ada";
}
for (i = 0; i < online_sysops.length; i++) {
var time = new Date(last_seen[i]);
online_sysops_msg += "<li><a href=\"" + mw.config.get("wgServer") + "/wiki/User:" + online_sysops[i] + "\">"
+ online_sysops[i]
+ "</a> (suntingan terakhir: "
+ time.toLocaleString()
+ ")</li>";
}
window_msg_data = {
title: 'Pengurus daring',
message: new OO.ui.HtmlSnippet("<div style=\"text-align:left;\">"
+ "Pengurus yang daring berdasarkan 500 suntingan terakhir di perubahan terbaru:"
+ "<br>" + online_sysops_msg + "</div> "),
actions: [
{
action: 'accept',
label: 'Tutup',
flags: 'primary'
}
]
};
windowManager.openWindow(messageDialog, window_msg_data);
});
});
}
var link = mw.util.addPortletLink(
'p-cactions', //p-cactions, p-tb, p-views
'#',
'Pengurus daring',
't-prettylinkwidget',
'Perlihatkan daftar pengurus yang daring',
null,
'#t-whatlinkshere'
);
mw.loader.using('oojs-ui', function() {
messageDialog = new OO.ui.MessageDialog();
windowManager = new OO.ui.WindowManager();
$( 'body' ).append( windowManager.$element );
windowManager.addWindows( [ messageDialog ] );
messageDialog.setSize("large");
});
$(link).click(function (e) {
e.preventDefault();
online_sysops_msg = "Memuat...";
loadNow();
});
}
$(apparentlyOnline);
});