feat: cache-bust assets, fix XSS and filemtime error handling, clean up users filters
- Add ?ver=<filemtime> cache-busting to CSS/JS assets in app and auth layouts
- Use ?: 0 fallback on filemtime() to prevent E_WARNING when files are missing
- Escape security_information output with $e() to fix XSS vulnerability (show.php:91)
- Wrap product image metadata in __meta container, move storage path into <details>
- Add table--details CSS class and th { white-space: nowrap } rule
- Remove redundant sort, sort_dir, per_page filter dropdowns from users list
- Add 10 as a per-page option in users list
- Clean up completed items from TODO.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -55,39 +55,6 @@ final class UsersController
|
||||
'type' => 'text',
|
||||
'value' => $filters['search'],
|
||||
],
|
||||
[
|
||||
'key' => 'sort',
|
||||
'label' => $this->translator->get('users.filters.sort'),
|
||||
'type' => 'select',
|
||||
'value' => $filters['sort'],
|
||||
'options' => [
|
||||
'id' => 'ID',
|
||||
'name' => $this->translator->get('users.fields.name'),
|
||||
'email' => $this->translator->get('users.fields.email'),
|
||||
'created_at' => $this->translator->get('users.fields.created_at'),
|
||||
],
|
||||
],
|
||||
[
|
||||
'key' => 'sort_dir',
|
||||
'label' => $this->translator->get('users.filters.direction'),
|
||||
'type' => 'select',
|
||||
'value' => $filters['sort_dir'],
|
||||
'options' => [
|
||||
'DESC' => 'DESC',
|
||||
'ASC' => 'ASC',
|
||||
],
|
||||
],
|
||||
[
|
||||
'key' => 'per_page',
|
||||
'label' => $this->translator->get('users.filters.per_page'),
|
||||
'type' => 'select',
|
||||
'value' => (string) $filters['per_page'],
|
||||
'options' => [
|
||||
'20' => '20',
|
||||
'50' => '50',
|
||||
'100' => '100',
|
||||
],
|
||||
],
|
||||
],
|
||||
'columns' => [
|
||||
['key' => 'id', 'label' => 'ID', 'sortable' => true, 'sort_key' => 'id'],
|
||||
@@ -102,7 +69,7 @@ final class UsersController
|
||||
'total' => (int) ($result['total'] ?? 0),
|
||||
'per_page' => (int) ($result['per_page'] ?? 20),
|
||||
],
|
||||
'per_page_options' => [20, 50, 100],
|
||||
'per_page_options' => [10, 20, 50, 100],
|
||||
'empty_message' => $this->translator->get('users.empty'),
|
||||
'show_actions' => false,
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user