25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

101 lines
4.3 KiB

  1. {# templates/report/statistics.html.twig #}
  2. {% extends 'base.html.twig' %}
  3. {% block title %}{{ 'app.report.statistics_page_title'|trans }}{% endblock %}
  4. {% block javascripts %}
  5. {{ parent() }}
  6. {{ encore_entry_script_tags('statistics') }}
  7. {% endblock %}
  8. {% block body %}
  9. <script>
  10. window.Statistics = {
  11. monthsShort: {{ deMonthsShort()|json_encode|raw }},
  12. weekdaysShort: {{ deWeekdaysShort()|json_encode|raw }},
  13. i18n: {
  14. billable: {{ 'app.service.billable'|trans|json_encode|raw }},
  15. nonBillable: {{ 'app.service.not_billable'|trans|json_encode|raw }},
  16. hours: {{ 'app.statistics.hours'|trans|json_encode|raw }},
  17. revenue: {{ 'app.statistics.revenue'|trans|json_encode|raw }},
  18. loading: {{ 'app.statistics.loading'|trans|json_encode|raw }},
  19. errorLoad: {{ 'app.statistics.error_load'|trans|json_encode|raw }},
  20. weekShort: {{ 'app.date.week_short'|trans|json_encode|raw }},
  21. }
  22. };
  23. </script>
  24. <div class="report-page">
  25. <div class="report-header">
  26. <h1 class="report-header__title">{{ 'app.report.statistics_page_title'|trans }}</h1>
  27. <div class="report-header__right">
  28. <a href="{{ path('report_statistics') }}" class="report-stats-bubble report-stats-bubble--active">
  29. <svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="report-stats-bubble__icon">
  30. <rect x="2" y="10" width="4" height="8" rx="1" stroke="currentColor" stroke-width="1.3"/>
  31. <rect x="8" y="6" width="4" height="12" rx="1" stroke="currentColor" stroke-width="1.3"/>
  32. <rect x="14" y="2" width="4" height="16" rx="1" stroke="currentColor" stroke-width="1.3"/>
  33. </svg>
  34. {{ 'app.report.tab_statistics'|trans }}
  35. </a>
  36. <nav class="account-tabs">
  37. <a href="{{ path('report_times') }}"
  38. class="account-tab">
  39. {{ 'app.report.tab_times'|trans }}
  40. </a>
  41. <span class="account-tab account-tab--disabled">
  42. {{ 'app.report.tab_projects'|trans }}
  43. </span>
  44. </nav>
  45. </div>
  46. </div>
  47. <div class="report-content">
  48. <div class="report-card">
  49. <div class="statistics-toolbar">
  50. <h2 class="statistics-toolbar__title">{{ 'app.statistics.chart_title'|trans }}</h2>
  51. <div class="statistics-toolbar__controls">
  52. {% if not isTracker and userList|length > 1 %}
  53. <select class="statistics-range-select" id="stats-user-select">
  54. <option value="">{{ accountName }}</option>
  55. {% for user in userList %}
  56. <option value="{{ user.id }}">{{ user.name }}</option>
  57. {% endfor %}
  58. </select>
  59. {% endif %}
  60. <select class="statistics-range-select" id="stats-metric-select">
  61. <option value="hours" selected>{{ 'app.statistics.hours'|trans }}</option>
  62. <option value="revenue">{{ 'app.statistics.revenue'|trans }}</option>
  63. </select>
  64. <select class="statistics-range-select" id="stats-range-select">
  65. <option value="12months" selected>{{ 'app.statistics.range_12months'|trans }}</option>
  66. <option value="6months">{{ 'app.statistics.range_6months'|trans }}</option>
  67. <option value="4weeks">{{ 'app.statistics.range_4weeks'|trans }}</option>
  68. </select>
  69. </div>
  70. </div>
  71. <div class="statistics-chart-wrap" id="stats-chart-wrap">
  72. <canvas id="stats-chart"></canvas>
  73. </div>
  74. <div class="statistics-legend">
  75. <span class="statistics-legend__item statistics-legend__item--billable">
  76. {{ 'app.service.billable'|trans }}
  77. </span>
  78. <span class="statistics-legend__item statistics-legend__item--non-billable">
  79. {{ 'app.service.not_billable'|trans }}
  80. </span>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. {% endblock %}