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
 
(62 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] + '"';
  }
  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(labels);
    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: ["#3e95cd", "#8e5ea2", "#3cba9f", "#e8c3b9", "#c45850"],
          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[edit source]

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

Copy to your site[edit source]

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.