Diferencia entre revisiones de «MediaWiki:Gadget-tag-status-change.js»
Ir a la navegación
Ir a la búsqueda
m (+fn names) |
m (fix) |
||
Línea 10: | Línea 10: | ||
const rem = row.querySelector('.diff-deletedline') |
const rem = row.querySelector('.diff-deletedline') |
||
const add = row.querySelector('.diff-addedline') |
const add = row.querySelector('.diff-addedline') |
||
+ | // FIXME: the above selectors do not work in newer diffs |
||
+ | if (!rem || !add) return |
||
const msg = rem.innerText.trim() +' => '+ add.innerText.trim() |
const msg = rem.innerText.trim() +' => '+ add.innerText.trim() |
||
Revisión del 12:40 10 oct 2021
mw.hook('wikipage.diff').add(function tag_status_change() { // 2018-11-06 add status-change tags to pages with diffs that change the status const diff = document.querySelector('.diff') if (!diff) return; diff.querySelectorAll('.diff-addedline').forEach(function find_status_change(el) { if (!/\{\{(stub|partial|complete)\}\}/.test(el.innerText)) return const row = el.parentElement const rem = row.querySelector('.diff-deletedline') const add = row.querySelector('.diff-addedline') // FIXME: the above selectors do not work in newer diffs if (!rem || !add) return const msg = rem.innerText.trim() +' => '+ add.innerText.trim() // guard against tagging latest revision in multi-change diffs if (diff.querySelector('.diff-multi')) { // TODO: determine which of the revisions to tag? console.warn('gadget:', 'tag-status-change', 'ignored on combination diff') mw.notify('theses revisions contain a potential status-change ('+ msg +') which has been ignored') return; } console.warn('gadget:', 'tag-status-change') // send the notification ;(new mw.Api).postWithToken('csrf', { action: 'tag', revid: mw.config.get('wgRevisionId'), add: 'status-change', reason: msg, }).then(function notify_success() { mw.notify('revision tagged with '+ msg) }) }) })