С 9:00 до 21:00 Без выходных

admin/view/template/extension/task_manager/task_report.twig

Вот содержимое файла admin/view/template/extension/task_manager/task_report.twig:

{% extends 'common/column_left.twig' %}

{% block content %}
  <div id="content">
    <div class="page-header">
      <div class="container-fluid">
        <h1>{{ heading_title }}</h1>
        <ul class="breadcrumb">
          <li><a href="{{ home }}">{{ text_home }}</a></li>
          <li><a href="{{ extension }}">{{ text_extension }}</a></li>
          <li><a href="{{ task_manager }}">{{ heading_title }}</a></li>
          <li class="active">{{ text_task_report }}</li>
        </ul>
      </div>
    </div>

    <div class="container-fluid">
      <div class="panel panel-default">
        <div class="panel-heading">
          <h3 class="panel-title"><i class="fa fa-bar-chart"></i> {{ text_task_report }}</h3>
        </div>
        <div class="panel-body">
          <div id="chart" style="width: 100%; height: 400px;"></div>
        </div>
        <div class="panel-footer">
          <form action="{{ export }}" method="post" class="form-inline">
            <button type="submit" class="btn btn-success">{{ text_export_pdf }}</button>
            <button type="submit" class="btn btn-success" formaction="{{ export_csv }}">{{ text_export_csv }}</button>
          </form>
        </div>
      </div>
    </div>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
  <script type="text/javascript">
    document.addEventListener('DOMContentLoaded', function() {
      var ctx = document.getElementById('chart').getContext('2d');
      var chartData = {
        labels: {{ chart_labels|json_encode }},
        datasets: [{
          label: '{{ text_task_status }}',
          data: {{ chart_data|json_encode }},
          backgroundColor: 'rgba(75, 192, 192, 0.2)',
          borderColor: 'rgba(75, 192, 192, 1)',
          borderWidth: 1
        }]
      };
      
      var chartOptions = {
        responsive: true,
        maintainAspectRatio: false
      };

      var chart = new Chart(ctx, {
        type: 'bar',
        data: chartData,
        options: chartOptions
      });
    });
  </script>
{% endblock %}

Объяснение:

  • Шаблон расширяет common/column_left.twig для добавления панели навигации.

  • Внутри блока content отображается:

    • Заголовок страницы и хлебные крошки.

    • График, построенный с использованием Chart.js, который отображает статистику по задачам.

    • Кнопки для экспорта данных в PDF и CSV формат.

  • Переменные:

    • chart_labels: Массив меток для оси X графика.

    • chart_data: Массив данных для отображения на графике.

    • text_task_status: Заголовок для графика (например, "Статус задач").

    • export: URL для экспорта данных в PDF.

    • export_csv: URL для экспорта данных в CSV.

    • text_export_pdf: Текст кнопки для экспорта в PDF.

    • text_export_csv: Текст кнопки для экспорта в CSV.

Этот шаблон показывает график с использованием данных, а также предоставляет возможность экспортировать отчеты в два популярных формата: PDF и CSV.