Diferencia entre revisiones de «MediaWiki:Gadget-show-quality-on-cats.js»

De La Coppermind
Ir a la navegación Ir a la búsqueda
m (tweak)
m (+classes)
Línea 6: Línea 6:
'Articles nearing completion': [0x25D5],
'Articles nearing completion': [0x25D5],
'Complete articles': [0x26AB, 0xFE0E],
'Complete articles': [0x26AB, 0xFE0E],
}
const css_class = {
'Stubs': 'quality-stub',
'Partially complete articles': 'quality-part',
'Articles nearing completion': 'quality-good',
'Complete articles': 'quality-done',
}
}


Línea 44: Línea 50:
const icon = String.fromCodePoint.apply(null, icons[cat])
const icon = String.fromCodePoint.apply(null, icons[cat])
el.parentElement.append(icon)
el.parentElement.append(icon)
el.parentElement.classList.add('quality')
el.parentElement.classList.add(css_class[cat])
})
})



Revisión del 20:17 13 ago 2019

mw.hook('wikipage.content').add(function hook_handler() {

const icons = {
  'Stubs': [0x25D4],
  'Partially complete articles': [0x25D2],
  'Articles nearing completion': [0x25D5],
  'Complete articles': [0x26AB, 0xFE0E],
}
const css_class = {
                        'Stubs': 'quality-stub',
  'Partially complete articles': 'quality-part',
  'Articles nearing completion': 'quality-good',
            'Complete articles': 'quality-done',
}

// only on categories
if (mw.config.get('wgCanonicalNamespace') != 'Category') return

console.warn('gadget:', 'show-quality-markers')

;(new mw.Api).get({
  action: "query",
    format: "json",
  prop: "categories",
    indexpageids: true,
    cllimit: "max",
    clcategories: Object.keys(icons).map(function(cat) { return 'Category:'+ cat }),
  generator: "categorymembers",
    gcmtitle: mw.config.get('wgPageName'),
    gcmlimit: "max",
    gcmtype: "page",
}).then(function query_response(response) {

console.debug(response)
if (response.continue) {
  console.warn('gadget:', 'show-quality-on-cats', 'missing results', response)
}

const all = {}
response.query.pageids.forEach(function each_pageid(id) {
  const page = response.query.pages[id]
  if (!page.categories) return
  all[page.title] = page.categories[0].title.replace('Category:','')
})

document.querySelectorAll('#mw-pages a').forEach(function each_link(el) {
  const title = el.getAttribute('title')
  const cat = all[title]
  if (!cat) return
  const icon = String.fromCodePoint.apply(null, icons[cat])
  el.parentElement.append(icon)
  el.parentElement.classList.add('quality')
  el.parentElement.classList.add(css_class[cat])
})


}) // end of API query


}) // end of MW hook