Diferencia entre revisiones de «MediaWiki:Gadget-tag-complete-button.js»

De La Coppermind
Ir a la navegación Ir a la búsqueda
(try this)
 
m (remove from cat)
 
(No se muestran 6 ediciones intermedias 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
// find the {{complete}} template
if (mw.config.get('wgCurRevisionId') != mw.config.get('wgRevisionId')) return;

// find the {{t|complete}} template
const notice = document.querySelector('.quality-complete')
const notice = document.querySelector('.quality-complete')
if (!notice) return;
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')
const button = document.createElement('button')
Línea 10: Línea 18:


// find the message to replace with a button
// find the message to replace with a button
notice.querySelector('.unsigned').replaceWith(button)
const place_for_button = notice.querySelector('.unsigned')
if (!place_for_button) return

place_for_button.replaceWith(button)


console.warn('gadget:', 'tag-complete-button')
console.warn('gadget:', 'tag-complete-button')
Línea 24: 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|[[User:Fbstj|Joe ST]] ([[User talk:Fbstj|talk]]) 11:39, 2 August 2019 (UTC)}}' ),
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 42: 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?')
console.warn('gadget:', 'tag-complete-button', 'tagged')
console.warn('gadget:', 'tag-complete-button', 'tagged')
// TODO: replace button with signature/reload button section
})
})
})
})

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
  })
})

}