feat: add gboquizosanchez/filament-log-viewer

This commit is contained in:
idevakk
2025-09-28 21:57:25 +05:30
parent 10ea8f3cb1
commit 21475908d3
15 changed files with 918 additions and 1 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Providers\Filament; namespace App\Providers\Filament;
use Boquizo\FilamentLogViewer\FilamentLogViewerPlugin;
use Filament\Http\Middleware\Authenticate; use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\AuthenticateSession; use Filament\Http\Middleware\AuthenticateSession;
use Filament\Http\Middleware\DisableBladeIconComponents; use Filament\Http\Middleware\DisableBladeIconComponents;
@@ -58,6 +59,7 @@ class DashPanelProvider extends PanelProvider
]) ])
->plugins([ ->plugins([
FilamentLoggerPlugin::make(), FilamentLoggerPlugin::make(),
FilamentLogViewerPlugin::make(),
]); ]);
} }
} }

View File

@@ -8,6 +8,7 @@
"require": { "require": {
"php": "^8.2", "php": "^8.2",
"filament/filament": "~4.0", "filament/filament": "~4.0",
"gboquizosanchez/filament-log-viewer": "^2.1",
"jacobtims/filament-logger": "^1.0", "jacobtims/filament-logger": "^1.0",
"laravel/fortify": "^1.30", "laravel/fortify": "^1.30",
"laravel/framework": "^12.0", "laravel/framework": "^12.0",

125
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "00c3c015290da6a691c269b7088d3ec3", "content-hash": "bae273ecc05278912300707444956065",
"packages": [ "packages": [
{ {
"name": "anourvalar/eloquent-serialize", "name": "anourvalar/eloquent-serialize",
@@ -1604,6 +1604,69 @@
], ],
"time": "2023-10-12T05:21:21+00:00" "time": "2023-10-12T05:21:21+00:00"
}, },
{
"name": "gboquizosanchez/filament-log-viewer",
"version": "2.1.5",
"source": {
"type": "git",
"url": "https://github.com/gboquizosanchez/filament-log-viewer.git",
"reference": "d1ea88c68333e5ae5b9438b041eb22b28898253f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/gboquizosanchez/filament-log-viewer/zipball/d1ea88c68333e5ae5b9438b041eb22b28898253f",
"reference": "d1ea88c68333e5ae5b9438b041eb22b28898253f",
"shasum": ""
},
"require": {
"ext-zip": "*",
"owenvoke/blade-fontawesome": "^2.9",
"php": "^8.3|^8.4"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.64",
"hermes/dependencies": "^1.1",
"larastan/larastan": "^2.9",
"orchestra/testbench": "^9.1",
"pestphp/pest": "^3.5"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Boquizo\\FilamentLogViewer\\FilamentLogViewerServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Boquizo\\FilamentLogViewer\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Germán Boquizo Sánchez",
"email": "germanboquizosanchez@gmail.com",
"role": "Developer"
}
],
"description": "Filament Log Viewer",
"homepage": "https://github.com/gboquizosanchez",
"keywords": [
"filament",
"laravel",
"log-viewer"
],
"support": {
"issues": "https://github.com/gboquizosanchez/filament-log-viewer/issues",
"source": "https://github.com/gboquizosanchez/filament-log-viewer/tree/2.1.5"
},
"time": "2025-09-04T17:11:33+00:00"
},
{ {
"name": "graham-campbell/result-type", "name": "graham-campbell/result-type",
"version": "v1.1.3", "version": "v1.1.3",
@@ -4431,6 +4494,66 @@
], ],
"time": "2025-01-30T13:51:11+00:00" "time": "2025-01-30T13:51:11+00:00"
}, },
{
"name": "owenvoke/blade-fontawesome",
"version": "v2.9.1",
"source": {
"type": "git",
"url": "https://github.com/owenvoke/blade-fontawesome.git",
"reference": "94dcd0c78f43f8234b0d9c76c903ecd288b8b0d1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/owenvoke/blade-fontawesome/zipball/94dcd0c78f43f8234b0d9c76c903ecd288b8b0d1",
"reference": "94dcd0c78f43f8234b0d9c76c903ecd288b8b0d1",
"shasum": ""
},
"require": {
"blade-ui-kit/blade-icons": "^1.5",
"illuminate/support": "^10.34|^11.0|^12.0",
"php": "^8.1"
},
"require-dev": {
"laravel/pint": "^1.13",
"orchestra/testbench": "^8.12|^9.0|^10.0",
"pestphp/pest": "^2.26|^3.7",
"phpstan/phpstan": "^1.10|^2.1",
"symfony/var-dumper": "^6.3|^7.2"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"OwenVoke\\BladeFontAwesome\\BladeFontAwesomeServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"OwenVoke\\BladeFontAwesome\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "A package to easily make use of Font Awesome in your Laravel Blade views",
"support": {
"issues": "https://github.com/owenvoke/blade-fontawesome/issues",
"source": "https://github.com/owenvoke/blade-fontawesome/tree/v2.9.1"
},
"funding": [
{
"url": "https://ecologi.com/owenvoke?gift-trees",
"type": "custom"
},
{
"url": "https://github.com/owenvoke",
"type": "github"
}
],
"time": "2025-03-28T16:03:42+00:00"
},
{ {
"name": "paragonie/constant_time_encoding", "name": "paragonie/constant_time_encoding",
"version": "v3.1.3", "version": "v3.1.3",

View File

@@ -0,0 +1,119 @@
<?php
declare(strict_types=1);
return [
/* -----------------------------------------------------------------
| Driver
| -----------------------------------------------------------------
| Available drivers: 'daily', 'stack', 'raw'
| -----------------------------------------------------------------
*/
'driver' => env('FILAMENT_LOG_VIEWER_DRIVER', env('LOG_CHANNEL')),
/* -----------------------------------------------------------------
| Resource configuration
| -----------------------------------------------------------------
*/
'resource' => [
'slug' => 'logs',
'cluster' => null,
],
/* -----------------------------------------------------------------
| Logs files can be cleared
| -----------------------------------------------------------------
*/
'clearable' => env('FILAMENT_LOG_VIEWER_CLEARABLE', false),
/* -----------------------------------------------------------------
| Log files storage path
| -----------------------------------------------------------------
*/
'storage_path' => storage_path('logs'),
/* -----------------------------------------------------------------
| Log files pattern
| -----------------------------------------------------------------
*/
'pattern' => [
'prefix' => 'laravel-',
'date' => '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]',
'extension' => '.log'
],
/* -----------------------------------------------------------------
| Log entries per page
| -----------------------------------------------------------------
| This defines how many logs and entries are displayed per page.
*/
'per-page' => [
5,
10,
25,
30,
],
/* -----------------------------------------------------------------
| Download settings
| -----------------------------------------------------------------
*/
'download' => [
'prefix' => 'laravel-',
'extension' => 'log',
],
/* -----------------------------------------------------------------
| Icons
| -----------------------------------------------------------------
*/
'icons' => [
'all' => 'fas-list', // http://fontawesome.io/icon/list/
'emergency' => 'fas-bug', // http://fontawesome.io/icon/bug/
'alert' => 'fas-bullhorn', // http://fontawesome.io/icon/bullhorn/
'critical' => 'fas-heartbeat', // http://fontawesome.io/icon/heartbeat/
'error' => 'fas-times-circle', // http://fontawesome.io/icon/times-circle/
'warning' => 'fas-exclamation-triangle', // http://fontawesome.io/icon/exclamation-triangle/
'notice' => 'fas-exclamation-circle', // http://fontawesome.io/icon/exclamation-circle/
'info' => 'fas-info-circle', // http://fontawesome.io/icon/info-circle/
'debug' => 'fas-life-ring', // http://fontawesome.io/icon/life-ring/
],
/* -----------------------------------------------------------------
| Colors
| -----------------------------------------------------------------
*/
'colors' => [
'levels' => [
'all' => '#8A8A8A',
'emergency' => '#B71C1C',
'alert' => '#D32F2F',
'critical' => '#F44336',
'error' => '#FF5722',
'warning' => '#FF9100',
'notice' => '#4CAF50',
'info' => '#1976D2',
'debug' => '#90CAF9',
],
],
/* -----------------------------------------------------------------
| Strings to highlight in stack trace
| -----------------------------------------------------------------
*/
'highlight' => [
'^#\d+', '^Stack trace:',
],
];

View File

@@ -0,0 +1,84 @@
<?php
declare(strict_types=1);
return [
'dashboard' => [
'title' => 'عارض السجلات',
],
'show' => [
'title' => 'عرض السجل :log',
],
'navigation' => [
'group' => 'السجلات',
'label' => 'عارض السجلات',
'sort' => 100,
],
'table' => [
'columns' => [
'date' => [
'label' => 'التاريخ',
],
'level' => [
'label' => 'المستوى',
],
'message' => [
'label' => 'الرسالة',
],
'filename' => [
'label' => 'اسم الملف',
],
],
'actions' => [
'view' => [
'label' => 'عرض',
],
'download' => [
'label' => 'تحميل السجل :log',
'bulk' => [
'label' => 'تحميل السجلات',
'error' => 'خطأ في تحميل السجلات',
],
],
'delete' => [
'label' => 'حذف السجل :log',
'success' => 'تم حذف السجل بنجاح',
'error' => 'خطأ في حذف السجل',
'bulk' => [
'label' => 'حذف السجلات المحددة',
],
],
'clear' => [
'label' => 'مسح السجل :log',
'success' => 'تم مسح السجل بنجاح',
'error' => 'حدث خطأ أثناء مسح السجل',
'bulk' => [
'success' => 'تم مسح السجلات بنجاح',
'label' => 'مسح السجلات المحددة',
],
],
'close' => [
'label' => 'رجوع',
],
],
'detail' => [
'title' => 'التفاصيل',
'file_path' => 'مسار الملف',
'log_entries' => 'المداخل',
'size' => 'الحجم',
'created_at' => 'تاريخ الإنشاء',
'updated_at' => 'آخر تعديل',
],
],
'levels' => [
'all' => 'الكل',
'emergency' => 'حالة طوارئ',
'alert' => 'تنبيه',
'critical' => 'حرج',
'error' => 'خطأ',
'warning' => 'تحذير',
'notice' => 'إشعار',
'info' => 'معلومات',
'debug' => 'تصحيح الأخطاء',
],
];

View File

@@ -0,0 +1,84 @@
<?php
declare(strict_types=1);
return [
'dashboard' => [
'title' => 'Log-Viewer',
],
'show' => [
'title' => 'Log :log anzeigen',
],
'navigation' => [
'group' => 'Logs',
'label' => 'Log-Viewer',
'sort' => 100,
],
'table' => [
'columns' => [
'date' => [
'label' => 'Datum',
],
'level' => [
'label' => 'Stufe',
],
'message' => [
'label' => 'Nachricht',
],
'filename' => [
'label' => 'Dateiname',
],
],
'actions' => [
'view' => [
'label' => 'Ansehen',
],
'download' => [
'label' => 'Log :log herunterladen',
'bulk' => [
'label' => 'Ausgewählte herunterladen',
'error' => 'Fehler beim Herunterladen der Logs',
],
],
'delete' => [
'label' => 'Log :log löschen',
'success' => 'Log erfolgreich gelöscht',
'error' => 'Fehler beim Löschen des Logs',
'bulk' => [
'label' => 'Ausgewählte Logs löschen',
],
],
'clear' => [
'label' => 'Protokoll löschen :log',
'success' => 'Protokoll erfolgreich gelöscht',
'error' => 'Fehler beim Löschen des Protokolls',
'bulk' => [
'success' => 'Protokolle erfolgreich gelöscht',
'label' => 'Ausgewählte Protokolle löschen',
],
],
'close' => [
'label' => 'Zurück',
],
],
'detail' => [
'title' => 'Detail',
'file_path' => 'Dateipfad',
'log_entries' => 'Einträge',
'size' => 'Größe',
'created_at' => 'Erstellt am',
'updated_at' => 'Aktualisiert am',
],
],
'levels' => [
'all' => 'Alle',
'emergency' => 'Notfall',
'alert' => 'Alarm',
'critical' => 'Kritisch',
'error' => 'Fehler',
'warning' => 'Warnung',
'notice' => 'Hinweis',
'info' => 'Info',
'debug' => 'Debug',
],
];

View File

@@ -0,0 +1,84 @@
<?php
declare(strict_types=1);
return [
'dashboard' => [
'title' => 'Log Viewer',
],
'show' => [
'title' => 'View log :log',
],
'navigation' => [
'group' => 'Logs',
'label' => 'Log Viewer',
'sort' => 100,
],
'table' => [
'columns' => [
'date' => [
'label' => 'Date',
],
'level' => [
'label' => 'Level',
],
'message' => [
'label' => 'Message',
],
'filename' => [
'label' => 'Filename',
],
],
'actions' => [
'view' => [
'label' => 'View',
],
'download' => [
'label' => 'Download log :log',
'bulk' => [
'label' => 'Download logs',
'error' => 'Error downloading the logs',
],
],
'delete' => [
'label' => 'Delete log :log',
'success' => 'Log deleted successfully',
'error' => 'Error deleting the log',
'bulk' => [
'label' => 'Delete selected logs',
],
],
'clear' => [
'label' => 'Clear log :log',
'success' => 'Log cleared successfully',
'error' => 'Error clearing the log',
'bulk' => [
'success' => 'Logs cleared successfully',
'label' => 'Clear selected logs',
],
],
'close' => [
'label' => 'Back',
],
],
'detail' => [
'title' => 'Detail',
'file_path' => 'File Path',
'log_entries' => 'Entries',
'size' => 'Size',
'created_at' => 'Created at',
'updated_at' => 'Updated at',
],
],
'levels' => [
'all' => 'All',
'emergency' => 'Emergency',
'alert' => 'Alert',
'critical' => 'Critical',
'error' => 'Error',
'warning' => 'Warning',
'notice' => 'Notice',
'info' => 'Info',
'debug' => 'Debug',
],
];

View File

@@ -0,0 +1,84 @@
<?php
declare(strict_types=1);
return [
'dashboard' => [
'title' => 'Visor de logs',
],
'show' => [
'title' => 'Ver el log :log',
],
'navigation' => [
'group' => 'Logs',
'label' => 'Visor de logs',
'sort' => 100,
],
'table' => [
'columns' => [
'date' => [
'label' => 'Fecha',
],
'level' => [
'label' => 'Nivel',
],
'message' => [
'label' => 'Mensaje',
],
'filename' => [
'label' => 'Nombre del archivo',
],
],
'actions' => [
'view' => [
'label' => 'Ver',
],
'download' => [
'label' => 'Descargar el log :log',
'bulk' => [
'label' => 'Descargar seleccionados',
'error' => 'Error al descargar los logs',
],
],
'delete' => [
'label' => 'Eliminar el log :log',
'success' => 'Log eliminado con éxito',
'error' => 'Error al eliminar el log',
'bulk' => [
'label' => 'Eliminar logs seleccionados',
],
],
'clear' => [
'label' => 'Limpiar el log :log',
'success' => 'Log limpiado con éxito',
'error' => 'Error limpiando el log',
'bulk' => [
'success' => 'Logs limpiados con éxito',
'label' => 'Limpiar logs seleccionados',
],
],
'close' => [
'label' => 'Volver',
],
],
'detail' => [
'title' => 'Detalle',
'file_path' => 'Ruta del archivo',
'log_entries' => 'Entradas',
'size' => 'Tamaño',
'created_at' => 'Creado el',
'updated_at' => 'Actualizado el',
],
],
'levels' => [
'all' => 'Todos',
'emergency' => 'Emergencia',
'alert' => 'Alerta',
'critical' => 'Crítico',
'error' => 'Error',
'warning' => 'Advertencia',
'notice' => 'Aviso',
'info' => 'Información',
'debug' => 'Depuración',
],
];

View File

@@ -0,0 +1,84 @@
<?php
declare(strict_types=1);
return [
'dashboard' => [
'title' => 'Visionneuse de logs',
],
'show' => [
'title' => 'Voir le log :log',
],
'navigation' => [
'group' => 'Logs',
'label' => 'Visionneuse de logs',
'sort' => 100,
],
'table' => [
'columns' => [
'date' => [
'label' => 'Date',
],
'level' => [
'label' => 'Niveau',
],
'message' => [
'label' => 'Message',
],
'filename' => [
'label' => 'Nom du fichier',
],
],
'actions' => [
'view' => [
'label' => 'Voir',
],
'download' => [
'label' => 'Télécharger le log :log',
'bulk' => [
'label' => 'Télécharger sélectionnés',
'error' => 'Erreur lors du téléchargement des logs',
],
],
'delete' => [
'label' => 'Supprimer le log :log',
'success' => 'Log supprimé avec succès',
'error' => 'Erreur lors de la suppression du log',
'bulk' => [
'label' => 'Supprimer les logs sélectionnés',
],
],
'clear' => [
'label' => 'Effacer le journal :log',
'success' => 'Journal effacé avec succès',
'error' => 'Erreur lors de l\'effacement du journal',
'bulk' => [
'success' => 'Journaux effacés avec succès',
'label' => 'Effacer les journaux sélectionnés',
],
],
'close' => [
'label' => 'Retour',
],
],
'detail' => [
'title' => 'Détail',
'file_path' => 'Chemin du fichier',
'log_entries' => 'Entrées',
'size' => 'Taille',
'created_at' => 'Créé le',
'updated_at' => 'Mis à jour le',
],
],
'levels' => [
'all' => 'Tous',
'emergency' => 'Urgent',
'alert' => 'Alerte',
'critical' => 'Critique',
'error' => 'Erreur',
'warning' => 'Avertissement',
'notice' => 'Avis',
'info' => 'Info',
'debug' => 'Débogage',
],
];

View File

@@ -0,0 +1,84 @@
<?php
declare(strict_types=1);
return [
'dashboard' => [
'title' => 'Visualizzatore di log',
],
'show' => [
'title' => 'Vedi il log :log',
],
'navigation' => [
'group' => 'Log',
'label' => 'Visualizzatore di log',
'sort' => 100,
],
'table' => [
'columns' => [
'date' => [
'label' => 'Data',
],
'level' => [
'label' => 'Livello',
],
'message' => [
'label' => 'Messaggio',
],
'filename' => [
'label' => 'Nome del file',
],
],
'actions' => [
'view' => [
'label' => 'Vedi',
],
'download' => [
'label' => 'Scarica il log :log',
'bulk' => [
'label' => 'Scarica i log selezionati',
'error' => 'Errore durante il download dei log',
],
],
'delete' => [
'label' => 'Elimina il log :log',
'success' => 'Log eliminato con successo',
'error' => 'Errore durante l\'eliminazione del log',
'bulk' => [
'label' => 'Elimina i log selezionati',
],
],
'clear' => [
'label' => 'Cancella registro :log',
'success' => 'Registro cancellato con successo',
'error' => 'Errore durante la cancellazione del registro',
'bulk' => [
'success' => 'Log cancellati con successo',
'label' => 'Cancella i log selezionati',
],
],
'close' => [
'label' => 'Indietro',
],
],
'detail' => [
'title' => 'Dettaglio',
'file_path' => 'Percorso del file',
'log_entries' => 'Voci',
'size' => 'Dimensione',
'created_at' => 'Creato il',
'updated_at' => 'Aggiornato il',
],
],
'levels' => [
'all' => 'Tutti',
'emergency' => 'Emergenza',
'alert' => 'Allerta',
'critical' => 'Critico',
'error' => 'Errore',
'warning' => 'Avviso',
'notice' => 'Notifica',
'info' => 'Informazioni',
'debug' => 'Debug',
],
];

View File

@@ -0,0 +1,84 @@
<?php
declare(strict_types=1);
return [
'dashboard' => [
'title' => 'Visualizador de logs',
],
'show' => [
'title' => 'Ver log :log',
],
'navigation' => [
'group' => 'Logs',
'label' => 'Visualizador de logs',
'sort' => 100,
],
'table' => [
'columns' => [
'date' => [
'label' => 'Data',
],
'level' => [
'label' => 'Nível',
],
'message' => [
'label' => 'Mensagem',
],
'filename' => [
'label' => 'Nome do arquivo',
],
],
'actions' => [
'view' => [
'label' => 'Ver',
],
'download' => [
'label' => 'Baixar log :log',
'bulk' => [
'label' => 'Baixar selecionados',
'error' => 'Erro ao baixar os logs',
],
],
'delete' => [
'label' => 'Excluir log :log',
'success' => 'Log excluído com sucesso',
'error' => 'Erro ao excluir o log',
'bulk' => [
'label' => 'Excluir logs selecionados',
],
],
'clear' => [
'label' => 'Limpar log :log',
'success' => 'Log limpo com sucesso',
'error' => 'Erro ao limpar o log',
'bulk' => [
'success' => 'Logs limpos com sucesso',
'label' => 'Limpar logs selecionados',
],
],
'close' => [
'label' => 'Voltar',
],
],
'detail' => [
'title' => 'Detalhes',
'file_path' => 'Caminho do arquivo',
'log_entries' => 'Entradas',
'size' => 'Tamanho',
'created_at' => 'Criado em',
'updated_at' => 'Atualizado em',
],
],
'levels' => [
'all' => 'Todos',
'emergency' => 'Emergência',
'alert' => 'Alerta',
'critical' => 'Crítico',
'error' => 'Erro',
'warning' => 'Aviso',
'notice' => 'Aviso',
'info' => 'Informação',
'debug' => 'Depuração',
],
];

View File

@@ -0,0 +1,20 @@
<x-filament-panels::page>
@if ($this->getTableRecords()->count() > 0)
<div class="w-full">
<div class="flex flex-col 2xl:flex-row gap-6">
<div class="2xl:w-1/3 flex items-center justify-center">
<div class="w-full max-w-sm">
@livewire(\Boquizo\FilamentLogViewer\Widgets\StatsOverviewWidget::class)
</div>
</div>
<div class="2xl:w-2/3 w-full">
@livewire(\Boquizo\FilamentLogViewer\Widgets\IconsWidget::class)
</div>
</div>
</div>
@endif
<div class="w-full mt-2">
{{ $this->table }}
</div>
</x-filament-panels::page>

View File

@@ -0,0 +1,49 @@
<style>
.fi-ta-header-toolbar {
display: none;
}
</style>
<div class="filament-tables-table overflow-hidden bg-white dark:bg-gray-900 shadow xs:rounded-lg">
<div class="px-6 py-4 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 divide-y divide-gray-200 dark:divide-gray-700">
<h3 class="text-md font-semibold text-gray-900 dark:text-gray-100">
{{ __('filament-log-viewer::log.table.detail.title') }}
</h3>
</div>
<div class="px-6 py-4">
<div class="flex items-center py-3 border-b border-gray-200 dark:border-gray-700">
<div class="text-sm font-medium text-gray-900 dark:text-gray-100 w-36 me-3">
{{ __('filament-log-viewer::log.table.detail.file_path') }}:
</div>
<div class="text-sm text-gray-500 dark:text-gray-400">{{ $data->path() }}</div>
</div>
<div class="flex flex-col lg:flex-row justify-between py-3">
<div class="flex items-center py-2">
<div class="text-sm font-medium text-gray-900 dark:text-gray-100 w-36 me-3">
{{ __('filament-log-viewer::log.table.detail.log_entries') }}:
</div>
<div class="text-sm text-gray-500 dark:text-gray-400">{{ $data->entries()->count() }}</div>
</div>
<div class="flex items-center py-2">
<div class="text-sm font-medium text-gray-900 dark:text-gray-100 w-36 me-3">
{{ __('filament-log-viewer::log.table.detail.size') }}:
</div>
<div class="text-sm text-gray-500 dark:text-gray-400">{{ $data->size() }}</div>
</div>
<div class="flex items-center py-2">
<div class="text-sm font-medium text-gray-900 dark:text-gray-100 w-36 me-3">
{{ __('filament-log-viewer::log.table.detail.created_at') }}:
</div>
<div class="text-sm text-gray-500 dark:text-gray-400">{{ $data->createdAt() }}</div>
</div>
<div class="flex items-center py-2">
<div class="text-sm font-medium text-gray-900 dark:text-gray-100 w-36 me-3">
{{ __('filament-log-viewer::log.table.detail.updated_at') }}:
</div>
<div class="text-sm text-gray-500 dark:text-gray-400">{{ $data->updatedAt() }}</div>
</div>
</div>
</div>
</div>
<div class="py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 divide-y divide-gray-200 dark:divide-gray-700">
</div>

View File

@@ -0,0 +1,10 @@
{!! $style !!}
<div class="w-full bg-gray-200 dark:bg-gray-700 h-1 rounded-full overflow-hidden shadow-inner">
<div class="h-full rounded-full transition-width duration-400 ease-in-out"
style="width: {{ $percent }}%; background-color: {{ $progressColor }};">
</div>
</div>
<div class="items-center mt-4 w-full">
<span class="w-full text-gray-800 dark:text-gray-200">{{ $percent }}% </span>
</div>

View File

@@ -0,0 +1,5 @@
<x-filament-panels::page>
<div class="flex flex-col gap-y-6">
{{ $this->content }}
</div>
</x-filament-panels::page>