Difference between revisions of "User:Fbstj/gadget/history-test.js"

m
remove junk
m (try this)
m (remove junk)
/* Add edit link to templates */
$(function () {
 
// 2019-04-24 remove the prefix from such links
document.querySelectorAll('[href*="Coppermind:Artists/"]').forEach(function(el){ el.textContent = el.textContent.replace('Coppermind:Artists/', String.fromCodePoint(0x1f150, 0x20) ) })
 
function enable_link(el) { el.style['pointer-events'] = 'auto' }
 
document.querySelectorAll('.patrollink').forEach(enable_link)
 
// move notices above infobox
while (true) {
// don't do things on edit page
const edit_box = document.querySelector('.editButtons')
if (!!edit_box) break
if (location.search != '') break
// find {{notice}} after {{infobox}}
var el = document.querySelector('.infobox+.notice')
if (!el) { // check first child of #mw-content-text is a notice
const txt = document.querySelector('#mw-content-text')
if (txt.firstElementChild.classList.contains('notice'))
el = txt.firstElementChild
}
if (!el) break
const infobox = document.querySelector('.infobox.side')
if (!infobox) {
// move above the title on non-infobox pages
const ind = document.querySelector('.mw-indicators')
ind.parentElement.insertBefore(el, ind)
} else {
const row = infobox.insertRow(0)
const cell = row.insertCell()
cell.setAttribute('colspan','2')
cell.appendChild(el)
}
}
 
})
 
$(function () {
// 2018-11-05 move the bottom patrol link to the top
const patrols = document.querySelectorAll('.patrollink')
if (patrols.length == 1) {
const first_edit_link = document.querySelector('.mw-editsection')
first_edit_link.appendChild(patrols[0])
patrols[0].style['font-size'] = 'inherit'
}
 
})
 
// 2019-04-13 try to make buttons from links
; mw.hook('wikipage.diff').add(function(){
// load the notify function
mw.loader.load('mediawiki.notification');
const to_secs = 5
// create an api client
const api = new mw.Api()
// the old "button"
const old = document.querySelector('.patrollink')
if (!old) { return }
// fetch the current RC id for the later request
const rcid = mw.util.getParamValue('rcid', old.firstElementChild.href)
// setup the new button
const btn = document.createElement('button')
btn.textContent = 'Patrol'
btn.addEventListener('click', function() {
// progress spinnner
const spin = ($.createSpinner({ size: 'small', display: 'inline', }))[0]
btn.replaceWith(spin)
api.postWithToken('patrol', {
formatversion: 2,
action: 'patrol',
rcid: rcid,
}).done(function (data) {
if (data.patrol !== undefined) {
const title = new mw.Title(data.patrol.title);
mw.notify(mw.msg('markedaspatrollednotify', title.toText()));
spin.remove()
} else {
mw.notify(mw.msg('markedaspatrollederrornotify'), { type: 'error' });
spin.replaceWith(btn)
}
}).fail(function (error) {
console.warn('patrol:', error)
if (error === 'noautopatrol') {
mw.notify(mw.msg('markedaspatrollederror-noautopatrol'), { type: 'warn' });
} else {
mw.notify(mw.msg('markedaspatrollederrornotify'), { type: 'error' });
}
spin.replaceWith(btn)
})
})
// hide old button and show new one
old.replaceWith(btn)
 
});
 
mw.hook('wikipage.content').add(function revs_gadget() {