Widget:Chartjs pie: Difference between revisions

From Visual Data Wiki
Jump to navigation Jump to search
No edit summary
Tag: 2017 source edit
No edit summary
Tag: 2017 source edit
 
(67 intermediate revisions by the same user not shown)
Line 15: Line 15:
<!--{$ID = "donut-$countPie-$time-$randomValue"}-->
<!--{$ID = "donut-$countPie-$time-$randomValue"}-->


<div>
<div class="chart-container" style="position: relative;">
<canvas id="<!--{$ID|escape:'html'}-->"></canvas>
  <canvas id="<!--{$ID|escape:'html'}-->"></canvas>
</div>
</div>
<script>
<script>
// defer script execution until the mediawiki loader and jQuery are available
// defer script execution until the mediawiki loader and jQuery are available
RLQ.push([[], function () {
RLQ.push([[], function () {
mw.loader.using('ext.iswiki.chartjs').then(function(){
  mw.loader.using('ext.iswiki.chartjs').then(function(){
const ctx = document.getElementById('<!--{$ID|escape:'html'}-->');
    const ctx = document.getElementById('<!--{$ID|escape:'html'}-->');
    function makeItemsArray(itemString) {
      let itemsArray = itemString.split(",");
      for (var i = 0; i< itemsArray.length; i++) {
        itemsArray[i] = itemsArray[i].trim();
      }
      return itemsArray;
    }


function makeItemsArray(itemString) {
    let labels = makeItemsArray('<!--{$data_labels|default:''}-->');
  let itemsArray = itemString.split(",");  
    let dataIdentifier = '<!--{$data_identifier|default:''}-->';
  for (var i = 0; i< itemsArray.length; i++) {
    let colors = makeItemsArray('<!--{$colors|default:'#36a2eb, #ff6384, #4bc0c0, #ff9f40, #9966ff, #ffcd56, #c9cbcf'}-->');
     itemsArray[i] = '"' + itemsArray[i].trim() + '"';
    let dataSeries = makeItemsArray('<!--{$data_series|default:''}-->');
  }
     let legend = '<!--{$legend|default:'yes'}-->';
  return itemsArray;
    let title = '<!--{$title|default:''}-->';
}


function wrapArrayItemsAsString (itemsArray) {
    dataIdentifier = dataIdentifier.trim();
  for (var i = 0; i< itemsArray.length; i++) {
     title = title.trim();
     itemsArray[i] = '"' + itemsArray[i].trim() + '"';
  }
  return itemsArray;
}


let labels = makeItemsArray('<!--{$data_labels|default:''}-->');
    if (legend === 'no') {
let dataIdentifier = '<!--{$data_identifier|default:''}-->';
        legend = false;
let colors = makeItemsArray('<!--{$colors|default:''}-->');
    } else {
let dataSeries = makeItemsArray('<!--{$data_series|default:''}-->');
        legend = true;
let title = '<!--{$title|default:''}-->';
    }


labels = wrapArrayItemsAsString(lables);
    function drawPieChart(ctx, labels, dataIdentifier, colors, dataSeries, legend, title) {
colors = wrapArrayItemsAsString(colors);
      //console.log('ctx: ' + ctx);
dataIdentifier = dataIdentifier.trim();
      //console.log('labels: ' + labels);
title = title.trim();
      //console.log('dataIdentifier: ' + dataIdentifier);
 
      console.log('colors: ' + colors);
function drawPieChart(ctx, labels, dataIdentifier, colors, dataSeries, title) {
      //console.log('dataSeries: ' + dataSeries);
console.log('ctx: ' + ctx);
      //console.log('title: ' + title);
console.log('labels: ' + labels);
      new Chart(ctx, {
console.log('dataIdentifier: ' + dataIdentifier);
        type: 'pie',
console.log('colors: ' + colors);
        data: {
console.log('dataSeries: ' + dataSeries);
          labels: labels,
console.log('title: ' + title);
          datasets: [{
  new Chart(ctx, {
            label: dataIdentifier,
    type: 'pie',
            backgroundColor: colors,
    data: {
            data: dataSeries
      labels: labels,
          }]
      datasets: [{
        },
        label: dataIdentifier,
        options: {
        backgroundColor: '<!--{$colors|default:''}-->',
          maintainAspectRatio: false,
        data: [dataSeries]
          responsive: true,
      }]
          title: {
    },
            display: true,
    options: {
            text: title
      title: {
          },
        display: true,
          plugins: {
        text: title
            legend: { display: legend }
       }
          }
        }
       });
     }
     }
  });
}


window.drawPieChart = drawPieChart(ctx, labels, dataIdentifier, colors, dataSeries, title);
    window.drawPieChart = drawPieChart(ctx, labels, dataIdentifier, colors, dataSeries, legend, title);


});
  });
}]);
}]);
</script>
</script>
</includeonly>
</includeonly>

Latest revision as of 13:51, 19 March 2024

This widget allows you to add ... widget to your wiki page.

Created by [idea-sketch.com idea-sketch.com]

Using this widget

For information on how to use this widget, see ...

Copy to your site

To use this widget on your site, just install MediaWiki Widgets extension and copy the full source code of this page to your wiki as page Widget:Chartjs pie.