mirror of https://github.com/onweru/compose.git

weru
23.15.2025 478f5b77f14052fa7228851695be877e2ba7a0aa
layouts/shortcodes/chart.html
@@ -3,45 +3,46 @@
{{- $data := index $.Page.Params $datasetKey }}
{{- $dataURL := $data.fileLink }}
{{- $separator := "," }}
{{- $rawData := resources.Get $dataURL }}
{{- $dataFile := $rawData | transform.Unmarshal (dict "delimiter" $separator) }}
{{- $dataFile := unmarshal (dict "delimiter" $separator) (readFile $dataURL) }}
{{- $dataCompactData := dict -}}
{{- $activeColumn := sub $data.baseChartOn 1 }}
{{- with .Get 2 }}
  {{- $activeColumn = sub (int .) 1 }}
{{- $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 -}}
{{- $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 }}
{{- $labels = append $key $labels }}
{{- end }}
{{- if in $charts "table" }}
<script src = '{{ absURL "js/w3.js" }}'></script>
<script src='{{ absURL "js/w3.js" }}'></script>
<div class="table_wrap">
  {{- if not (in $charts "noFilter") }}
  <p>
    <input oninput="w3.filterHTML('#chartTable', '.row', this.value)" class="form_search search_field forminput" placeholder="Filter Table Values">
    <input oninput="w3.filterHTML('#chartTable', '.row', this.value)" class="form_search search_field forminput"
      placeholder="Filter Table Values">
  </p>
  {{- end }}
  <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>
      <th onclick="w3.sortHTML('#chartTable', '.row', 'td:nth-child({{ add $index 1 }})')">{{ $title }} {{ partial
        "sprite" (dict "icon" "sort") . }}</th>
      {{- end }}
    </thead>
    {{- range $dataFile }}
      {{- $entry := . }}
    {{- $entry := . }}
    <tr class="row">
      {{- range $index, $_ := $data.columnTitles }}
      <td>{{ index $entry $index }}</td>
@@ -52,25 +53,25 @@
</div>
{{- end }}
{{- $labels = split (delimit  $labels ",") "," }}
{{- $dataTally := split (delimit $dataCompactData ",") ","  }}
{{- $labels = split (delimit $labels ",") "," }}
{{- $dataTally := split (delimit $dataCompactData ",") "," }}
<script src='{{ absURL "js/chart.min.js" }}'></script>
<script>
  Chart.platform.disableCSSInjection = true;
  function getCanvas(id){
  function getCanvas(id) {
    return document.getElementById(id)
  };
  var dataTally = {{ $dataTally }}.map(value => parseInt(value));
  var labels = {{ $labels }};
  var data  = {
  var dataTally = {{$dataTally}}.map(value => parseInt(value));
  var labels = {{$labels}};
  var data = {
    datasets: [{
      data: dataTally,
      backgroundColor: {{ $data.colors }},
      label: {{ $data.title }}
      backgroundColor: {{$data.colors}},
    label: {{$data.title}}
    }],
    labels: labels
  labels: labels
  };
  var options = {};
</script>
@@ -100,12 +101,12 @@
    data: data,
    options: {
      "scales": {
      "yAxes": [{
        "ticks": {
          "beginAtZero": true
        }
      }]
    }
        "yAxes": [{
          "ticks": {
            "beginAtZero": true
          }
        }]
      }
    }
  });
</script>
@@ -123,4 +124,4 @@
    options: options
  });
</script>
{{- end }}
{{- end }}