feat: add Filament packages for enhanced admin functionality

- Add backstage/filament-mails for mail management interface
  - Add binarybuilds/filament-failed-jobs for failed job monitoring
  - Add gboquizosanchez/filament-log-viewer for application log viewing
  - Add jacobtims/filament-logger for enhanced logging capabilities
  - Extend Filament admin panel with comprehensive monitoring tools
  - Improve developer experience with better visibility into system operations
This commit is contained in:
idevakk
2025-11-17 06:33:07 -08:00
parent e330c4f90e
commit bbbaf3a234
55 changed files with 2598 additions and 67 deletions

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' => 'Przegląd logów',
],
'show' => [
'title' => 'Podgląd logu :log',
],
'navigation' => [
'group' => 'System',
'label' => 'Logi systemowe',
'sort' => 100,
],
'table' => [
'columns' => [
'date' => [
'label' => 'Data',
],
'level' => [
'label' => 'Poziom',
],
'message' => [
'label' => 'Wiadomość',
],
'filename' => [
'label' => 'Nazwa pliku',
],
],
'actions' => [
'view' => [
'label' => 'Podgląd',
],
'download' => [
'label' => 'Pobierz log :log',
'bulk' => [
'label' => 'Pobierz logi',
'error' => 'Błąd podczas pobierania logów',
],
],
'delete' => [
'label' => 'Usuń log :log',
'success' => 'Log został pomyślnie usunięty',
'error' => 'Błąd podczas usuwania logu',
'bulk' => [
'label' => 'Usuń zaznaczone logi',
],
],
'clear' => [
'label' => 'Wyczyść log :log',
'success' => 'Log został pomyślnie wyczyszczony',
'error' => 'Błąd podczas czyszczenia logu',
'bulk' => [
'success' => 'Logi zostały pomyślnie wyczyszczone',
'label' => 'Wyczyść zaznaczone logi',
],
],
'close' => [
'label' => 'Powrót',
],
],
'detail' => [
'title' => 'Szczegóły',
'file_path' => 'Ścieżka pliku',
'log_entries' => 'Wpisy',
'size' => 'Rozmiar',
'created_at' => 'Utworzono',
'updated_at' => 'Zaktualizowano',
],
],
'levels' => [
'all' => 'Wszystkie',
'emergency' => 'Krytyczny (Emergency)',
'alert' => 'Alert',
'critical' => 'Bardzo poważny (Critical)',
'error' => 'Błąd',
'warning' => 'Ostrzeżenie',
'notice' => 'Informacja (Notice)',
'info' => 'Informacja',
'debug' => 'Debugowanie',
],
];

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,28 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'إعدادات',
'nav.log.label' => 'سجل النشاطات',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'سجل النشاط',
'resource.label.logs' => 'سجل النشاطات',
'resource.label.user' => 'المستخدم',
'resource.label.subject' => 'الموضوع',
'resource.label.subject_type' => 'نوع الموضوع',
'resource.label.description' => 'الوصف',
'resource.label.type' => 'النوع',
'resource.label.event' => 'الحدث',
'resource.label.logged_at' => 'مسجل في',
'resource.label.properties' => 'خصائص',
'resource.label.old' => 'قديم',
'resource.label.new' => 'جديد',
'resource.label.old_value' => 'قيمة قديمة',
'resource.label.new_value' => 'قيمة جديدة',
];

View File

@@ -0,0 +1,31 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Nastavení',
'nav.log.label' => 'Záznam aktivit',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Záznam aktivit',
'resource.label.logs' => 'Záznamy aktivit',
'resource.label.user' => 'Uživatel',
'resource.label.subject' => 'Subjekt',
'resource.label.subject_type' => 'Typ subjektu',
'resource.label.description' => 'Popis',
'resource.label.type' => 'Typ',
'resource.label.event' => 'Událost',
'resource.label.logged_at' => 'Zaznamenáno v',
'resource.label.properties' => 'Vlastnosti',
'resource.label.old' => 'Původní',
'resource.label.new' => 'Nové',
'resource.label.old_value' => 'Původní hodnota',
'resource.label.new_value' => 'Nová hodnota',
'resource.label.properties_hint' => 'Může být klíč nebo hodnota',
'resource.label.old_attributes' => 'Původní atribut nebo hodnota: ',
'resource.label.new_attributes' => 'Nový atribut nebo hodnota: ',
];

View File

@@ -0,0 +1,25 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Settings',
'nav.log.label' => 'Activity Log',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Aktivitätslog',
'resource.label.logs' => 'Aktivitätslog',
'resource.label.user' => 'Nutzer',
'resource.label.subject' => 'Thema',
'resource.label.subject_type' => 'Thematyp',
'resource.label.description' => 'Beschreibung',
'resource.label.type' => 'Typ',
'resource.label.event' => 'Event',
'resource.label.logged_at' => 'Protokolliert am',
'resource.label.properties' => 'Eigenschaften',
'resource.label.old' => 'Alt',
'resource.label.new' => 'Neu',
];

View File

@@ -0,0 +1,31 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Settings',
'nav.log.label' => 'Activity Log',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Activity log',
'resource.label.logs' => 'Activity logs',
'resource.label.user' => 'User',
'resource.label.subject' => 'Subject',
'resource.label.subject_type' => 'Subject type',
'resource.label.description' => 'Description',
'resource.label.type' => 'Type',
'resource.label.event' => 'Event',
'resource.label.logged_at' => 'Logged At',
'resource.label.properties' => 'Properties',
'resource.label.old' => 'Old',
'resource.label.new' => 'New',
'resource.label.old_value' => 'Old Value',
'resource.label.new_value' => 'New Value',
'resource.label.properties_hint' => 'Can be key or value',
'resource.label.old_attributes' => 'Old Attribute or Value: ',
'resource.label.new_attributes' => 'New Attribute or Value: ',
];

View File

@@ -0,0 +1,25 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Settings',
'nav.log.label' => 'Bitácora de actividad',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Registro de actividad',
'resource.label.logs' => 'Registros de actividad',
'resource.label.user' => 'Usuario',
'resource.label.subject' => 'Asunto',
'resource.label.subject_type' => 'Tipo de asunto',
'resource.label.description' => 'Descripción',
'resource.label.type' => 'Tipo',
'resource.label.event' => 'Evento',
'resource.label.logged_at' => 'Registrado el',
'resource.label.properties' => 'Propiedades',
];

View File

@@ -0,0 +1,31 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'تنظیمات',
'nav.log.label' => 'لاگ فعالیت ها',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'لاگ فعالیت',
'resource.label.logs' => 'لاگ فعالیت ها',
'resource.label.user' => 'کاربر',
'resource.label.subject' => 'موضوع',
'resource.label.subject_type' => 'نوع موضوع',
'resource.label.description' => 'شرح',
'resource.label.type' => 'نوع',
'resource.label.event' => 'رویداد',
'resource.label.logged_at' => 'لاگ شده در',
'resource.label.properties' => 'خصوصیات',
'resource.label.old' => 'قدیمی',
'resource.label.new' => 'جدید',
'resource.label.old_value' => 'مقدار قدیمی',
'resource.label.new_value' => 'مقدار جدید',
'resource.label.properties_hint' => 'می‌تواند کلید یا مقدار باشد',
'resource.label.old_attributes' => 'کلید یا مقدار قدیمی: ',
'resource.label.new_attributes' => 'کلید یا مقدار جدید: ',
];

View File

@@ -0,0 +1,25 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Paramètres',
'nav.log.label' => 'Journal d\'activités',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Journal d\'activité',
'resource.label.logs' => 'Journal d\'activités',
'resource.label.user' => 'Utilisateur',
'resource.label.subject' => 'Sujet',
'resource.label.subject_type' => 'Type de sujet',
'resource.label.description' => 'Description',
'resource.label.type' => 'Type',
'resource.label.event' => 'Événement',
'resource.label.logged_at' => 'Enregistré à',
'resource.label.properties' => 'Propriétés',
];

View File

@@ -0,0 +1,31 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Կարգավորումներ',
'nav.log.label' => 'Գործողությունների մատյան',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Գործողությունների մատյան',
'resource.label.logs' => 'Գործողությունների մատյաններ',
'resource.label.user' => 'Օգտագործող',
'resource.label.subject' => 'Սուբյեկտ',
'resource.label.subject_type' => 'Սուբյեկտի տեսակ',
'resource.label.description' => 'Նկարագրություն',
'resource.label.type' => 'Տեսակ',
'resource.label.event' => 'Իրադարձություն',
'resource.label.logged_at' => 'Գրանցման ամսաթիվ',
'resource.label.properties' => 'Հատկություններ',
'resource.label.old' => 'Հին',
'resource.label.new' => 'Նոր',
'resource.label.old_value' => 'Հին արժեք',
'resource.label.new_value' => 'Նոր արժեք',
'resource.label.properties_hint' => 'Կարող է լինել բանալի կամ արժեք',
'resource.label.old_attributes' => 'Հին հատկանիշ կամ արժեք՝',
'resource.label.new_attributes' => 'Նոր հատկանիշ կամ արժեք՝',
];

View File

@@ -0,0 +1,28 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Pengaturan',
'nav.log.label' => 'Catatan Aktivitas',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Catatan aktivitas',
'resource.label.logs' => 'Catatan aktivitas',
'resource.label.user' => 'Pengguna',
'resource.label.subject' => 'Subjek',
'resource.label.subject_type' => 'Tipe Subjek',
'resource.label.description' => 'Deskripsi',
'resource.label.type' => 'Jenis',
'resource.label.event' => 'Kegiatan',
'resource.label.logged_at' => 'Tercatat pada',
'resource.label.properties' => 'Properti',
'resource.label.old' => 'Lama',
'resource.label.new' => 'Baru',
'resource.label.old_value' => 'Nilai Lama',
'resource.label.new_value' => 'Nilai Baru',
];

View File

@@ -0,0 +1,28 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Impostazioni',
'nav.log.label' => 'Registro attività',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Log',
'resource.label.logs' => 'Log',
'resource.label.user' => 'User',
'resource.label.subject' => 'Soggetto',
'resource.label.subject_type' => 'Tipo di soggetto',
'resource.label.description' => 'Descrizione',
'resource.label.type' => 'Tipologia',
'resource.label.event' => 'Evento',
'resource.label.logged_at' => 'Registrato Il',
'resource.label.properties' => 'Proprietà',
'resource.label.old' => 'Prima',
'resource.label.new' => 'Ora',
'resource.label.old_value' => 'Valore Precedente',
'resource.label.new_value' => 'Nuovo Valore',
];

View File

@@ -0,0 +1,28 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'პარამეტრები',
'nav.log.label' => 'საქმიანობის ჟურნალი',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'საქმიანობის ჟურნალი',
'resource.label.logs' => 'საქმიანობის ჟურნალი',
'resource.label.user' => 'მომხმარებელი',
'resource.label.subject' => 'საგანი',
'resource.label.subject_type' => 'საგნის ტიპი',
'resource.label.description' => 'აღწერილობა',
'resource.label.type' => 'ტიპი',
'resource.label.event' => 'ქმედება',
'resource.label.logged_at' => 'ავტორიზირებული როგორც',
'resource.label.properties' => 'Თვისებები',
'resource.label.old' => 'ძველი',
'resource.label.new' => 'ახალი',
'resource.label.old_value' => 'ძველი მნიშვნელობა',
'resource.label.new_value' => 'ახალი მნიშვნელობა',
];

View File

@@ -0,0 +1,31 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => '설정',
'nav.log.label' => '활동 로그',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => '활동 로그',
'resource.label.logs' => '활동 로그',
'resource.label.user' => '사용자',
'resource.label.subject' => '주제',
'resource.label.subject_type' => '주제 유형',
'resource.label.description' => '설명',
'resource.label.type' => '유형',
'resource.label.event' => '이벤트',
'resource.label.logged_at' => '기록된 시간',
'resource.label.properties' => '속성',
'resource.label.old' => '이전',
'resource.label.new' => '새로운',
'resource.label.old_value' => '이전 값',
'resource.label.new_value' => '새로운 값',
'resource.label.properties_hint' => '키 또는 값이 될 수 있습니다',
'resource.label.old_attributes' => '이전 속성 또는 값: ',
'resource.label.new_attributes' => '새로운 속성 또는 값: ',
];

View File

@@ -0,0 +1,31 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Instellingen',
'nav.log.label' => 'Activiteitenlog',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Activiteiten log',
'resource.label.logs' => 'Activiteiten logs',
'resource.label.user' => 'Gebruiker',
'resource.label.subject' => 'Onderwerp',
'resource.label.subject_type' => 'Onderwerp type',
'resource.label.description' => 'Beschrijving',
'resource.label.type' => 'Type',
'resource.label.event' => 'Gebeurtenis',
'resource.label.logged_at' => 'Gelogd op',
'resource.label.properties' => 'Eigenschappen',
'resource.label.old' => 'Oud',
'resource.label.new' => 'Nieuw',
'resource.label.old_value' => 'Oude waarde',
'resource.label.new_value' => 'Nieuwe waarde',
'resource.label.properties_hint' => 'Kan sleutel of waarde zijn',
'resource.label.old_attributes' => 'Oude attribuut of waarde: ',
'resource.label.new_attributes' => 'Nieuwe attribuut of waarde: ',
];

View File

@@ -0,0 +1,31 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Configurações',
'nav.log.label' => 'Registro de atividade',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Registro de atividade',
'resource.label.logs' => 'Registros de atividade',
'resource.label.user' => 'Usuário',
'resource.label.subject' => 'Assunto',
'resource.label.subject_type' => 'Tipo de assunto',
'resource.label.description' => 'Descrição',
'resource.label.type' => 'Tipo',
'resource.label.event' => 'Evento',
'resource.label.logged_at' => 'Registrado em',
'resource.label.properties' => 'Propriedades',
'resource.label.old' => 'Antigo',
'resource.label.new' => 'Novo',
'resource.label.old_value' => 'Valor antigo',
'resource.label.new_value' => 'Novo valor',
'resource.label.properties_hint' => 'Pode ser uma chave ou valor',
'resource.label.old_attributes' => 'Atributo ou Valor Antigo: ',
'resource.label.new_attributes' => 'Atributo ou Valor Novo: ',
];

View File

@@ -0,0 +1,24 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Настройки',
'nav.log.label' => 'Лог действий',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Лога действий',
'resource.label.logs' => 'Журнал активности',
'resource.label.user' => 'Юзер',
'resource.label.subject' => 'Объект',
'resource.label.subject_type' => 'Тип объекта',
'resource.label.description' => 'Описание',
'resource.label.type' => 'Тип',
'resource.label.event' => 'Событие',
'resource.label.logged_at' => 'Время',
'resource.label.properties' => 'Свойства',
];

View File

@@ -0,0 +1,31 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigácia & Zdroje
|--------------------------------------------------------------------------
*/
'nav.group' => 'Nastavenia',
'nav.log.label' => 'Záznam aktivity',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Záznam aktivity',
'resource.label.logs' => 'Záznamy aktivity',
'resource.label.user' => 'Používateľ',
'resource.label.subject' => 'Predmet',
'resource.label.subject_type' => 'Typ predmetu',
'resource.label.description' => 'Popis',
'resource.label.type' => 'Typ',
'resource.label.event' => 'Udalosť',
'resource.label.logged_at' => 'Zaznamenané',
'resource.label.properties' => 'Vlastnosti',
'resource.label.old' => 'Starý',
'resource.label.new' => 'Nový',
'resource.label.old_value' => 'Stará hodnota',
'resource.label.new_value' => 'Nová hodnota',
'resource.label.properties_hint' => 'Môže byť kľúč alebo hodnota',
'resource.label.old_attributes' => 'Starý atribút alebo hodnota: ',
'resource.label.new_attributes' => 'Nový atribút alebo hodnota: ',
];

View File

@@ -0,0 +1,28 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Ayarlar',
'nav.log.label' => 'Aktivite Günlüğü',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Aktivite Günlüğü',
'resource.label.logs' => 'Aktivite Günlükleri',
'resource.label.user' => 'Kullanıcı',
'resource.label.subject' => 'Nesne',
'resource.label.subject_type' => 'Nesne Tipi',
'resource.label.description' => 'Açıklama',
'resource.label.type' => 'Tip',
'resource.label.event' => 'Olay',
'resource.label.logged_at' => 'Kayıt Zamanı',
'resource.label.properties' => 'Değerler',
'resource.label.old' => 'Eski',
'resource.label.new' => 'Yeni',
'resource.label.old_value' => 'Eski Değerler',
'resource.label.new_value' => 'Yeni Değerler',
];

View File

@@ -0,0 +1,25 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Налаштування',
'nav.log.label' => 'Лог дій',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Лога дій',
'resource.label.logs' => 'Журнал активності',
'resource.label.user' => 'Юзер',
'resource.label.subject' => 'Об\'єкт',
'resource.label.subject_type' => 'Тип об\'єкта',
'resource.label.description' => 'Опис',
'resource.label.type' => 'Тип',
'resource.label.event' => 'Подія',
'resource.label.logged_at' => 'Час',
'resource.label.properties' => 'Властивості',
];

View File

@@ -0,0 +1,25 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Navigation & Resource
|--------------------------------------------------------------------------
*/
'nav.group' => 'Cài đặt',
'nav.log.label' => 'Nhật ký hoạt động',
'nav.log.icon' => 'heroicon-o-clipboard-document-list',
'resource.label.log' => 'Nhật ký hoạt động',
'resource.label.logs' => 'Nhật ký hoạt động',
'resource.label.user' => 'Người dùng',
'resource.label.subject' => 'Chủ đề',
'resource.label.subject_type' => 'Loại chủ đề',
'resource.label.description' => 'Mô tả',
'resource.label.type' => 'Kiểu',
'resource.label.event' => 'Sự kiện',
'resource.label.logged_at' => 'Lúc',
'resource.label.properties' => 'Thuộc tính',
];

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>

View File

View File

@@ -0,0 +1,8 @@
<a type="button"
href="{{ route('filament.' . Filament\Facades\Filament::getCurrentPanel()->getId() . '.mails.attachment.download', [
'tenant' => Filament\Facades\Filament::getTenant(),
'mail' => $getState()->mail_id,
'attachment' => $getState()->id,
'filename' => $getState()->filename,
]) }}"
class="rounded-md bg-white px-3.5 py-2.5 text-sm font-semibold cursor-pointer text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 hover:bg-gray-50">Download</a>

View File

@@ -0,0 +1,5 @@
<div class="prose prose-sm sm:prose lg:prose-lg xl:prose-2xl max-w-full overflow-x-auto">
<pre class="whitespace-pre-wrap break-words">
<code class="language-html">{{ $html }}</code>
</pre>
</div>

View File

@@ -0,0 +1,6 @@
<div class="w-full h-screen">
<iframe
src="{{ route('filament.' . Filament\Facades\Filament::getCurrentPanel()->getId() . '.mails.preview', ['tenant' => Filament\Facades\Filament::getTenant(), 'mail' => $mail->id]) }}"
class="w-full h-full max-w-full" style="width: 100vw; height: 100vh; border: none;">
</iframe>
</div>