Skip to content

Commit a8dff77

Browse files
author
Sébastien HEYD
committed
fix(logs): improve datatable handling and error prevention
- Add Carbon import for LogsDatatable class - Fix stats array structure to use numeric keys instead of associative - Disable ordering in logs datatable configuration - Add UTF-8 encoding parameter to mb_convert_case function - Extract date formatting to variable to avoid duplication - Add null check for entry type in LogFile parsing to prevent undefined index errors
1 parent 08d317d commit a8dff77

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

src/Datatables/Admin/LogsDatatable.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Sebastienheyd\Boilerplate\Datatables\Admin;
44

5+
use Carbon\Carbon;
56
use Sebastienheyd\Boilerplate\Datatables\Button;
67
use Sebastienheyd\Boilerplate\Datatables\Column;
78
use Sebastienheyd\Boilerplate\Datatables\Datatable;
@@ -18,7 +19,7 @@ public function datasource()
1819
$stats = [];
1920
foreach ($logs as $logFile) {
2021
$log = LogFile::get($logFile);
21-
$stats[$logFile] = $log->stats();
22+
$stats[] = $log->stats();
2223
}
2324

2425
return collect($stats);
@@ -32,6 +33,7 @@ public function setUp()
3233
'deleteSuccess' => __('boilerplate::role.list.deletesuccess'),
3334
])
3435
->buttons([])
36+
->noOrdering()
3537
->noSearching()
3638
->order('date', 'asc');
3739
}
@@ -51,7 +53,7 @@ public function columns(): array
5153
Column::add(__('Date'))
5254
->class('text-nowrap')
5355
->data('date', function ($log) {
54-
return mb_convert_case($log['date']->isoFormat(__('boilerplate::date.lFdY')), MB_CASE_TITLE);
56+
return mb_convert_case($log['date']->isoFormat(__('boilerplate::date.lFdY')), MB_CASE_TITLE, 'UTF-8');
5557
}),
5658

5759
Column::add(__('boilerplate::logs.show.size'))
@@ -115,12 +117,13 @@ public function columns(): array
115117
Column::add()
116118
->width('20px')
117119
->actions(function ($log) {
118-
$buttons = Button::show('boilerplate.logs.show', $log['date']->format('Y-m-d'));
120+
$date = $log['date']->format('Y-m-d');
121+
$buttons = Button::show('boilerplate.logs.show', $date);
119122
$buttons .= Button::add()
120123
->route('boilerplate.logs.delete')
121124
->attributes([
122125
'data-action' => 'delete-log',
123-
'data-date' => $log['date']->format('Y-m-d'),
126+
'data-date' => $date,
124127
])
125128
->color('danger')
126129
->icon('trash')

src/Models/LogFile.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@ public function stats()
132132
}
133133

134134
foreach ($parse as $entry) {
135+
if (! isset($entry['type'])) {
136+
continue;
137+
}
138+
135139
$levels[$entry['type']]++;
136140
}
137141

0 commit comments

Comments
 (0)