Diferencia entre revisiones de «MediaWiki:Gadget-tag-complete-button.js»
m (oops) |
m (remove from cat) |
||
(No se muestra una edición intermedia del mismo usuario) | |||
Línea 1: | Línea 1: | ||
mw.hook('wikipage.content').add(function () { |
mw.hook('wikipage.content').add(function tag_complete_button() { |
||
// only show button on latest revision of page |
// only show button on latest revision of page |
||
if (mw.config.get('wgCurRevisionId') != mw.config.get('wgRevisionId')) return; |
if (mw.config.get('wgCurRevisionId') != mw.config.get('wgRevisionId')) return; |
||
// find the {{complete}} template |
// find the {{t|complete}} template |
||
const notice = document.querySelector('.quality-complete') |
const notice = document.querySelector('.quality-complete') |
||
if (!notice) return; |
if (!notice) return; |
||
Línea 35: | Línea 35: | ||
// try to edit the article |
// try to edit the article |
||
return api.edit(page_name, function (revision) { |
return api.edit(page_name, function try_signing_article(revision) { |
||
return { |
return { |
||
// find {{complete}} and replace with {{complete|~x4}} |
// find {{t|complete}} and replace with {{t|complete|~x4}} |
||
text: revision.content.replace( '{{complete}}', '{{complete|~~'+'~~}}' ), |
text: revision.content.replace( '{'+'{complete}}', '{'+'{complete|~~'+'~~}}' ), |
||
summary: 'mark as complete', |
summary: 'mark as complete', |
||
} |
} |
||
}).catch(console.warn).then(function (revision) { |
}).catch(console.warn).then(function try_tagging_revision(revision) { |
||
console.debug('gadget:', 'tag-complete-button', 'revision:', revision) |
console.debug('gadget:', 'tag-complete-button', 'revision:', revision) |
||
if (revision.nochange === true) return |
if (revision.nochange === true) return |
||
Línea 53: | Línea 53: | ||
add: 'completed', |
add: 'completed', |
||
reason: 'from tag-complete-button gadget', |
reason: 'from tag-complete-button gadget', |
||
}).catch(console.warn).then(function() { |
}).catch(console.warn).then(function show_result_of_complet_button_press() { |
||
// show the user that it worked |
// show the user that it worked |
||
mw.notify('Article marked as complete?') |
mw.notify('Article marked as complete?') |
Revisión actual - 20:00 15 abr 2020
mw.hook('wikipage.content').add(function tag_complete_button() { // only show button on latest revision of page if (mw.config.get('wgCurRevisionId') != mw.config.get('wgRevisionId')) return; // find the {{t|complete}} template const notice = document.querySelector('.quality-complete') if (!notice) return; // don't show button on edit const editor = document.querySelector('.mw-editform') if (editor) return; // TODO: instead add a button that saves and marks as complete const button = document.createElement('button') button.textContent = 'Mark as Reviewed' button.onclick = mark_article_as_complete // find the message to replace with a button const place_for_button = notice.querySelector('.unsigned') if (!place_for_button) return place_for_button.replaceWith(button) console.warn('gadget:', 'tag-complete-button') }) function mark_article_as_complete(ev) { const api = new mw.Api const page_name = mw.config.get('wgPageName') console.warn('gadget:', 'tag-complete-button', 'button pressed') // try to edit the article return api.edit(page_name, function try_signing_article(revision) { return { // find {{t|complete}} and replace with {{t|complete|~x4}} text: revision.content.replace( '{'+'{complete}}', '{'+'{complete|~~'+'~~}}' ), summary: 'mark as complete', } }).catch(console.warn).then(function try_tagging_revision(revision) { console.debug('gadget:', 'tag-complete-button', 'revision:', revision) if (revision.nochange === true) return console.warn('gadget:', 'tag-complete-button', 'tagging') // tag the revision return api.postWithToken('csrf', { action: 'tag', revid: revision.newrevid, add: 'completed', reason: 'from tag-complete-button gadget', }).catch(console.warn).then(function show_result_of_complet_button_press() { // show the user that it worked mw.notify('Article marked as complete?') console.warn('gadget:', 'tag-complete-button', 'tagged') // TODO: replace button with signature/reload button section }) }) }