Welcome to mirror list, hosted at ThFree Co, Russian Federation.

chart.html « shortcodes « layouts - github.com/onweru/compose.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: c6a3feed3035028aca515ada7f013315f019ecb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
{{ $datasetKey := .Get 0 }}
{{ $charts := .Get 1 }}
{{ $data := index $.Page.Params $datasetKey }}
{{- $dataURL := $data.fileLink }}
{{- $separator := "," }}
{{- $dataFile := getCSV $separator $dataURL }}

{{- $dataCompactData := dict -}}
{{- $activeColumn := sub $data.baseChartOn 1 }}
{{- with .Get 2 }}
  {{- $activeColumn = sub (int .) 1 }}
{{- end }}
{{- range $dataFile -}}
  {{- $value := trim (index . $activeColumn) " " -}}
  {{- with index $dataCompactData $value -}}
    {{- $dataCompactData = merge $dataCompactData (dict $value (add 1 .)) -}}
  {{- else -}}
    {{- $dataCompactData = merge $dataCompactData (dict $value 1) -}}
  {{- end -}}
{{- end -}}

{{- $labels := slice }}
{{- range $key, $value := $dataCompactData }}
  {{- $labels = append $key $labels }}
{{- end }}

{{- if in $charts "table" }}
<script src = '{{ absURL "js/w3.js" }}'></script>
<div class="table_wrap">
  <p>
    <input oninput="w3.filterHTML('#chartTable', '.row', this.value)" class="form_search search_field" placeholder="Filter Table Values">
  </p>
  <table id="chartTable">
    <thead>
      {{- range $index, $title := $data.columnTitles }}
      <th onclick="w3.sortHTML('#chartTable', '.row', 'td:nth-child({{ add $index 1 }})')">{{ $title }} {{ partial "sprite" (dict "icon" "sort") . }}</th>
      {{- end }}
    </thead>

    {{- range $dataFile }}
      {{- $entry := . }}
    <tr class="row">
      {{- range $index, $_ := $data.columnTitles }}
      <td>{{ index $entry $index }}</td>
      {{- end }}
    </tr>
    {{- end }}
  </table>
</div>
{{- end }}

{{- $labels = split (delimit  $labels ",") "," }}
{{- $dataTally := split (delimit $dataCompactData ",") ","  }}


<link rel="stylesheet" href='{{ absURL "js/chart.min.css" }}' />
<script src='{{ absURL "js/chart.min.js" }}'></script>
<script>
  Chart.platform.disableCSSInjection = true;
  function getCanvas(id){
    return document.getElementById(id)
  };
  var dataTally = {{ $dataTally }}.map(value => parseInt(value));
  var labels = {{ $labels }};
  var data  = {
    datasets: [{
      data: dataTally,
      backgroundColor: {{ $data.colors }},
      label: "Random Data"
    }],

    labels: labels
  };
  var options = {};
</script>

{{- if in $charts "pie" }}
<div class="chart">
  <canvas id="pie{{ $datasetKey }}" width="500" height="500"></canvas>
</div>
<script>
  var ctx = getCanvas('pie{{ $datasetKey }}');
  var myPieChart = new Chart(ctx, {
    type: 'pie',
    data: data,
    options: options
  });
</script>
{{- end }}

{{- if in $charts "bar" }}
<div class="chart">
  <canvas id="bar{{ $datasetKey }}" width="500" height="500"></canvas>
</div>
<script>
  var ctx3 = getCanvas('bar{{ $datasetKey }}');
  var barChart = new Chart(ctx3, {
    type: 'bar',
    data: data,
    options: {
      "scales": {
      "yAxes": [{
        "ticks": {
          "beginAtZero": true
        }
      }]
    }
    }
  });
</script>
{{- end }}

{{ if in $charts "doughnut" }}
<div class="chart">
  <canvas id="doughnut{{ $datasetKey }}" width="500" height="500"></canvas>
</div>
<script>
  var ctx2 = getCanvas('doughnut{{ $datasetKey }}');
  var doughnutChart = new Chart(ctx2, {
    type: 'doughnut',
    data: data,
    options: options
  });
</script>
{{- end }}