diff --git a/app/Http/Controllers/Dashboard/StatisticController.php b/app/Http/Controllers/Dashboard/StatisticController.php index b8ae5c1..02284f7 100644 --- a/app/Http/Controllers/Dashboard/StatisticController.php +++ b/app/Http/Controllers/Dashboard/StatisticController.php @@ -3,10 +3,15 @@ namespace App\Http\Controllers\Dashboard; use App\Http\Controllers\Controller; +use App\Models\ContentRecap; +use App\Models\CooperationCompletion; use App\Models\IssueManagement; use App\Models\LoginHistory; +use App\Models\MediaCooperation; use App\Models\MediaMonitoring; use App\Models\Report; +use App\Models\User; +use App\Models\Visitor; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -21,26 +26,26 @@ public function index(Request $request){ 'category' => 'login-activities', 'is_available' => true ], - [ - 'name' => 'Jurnalis', - 'category' => 'journalists', - 'is_available' => false - ], + // [ + // 'name' => 'Jurnalis', + // 'category' => 'journalists', + // 'is_available' => false + // ], [ 'name' => 'Kerja Sama Media', 'category' => 'media-cooperations', - 'is_available' => false + 'is_available' => true ], [ 'name' => 'Laporan Bukti Tayang', 'category' => 'airing-proof-reports', 'is_available' => true ], - [ - 'name' => 'Media', - 'category' => 'media', - 'is_available' => false - ], + // [ + // 'name' => 'Media', + // 'category' => 'media', + // 'is_available' => false + // ], [ 'name' => 'Monitoring Media & Manajemen Isu', 'category' => 'media-monitorings-issue-management', @@ -49,27 +54,27 @@ public function index(Request $request){ [ 'name' => 'Penyelesaian Kerja Sama', 'category' => 'cooperation-completions', - 'is_available' => false + 'is_available' => true ], [ 'name' => 'Pengguna', 'category' => 'users', - 'is_available' => false - ], - [ - 'name' => 'Perusahaan', - 'category' => 'companies', - 'is_available' => false + 'is_available' => true ], + // [ + // 'name' => 'Perusahaan', + // 'category' => 'companies', + // 'is_available' => false + // ], [ 'name' => 'Rekap Konten', 'category' => 'content-recaps', - 'is_available' => false + 'is_available' => true ], [ 'name' => 'Pengunjung Website', 'category' => 'website-visitors', - 'is_available' => false + 'is_available' => true ], ]; @@ -91,13 +96,8 @@ public function show(Request $request, $category){ $upComings = [ 'journalists', - 'media-cooperations', 'media', - 'cooperation-completions', - 'users', 'companies', - 'content-recaps', - 'website-visitors', ]; if(in_array($category, $upComings)){ @@ -109,6 +109,22 @@ public function show(Request $request, $category){ $to_month = $request->input('to_month', null); switch($category){ + case 'login-activities': + $data['title'] = 'Statistik Aktivitas Login'; + + $monthlyCount = array_fill(0, 12, 0); + + $loginActivities = LoginHistory::with(['user'])->get(); + $loginActivities->groupBy(function ($item) { + return (int) \Carbon\Carbon::parse($item->created_at)->format('m'); + })->each(function ($items, $month) use (&$monthlyCount) { + // Simpan jumlah item tiap bulan ke index bulan - 1 (0-based) + $monthlyCount[$month - 1] = $items->count(); + }); + + $data['loginActivities'] = $monthlyCount; + + return view('dashboard.statistics.show.login-activity', $data); case 'media-monitorings-issue-management': $data['title'] = 'Statistik Monitoring Media & Manajemen Isu'; @@ -207,7 +223,7 @@ public function show(Request $request, $category){ $data['title'] = 'Statistik Laporan Bukti Tayang'; $airingProofReport = Report::with(['order', 'media'])->get(); - $airingProofThemeCount = $airingProofReport->groupBy('status')->map(function ($group) { + $airingProofReportCount = $airingProofReport->groupBy('status')->map(function ($group) { return $group->count(); }); @@ -249,28 +265,179 @@ public function show(Request $request, $category){ $data['airingProofReportStatusMonthly'] = $monthlyStatus; $data['airingProofReportPublicationMonthly'] = $monthlyCount; - $data['proofAiringThemeWaiting'] = $airingProofThemeCount->get('0', 0); - $data['proofAiringThemeAccepted'] = $airingProofThemeCount->get('1', 0); - $data['proofAiringThemeRejected'] = $airingProofThemeCount->get('2', 0); + $data['airingProofReportWaiting'] = $airingProofReportCount->get('0', 0); + $data['airingProofReportAccepted'] = $airingProofReportCount->get('1', 0); + $data['airingProofReportRejected'] = $airingProofReportCount->get('2', 0); return view('dashboard.statistics.show.airing-proof-report', $data); - case 'login-activities': - $data['title'] = 'Statistik Aktivitas Login'; + case 'users': + $data['title'] = 'Statistik Pengguna'; $monthlyCount = array_fill(0, 12, 0); - $loginActivities = LoginHistory::with(['user'])->get(); - $loginActivities->groupBy(function ($item) { + $registerUsers = User::all(); + $registerUsers->groupBy(function ($item) { + return (int) \Carbon\Carbon::parse($item->created_at)->format('m'); + })->each(function ($items, $month) use (&$monthlyCount) { + $monthlyCount[$month - 1] = $items->count(); + }); + + $data['registerUserMonth'] = $monthlyCount; + + return view('dashboard.statistics.show.user', $data); + case 'website-visitors': + $data['title'] = 'Statistik Pengunjung Website'; + + $monthlyCount = array_fill(0, 12, 0); + + $websiteVisitors = Visitor::all(); + $websiteVisitors->groupBy(function ($item) { + return (int) \Carbon\Carbon::parse($item->created_at)->format('m'); + })->each(function ($items, $month) use (&$monthlyCount) { + $monthlyCount[$month - 1] = $items->count(); + }); + + $data['websiteVisitorMonth'] = $monthlyCount; + + return view('dashboard.statistics.show.website-visitor', $data); + case 'cooperation-completions': + $data['title'] = 'Statistik Laporan Bukti Tayang'; + + $cooperationCompletion = CooperationCompletion::with(['order', 'media'])->get(); + $cooperationCompletionCount = $cooperationCompletion->groupBy('status')->map(function ($group) { + return $group->count(); + }); + + // Inisialisasi array 12 bulan untuk masing-masing status + $monthlyStatus = [ + 'waiting' => array_fill(0, 12, 0), + 'accepted' => array_fill(0, 12, 0), + 'rejected' => array_fill(0, 12, 0), + ]; + + // Kelompokkan data berdasarkan status lalu bulan + $cooperationCompletion->groupBy('status')->each(function ($groupedByStatus, $status) use (&$monthlyStatus) { + $label = match ((int)$status) { + 0 => 'waiting', + 1 => 'accepted', + 2 => 'rejected', + default => null, + }; + + if ($label) { + $groupedByStatus->groupBy(function ($item) { + return (int)$item->created_at->format('m'); // bulan sebagai angka 1–12 + })->each(function ($items, $month) use (&$monthlyStatus, $label) { + $monthlyStatus[$label][$month - 1] = $items->count(); + }); + } + }); + + $monthlyCount = array_fill(0, 12, 0); + + $cooperationCompletion->groupBy(function ($item) { return (int) \Carbon\Carbon::parse($item->created_at)->format('m'); })->each(function ($items, $month) use (&$monthlyCount) { // Simpan jumlah item tiap bulan ke index bulan - 1 (0-based) $monthlyCount[$month - 1] = $items->count(); }); - $data['loginActivities'] = $monthlyCount; + // Simpan ke variabel `$data` + $data['cooperationCompletionStatusMonthly'] = $monthlyStatus; + $data['cooperationCompletionMonthly'] = $monthlyCount; - return view('dashboard.statistics.show.login-activity', $data); + $data['cooperationCompletionWaiting'] = $cooperationCompletionCount->get('0', 0); + $data['cooperationCompletionAccepted'] = $cooperationCompletionCount->get('1', 0); + $data['cooperationCompletionRejected'] = $cooperationCompletionCount->get('2', 0); + return view('dashboard.statistics.show.cooperation-completion', $data); + case 'media-cooperations': + $data['title'] = 'Statistik Laporan Bukti Tayang'; + + $mediaCooperation = MediaCooperation::with(['cooperation', 'media'])->get(); + $mediaCooperationCount = $mediaCooperation->groupBy('status')->map(function ($group) { + return $group->count(); + }); + + // Inisialisasi array 12 bulan untuk masing-masing status + $monthlyStatus = [ + 'waiting' => array_fill(0, 12, 0), + 'accepted' => array_fill(0, 12, 0), + 'rejected' => array_fill(0, 12, 0), + ]; + + // Kelompokkan data berdasarkan status lalu bulan + $mediaCooperation->groupBy('status')->each(function ($groupedByStatus, $status) use (&$monthlyStatus) { + $label = match ((int)$status) { + 0 => 'waiting', + 1 => 'accepted', + 2 => 'rejected', + default => null, + }; + + if ($label) { + $groupedByStatus->groupBy(function ($item) { + return (int)$item->created_at->format('m'); // bulan sebagai angka 1–12 + })->each(function ($items, $month) use (&$monthlyStatus, $label) { + $monthlyStatus[$label][$month - 1] = $items->count(); + }); + } + }); + + $monthlyCount = array_fill(0, 12, 0); + + $mediaCooperation->groupBy(function ($item) { + return (int) \Carbon\Carbon::parse($item->created_at)->format('m'); + })->each(function ($items, $month) use (&$monthlyCount) { + // Simpan jumlah item tiap bulan ke index bulan - 1 (0-based) + $monthlyCount[$month - 1] = $items->count(); + }); + + // Simpan ke variabel `$data` + $data['mediaCooperationStatusMonthly'] = $monthlyStatus; + $data['mediaCooperationMonthly'] = $monthlyCount; + + $data['mediaCooperationWaiting'] = $mediaCooperationCount->get('0', 0); + $data['mediaCooperationAccepted'] = $mediaCooperationCount->get('1', 0); + $data['mediaCooperationRejected'] = $mediaCooperationCount->get('2', 0); + + return view('dashboard.statistics.show.media-cooperation', $data); + case 'content-recaps': + $data['title'] = 'Statistik Rekap Konten'; + + $contenteRecap = ContentRecap::with(['enhancer', 'classification'])->get(); + $contentRecapChannelCount = $contenteRecap->groupBy('channel')->map(function ($group) { + return $group->count(); + }); + + $contentRecapSocialMediaCount = $contenteRecap->groupBy('social_media')->map(function ($group) { + return $group->count(); + }); + + $monthlyCount = array_fill(0, 12, 0); + + $contenteRecap->groupBy(function ($item) { + return (int) \Carbon\Carbon::parse($item->created_at)->format('m'); + })->each(function ($items, $month) use (&$monthlyCount) { + // Simpan jumlah item tiap bulan ke index bulan - 1 (0-based) + $monthlyCount[$month - 1] = $items->count(); + }); + + $data['contentRecapMonthly'] = $monthlyCount; + + $data['facebookContentRecap'] = $contentRecapChannelCount->get('facebook', 0); + $data['twitterContentRecap'] = $contentRecapChannelCount->get('twitter', 0); + $data['websiteContentRecap'] = $contentRecapChannelCount->get('website', 0); + $data['youtubeContentRecap'] = $contentRecapChannelCount->get('youtube', 0); + $data['instagramContentRecap'] = $contentRecapChannelCount->get('instagram', 0); + $data['tiktokContentRecap'] = $contentRecapChannelCount->get('tiktok', 0); + $data['cetakContentRecap'] = $contentRecapChannelCount->get('cetak', 0); + + $data['socialMedia1ContentRecap'] = $contentRecapSocialMediaCount->get('Diskominfo Purwakarta', 0); + $data['socialMedia2ContentRecap'] = $contentRecapSocialMediaCount->get('PPID Diskominfo Purwakarta', 0); + $data['socialMedia3ContentRecap'] = $contentRecapSocialMediaCount->get('Purwakarta Saber Hoaks', 0); + + return view('dashboard.statistics.show.content-recap', $data); default: abort(404); } diff --git a/resources/views/dashboard/statistics/chart/airing-proof-report.blade.php b/resources/views/dashboard/statistics/chart/airing-proof-report.blade.php index 699f0a6..eb20de3 100644 --- a/resources/views/dashboard/statistics/chart/airing-proof-report.blade.php +++ b/resources/views/dashboard/statistics/chart/airing-proof-report.blade.php @@ -5,14 +5,14 @@ "use strict"; @if(is_role(['1'])) - var proofAiringThemeStatus = { + var airingProofReportStatus = { labels: ["Menunggu", "Diterima", "Ditolak"], dataUnit: 'Data', legend: false, datasets: [{ borderColor: "#fff", background: ["#FFCC00", "#0065F8", "#CB0404"], - data: ["{{$proofAiringThemeWaiting}}", "{{$proofAiringThemeAccepted}}", "{{$proofAiringThemeRejected}}"] + data: ["{{$airingProofReportWaiting}}", "{{$airingProofReportAccepted}}", "{{$airingProofReportRejected}}"] }] }; @@ -169,7 +169,7 @@ function ecommerceDoughnutS1(selector, set_data) { } }; - const statusChart = new ApexCharts(document.querySelector("#airingProofThemeColumn"), statusOptions); + const statusChart = new ApexCharts(document.querySelector("#airingProofReportColumn"), statusOptions); statusChart.render(); diff --git a/resources/views/dashboard/statistics/chart/content-recap.blade.php b/resources/views/dashboard/statistics/chart/content-recap.blade.php new file mode 100644 index 0000000..963485a --- /dev/null +++ b/resources/views/dashboard/statistics/chart/content-recap.blade.php @@ -0,0 +1,200 @@ + + diff --git a/resources/views/dashboard/statistics/chart/cooperation-completion.blade.php b/resources/views/dashboard/statistics/chart/cooperation-completion.blade.php new file mode 100644 index 0000000..3b05fc2 --- /dev/null +++ b/resources/views/dashboard/statistics/chart/cooperation-completion.blade.php @@ -0,0 +1,259 @@ + + + diff --git a/resources/views/dashboard/statistics/chart/media-cooperation.blade.php b/resources/views/dashboard/statistics/chart/media-cooperation.blade.php new file mode 100644 index 0000000..cf5a596 --- /dev/null +++ b/resources/views/dashboard/statistics/chart/media-cooperation.blade.php @@ -0,0 +1,259 @@ + + + diff --git a/resources/views/dashboard/statistics/chart/user.blade.php b/resources/views/dashboard/statistics/chart/user.blade.php new file mode 100644 index 0000000..52f979e --- /dev/null +++ b/resources/views/dashboard/statistics/chart/user.blade.php @@ -0,0 +1,85 @@ + diff --git a/resources/views/dashboard/statistics/chart/website-visitor.blade.php b/resources/views/dashboard/statistics/chart/website-visitor.blade.php new file mode 100644 index 0000000..fe60bc3 --- /dev/null +++ b/resources/views/dashboard/statistics/chart/website-visitor.blade.php @@ -0,0 +1,85 @@ + diff --git a/resources/views/dashboard/statistics/show/airing-proof-report.blade.php b/resources/views/dashboard/statistics/show/airing-proof-report.blade.php index f83bbd9..4eec37f 100644 --- a/resources/views/dashboard/statistics/show/airing-proof-report.blade.php +++ b/resources/views/dashboard/statistics/show/airing-proof-report.blade.php @@ -56,25 +56,25 @@
- +
@@ -92,7 +92,7 @@
Status Laporan Bukti Tayang
-
+
@@ -106,7 +106,7 @@
Publikasi Laporan Bukti Tayang
-
+
diff --git a/resources/views/dashboard/statistics/show/content-recap.blade.php b/resources/views/dashboard/statistics/show/content-recap.blade.php new file mode 100644 index 0000000..47f7e1e --- /dev/null +++ b/resources/views/dashboard/statistics/show/content-recap.blade.php @@ -0,0 +1,215 @@ +@include('partials.dashboard.head') +@include('partials.dashboard.sidebar', ['page' => 'statistics']) +@include('partials.dashboard.header') + +
+
+
+
+
+
+
+

{{$title}}

+ {{--
+

Data: Tahun {{$data_year}}

+
--}} +
+ {{-- {{dd($cooperationRequests)}} --}} +
+
+ +
+
    +
  • +
    + Kembali +
    +
  • +
  • + @if (filled($year) || filled($from_month) || filled($to_month)) + + + + + + @endif +
    + Filter +
    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Kanal Rekap Konten
+
+
+
+ +
+
    +
  • +
    + + Facebook {{'('.$facebookContentRecap. ')'}} +
    +
  • +
  • +
    + + Twitter {{'('.$twitterContentRecap. ')'}} +
    +
  • +
  • +
    + + Website {{'('.$websiteContentRecap. ')'}} +
    +
  • +
  • +
    + + YouTube {{'('.$youtubeContentRecap. ')'}} +
    +
  • +
  • +
    + + Instagram {{'('.$instagramContentRecap. ')'}} +
    +
  • +
  • +
    + + TikTok {{'('.$tiktokContentRecap. ')'}} +
    +
  • +
  • +
    + + Cetak {{'('.$cetakContentRecap. ')'}} +
    +
  • +
+
+
+
+
+
+
+
+
+
+
+
Sosial Media Rekap Konten
+
+
+
+ +
+
    +
  • +
    + + Diskominfo Purwakarta {{'('.$socialMedia1ContentRecap. ')'}} +
    +
  • +
  • +
    + + PPID Diskominfo Purwakarta {{'('.$socialMedia2ContentRecap. ')'}} +
    +
  • +
  • +
    + + Purwakarta Saber Hoaks {{'('.$socialMedia3ContentRecap. ')'}} +
    +
  • +
+
+
+
+
+
+
+
+
+
+
+
Pembuatan Rekap Konten
+
+
+
+
+
+
+
+ + {{--
+
+
+
+ +
+
+
+
--}} +
+
+
+
+
+
+ +@include('partials.dashboard.footer', ['statistic_chart' => 'content-recap']) diff --git a/resources/views/dashboard/statistics/show/cooperation-completion.blade.php b/resources/views/dashboard/statistics/show/cooperation-completion.blade.php new file mode 100644 index 0000000..02a0279 --- /dev/null +++ b/resources/views/dashboard/statistics/show/cooperation-completion.blade.php @@ -0,0 +1,171 @@ +@include('partials.dashboard.head') +@include('partials.dashboard.sidebar', ['page' => 'statistics']) +@include('partials.dashboard.header') + +
+
+
+
+
+
+
+

{{$title}}

+ {{--
+

Data: Tahun {{$data_year}}

+
--}} +
+ {{-- {{dd($cooperationRequests)}} --}} +
+
+ +
+
    +
  • +
    + Kembali +
    +
  • +
  • + @if (filled($year) || filled($from_month) || filled($to_month)) + + + + + + @endif +
    + Filter +
    +
  • +
+
+
+
+
+
+
+
+ @if (is_role(['1'])) +
+
+
+
+
+
+
Status Penyelesaian Kerjasama
+
+
+
+ +
+
    +
  • +
    + + Menunggu {{ '('.$cooperationCompletionWaiting.')' }} +
    +
  • +
  • +
    + + Diterima {{ '('.$cooperationCompletionAccepted.')' }} +
    +
  • +
  • +
    + + Ditolak {{ '('.$cooperationCompletionRejected.')' }} +
    +
  • +
+
+
+
+
+ @endif +
+
+
+
+
+
+
Status Penyelesaian Kerjasama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Data Penyelesaian Kerjasama
+
+
+
+
+
+
+
+ + {{--
+
+
+
+ +
+
+
+
--}} +
+
+
+
+
+
+ +@include('partials.dashboard.footer', ['statistic_chart' => 'cooperation-completion']) diff --git a/resources/views/dashboard/statistics/show/media-cooperation.blade.php b/resources/views/dashboard/statistics/show/media-cooperation.blade.php index e69de29..a785491 100644 --- a/resources/views/dashboard/statistics/show/media-cooperation.blade.php +++ b/resources/views/dashboard/statistics/show/media-cooperation.blade.php @@ -0,0 +1,171 @@ +@include('partials.dashboard.head') +@include('partials.dashboard.sidebar', ['page' => 'statistics']) +@include('partials.dashboard.header') + +
+
+
+
+
+
+
+

{{$title}}

+ {{--
+

Data: Tahun {{$data_year}}

+
--}} +
+ {{-- {{dd($cooperationRequests)}} --}} +
+
+ +
+
    +
  • +
    + Kembali +
    +
  • +
  • + @if (filled($year) || filled($from_month) || filled($to_month)) + + + + + + @endif +
    + Filter +
    +
  • +
+
+
+
+
+
+
+
+ @if (is_role(['1'])) +
+
+
+
+
+
+
Status Kerjam Sama Media
+
+
+
+ +
+
    +
  • +
    + + Menunggu {{ '('.$mediaCooperationWaiting.')' }} +
    +
  • +
  • +
    + + Diterima {{ '('.$mediaCooperationAccepted.')' }} +
    +
  • +
  • +
    + + Ditolak {{ '('.$mediaCooperationRejected.')' }} +
    +
  • +
+
+
+
+
+ @endif +
+
+
+
+
+
+
Status Kerja Sama Media
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Data Kerja Sama Media
+
+
+
+
+
+
+
+ + {{--
+
+
+
+ +
+
+
+
--}} +
+
+
+
+
+
+ +@include('partials.dashboard.footer', ['statistic_chart' => 'media-cooperation']) diff --git a/resources/views/dashboard/statistics/show/user.blade.php b/resources/views/dashboard/statistics/show/user.blade.php new file mode 100644 index 0000000..f04da3d --- /dev/null +++ b/resources/views/dashboard/statistics/show/user.blade.php @@ -0,0 +1,119 @@ +@include('partials.dashboard.head') +@include('partials.dashboard.sidebar', ['page' => 'statistics']) +@include('partials.dashboard.header') + +
+
+
+
+
+
+
+

{{$title}}

+ {{--
+

Data: Tahun {{$data_year}}

+
--}} +
+ {{-- {{dd($cooperationRequests)}} --}} +
+
+ +
+
    +
  • +
    + Kembali +
    +
  • +
  • + @if (filled($year) || filled($from_month) || filled($to_month)) + + + + + + @endif +
    + Filter +
    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Pendaftaran Akun
+
+
+
+
+
+
+
+ + {{--
+
+
+
+ +
+
+
+
--}} +
+
+
+
+
+
+ +@include('partials.dashboard.footer', ['statistic_chart' => 'users']) diff --git a/resources/views/dashboard/statistics/show/website-visitor.blade.php b/resources/views/dashboard/statistics/show/website-visitor.blade.php new file mode 100644 index 0000000..e48d3b9 --- /dev/null +++ b/resources/views/dashboard/statistics/show/website-visitor.blade.php @@ -0,0 +1,119 @@ +@include('partials.dashboard.head') +@include('partials.dashboard.sidebar', ['page' => 'statistics']) +@include('partials.dashboard.header') + +
+
+
+
+
+
+
+

{{$title}}

+ {{--
+

Data: Tahun {{$data_year}}

+
--}} +
+ {{-- {{dd($cooperationRequests)}} --}} +
+
+ +
+
    +
  • +
    + Kembali +
    +
  • +
  • + @if (filled($year) || filled($from_month) || filled($to_month)) + + + + + + @endif +
    + Filter +
    +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Pengunjung Website
+
+
+
+
+
+
+
+ + {{--
+
+
+
+ +
+
+
+
--}} +
+
+
+
+
+
+ +@include('partials.dashboard.footer', ['statistic_chart' => 'website-visitors']) diff --git a/resources/views/partials/dashboard/footer.blade.php b/resources/views/partials/dashboard/footer.blade.php index f5d9029..7241275 100644 --- a/resources/views/partials/dashboard/footer.blade.php +++ b/resources/views/partials/dashboard/footer.blade.php @@ -118,6 +118,21 @@ @case('login-activities') @include('dashboard.statistics.chart.login-activity') @break + @case('users') + @include('dashboard.statistics.chart.user') + @break + @case('website-visitors') + @include('dashboard.statistics.chart.website-visitor') + @break + @case('cooperation-completion') + @include('dashboard.statistics.chart.cooperation-completion') + @break + @case('media-cooperation') + @include('dashboard.statistics.chart.media-cooperation') + @break + @case('content-recap') + @include('dashboard.statistics.chart.content-recap') + @break @default @endswitch