Diferencia entre revisiones de «MediaWiki:Gadget-ec-make-pie.js»

De La Coppermind
Ir a la navegación Ir a la búsqueda
m (oops)
m (try this)
Línea 52: Línea 52:
stats_table.parentElement.insertBefore(render_spot, stats_table)
stats_table.parentElement.insertBefore(render_spot, stats_table)


// load renderer
//- load renderer
mw.loader.load('ext.graph.vega2', function () {
//-mw.loader.load('ext.graph.vega2', function () {


console.debug('gadget:', 'make-pie', 'start-render', arguments)
console.debug('gadget:', 'make-pie', 'start-render', arguments)
Línea 63: Línea 63:


});
});
});
//-});


// done
// done

Revisión del 19:27 2 ago 2019

///# show graphs on editors corner

mw.hook( 'wikipage.content' ).add(function () {
  if (mw.config.get('wgPageName') != "Coppermind:Editor's_Corner") return
  console.warn('gadget:', 'ec-make-pie')

const radius = 200
const font_size = 10

const graph_data = {
 version: 2,
 data: { name: 'X', values: [ /*{ label: '', count: 0, color: '', }*/ ], transforms: [ { type: 'pie', field: 'count', }, ], },
 marks: [
  {
    type: 'arc',
    from: { data: 'X', },
    properties: { enter: {
      x: { field: { group: 'width', }, mult: .5, },
      y: { field: { group: 'height',}, mult: .5, },
      startAngle: { field: 'layout_start', }, endAngle: { field: 'layout_end', },
      innerRadius: { value: 0, }, outerRadius: { value: radius, },
      fill: { field: 'color', }, stroke: { value: 'white', },
    }, },
  },
  {
    type: 'text',
    from: { data: 'X', },
    properties: { enter: {
      x: { field: { group: 'width', }, mult: .5, },
      y: { field: { group: 'height',}, mult: .5, },
      radius: { value: radius, },
      theta: { value: 'layout_mid', },
      fill: { value: 'white', },
      align: { value: 'center', }, baseline: { value: 'middle', },
      text: { field: 'label', }, fontWeight: { value: 'bold', }, fotnSize: { value: font_size, }
    }, },
  },
 ],
}
// FIXME: get json from /wiki/MediaWiki:Gadget-ec-make-pie-status.json'

// fill it with article counts
graph_data.data.values.push({
 label: '',
 count: 1,
 color: 'blue',
})

// find render spot
const render_spot = document.createElement('div')
const stats_table = document.querySelector('.infobox')
stats_table.parentElement.insertBefore(render_spot, stats_table)

//- load renderer
//-mw.loader.load('ext.graph.vega2', function () {

console.debug('gadget:', 'make-pie', 'start-render', arguments)

// attempt to render
mw.drawVegaGraph( render_spot, graph_data, function () {

console.warn('gadget:', 'make-pie', 'done', arguments)

});
//-});

// done
});