From 2e5c4ea55e7bf7a9338de4b1188df95eac548fa6 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Mon, 9 Mar 2026 13:08:56 +0700 Subject: [PATCH] feat: Add Filament Log Viewer with Indonesian localization and restrict access to developers. --- app/Providers/Filament/AdminPanelProvider.php | 10 + composer.json | 1 + composer.lock | 234 +++++++++++++++++- lang/vendor/filament-log-viewer/id/log.php | 102 ++++++++ 4 files changed, 346 insertions(+), 1 deletion(-) create mode 100644 lang/vendor/filament-log-viewer/id/log.php diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index 62c60cf..3964002 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -2,6 +2,8 @@ namespace App\Providers\Filament; +use AchyutN\FilamentLogViewer\FilamentLogViewer; +use App\Enums\RoleEnum; use App\Filament\Pages\Auth\Login; use App\Filament\Pages\Profile; use BezhanSalleh\FilamentShield\FilamentShieldPlugin; @@ -110,6 +112,14 @@ public function panel(Panel $panel): Panel ->isActive(fn () => request()->is('admin/manage/delayed-goods')), ]) ->moreButton(false), + + FilamentLogViewer::make() + ->navigationGroup('Sistem') + ->navigationIcon('heroicon-o-server-stack') + ->navigationLabel('Log') + ->navigationUrl('/system/logs') + ->pollingTime(null) + ->authorize(fn (): bool => auth()->user()->hasRole(RoleEnum::DEVELOPER->value)), ]) ->navigationGroups([ 'Master', diff --git a/composer.json b/composer.json index aa9b970..286a925 100644 --- a/composer.json +++ b/composer.json @@ -7,6 +7,7 @@ "license": "MIT", "require": { "php": "^8.2", + "achyutn/filament-log-viewer": "^1.7", "ariaieboy/filament-currency": "^2.0", "bezhansalleh/filament-shield": "^4.1", "diogogpinto/filament-auth-ui-enhancer": "^2.0", diff --git a/composer.lock b/composer.lock index 4f11e4d..43e13b1 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,93 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d6cf9ab33f7e87200635eb1a7e4792dc", + "content-hash": "ef2f1d9c3b5a7c7f24a6ccd53da3a5ec", "packages": [ + { + "name": "achyutn/filament-log-viewer", + "version": "v1.7.1", + "source": { + "type": "git", + "url": "https://github.com/achyutkneupane/filament-log-viewer.git", + "reference": "5bbb181a5af8ad517f79f2e173f21bc1f70c84aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/achyutkneupane/filament-log-viewer/zipball/5bbb181a5af8ad517f79f2e173f21bc1f70c84aa", + "reference": "5bbb181a5af8ad517f79f2e173f21bc1f70c84aa", + "shasum": "" + }, + "require": { + "filament/filament": "^4.0", + "phiki/phiki": "^2.0", + "php": ">=8.2" + }, + "require-dev": { + "larastan/larastan": "^3.0", + "laravel/pint": "^1.23", + "orchestra/testbench": "^10.4", + "pestphp/pest": "^3.8", + "pestphp/pest-plugin-laravel": "^3.2", + "pestphp/pest-plugin-livewire": "^3.0", + "phpstan/phpstan": "^2.1", + "rector/rector": "^2.1" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "AchyutN\\FilamentLogViewer\\LogViewerProvider" + ] + } + }, + "autoload": { + "psr-4": { + "AchyutN\\FilamentLogViewer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Achyut Neupane", + "email": "achyutkneupane@gmail.com", + "homepage": "https://achyut.com.np", + "role": "Maintainer" + } + ], + "description": "A Filament package to view and manage Laravel logs.", + "keywords": [ + "Viewer", + "filament", + "laravel", + "log" + ], + "support": { + "issues": "https://github.com/achyutkneupane/filament-log-viewer/issues", + "source": "https://github.com/achyutkneupane/filament-log-viewer/tree/v1.7.1" + }, + "funding": [ + { + "url": "https://www.buymeacoffee.com/achyutn", + "type": "buy_me_a_coffee" + }, + { + "url": "https://buymemomo.com/achyut", + "type": "custom" + }, + { + "url": "https://github.com/achyutkneupane", + "type": "github" + }, + { + "url": "https://www.patreon.com/Achyut", + "type": "patreon" + } + ], + "time": "2026-01-30T17:48:57+00:00" + }, { "name": "akaunting/laravel-money", "version": "6.0.2", @@ -4843,6 +4928,77 @@ }, "time": "2025-09-24T15:06:41+00:00" }, + { + "name": "phiki/phiki", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/phikiphp/phiki.git", + "reference": "b16020573e9f4ad3c9d230c17ed4c84c15356e28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phikiphp/phiki/zipball/b16020573e9f4ad3c9d230c17ed4c84c15356e28", + "reference": "b16020573e9f4ad3c9d230c17ed4c84c15356e28", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "league/commonmark": "^2.5.3", + "php": "^8.2", + "psr/simple-cache": "^3.0" + }, + "require-dev": { + "illuminate/support": "^11.45", + "laravel/pint": "^1.18.1", + "orchestra/testbench": "^9.15", + "pestphp/pest": "^3.5.1", + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.0", + "symfony/var-dumper": "^7.1.6" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Phiki\\Adapters\\Laravel\\PhikiServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Phiki\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ryan Chandler", + "email": "support@ryangjchandler.co.uk", + "homepage": "https://ryangjchandler.co.uk", + "role": "Developer" + } + ], + "description": "Syntax highlighting using TextMate grammars in PHP.", + "support": { + "issues": "https://github.com/phikiphp/phiki/issues", + "source": "https://github.com/phikiphp/phiki/tree/v2.1.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/ryangjchandler", + "type": "github" + }, + { + "url": "https://buymeacoffee.com/ryangjchandler", + "type": "other" + } + ], + "time": "2026-01-20T21:26:48+00:00" + }, { "name": "phpoption/phpoption", "version": "1.9.5", @@ -5991,6 +6147,82 @@ ], "time": "2026-02-17T22:08:12+00:00" }, + { + "name": "saade/filament-laravel-log", + "version": "v4.0.0", + "source": { + "type": "git", + "url": "https://github.com/saade/filament-laravel-log.git", + "reference": "e8203e47260de3fce75c5484e1014f4fc57adea5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/saade/filament-laravel-log/zipball/e8203e47260de3fce75c5484e1014f4fc57adea5", + "reference": "e8203e47260de3fce75c5484e1014f4fc57adea5", + "shasum": "" + }, + "require": { + "filament/filament": "^4.0", + "illuminate/contracts": "^11.0|^12.0", + "php": "^8.2", + "spatie/laravel-package-tools": "^1.15.0" + }, + "require-dev": { + "larastan/larastan": "^3.1.0", + "laravel/pint": "^1.0", + "nunomaduro/collision": "^7.0|^8.0", + "orchestra/testbench": "^9.0|^10.0", + "pestphp/pest": "^2.0", + "pestphp/pest-plugin-arch": "^2.0", + "pestphp/pest-plugin-laravel": "^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^2.0.1", + "phpstan/phpstan-phpunit": "^2.0.4", + "spatie/laravel-ray": "^1.26" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Saade\\FilamentLaravelLog\\FilamentLaravelLogServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Saade\\FilamentLaravelLog\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Saade", + "email": "saade@outlook.com.br", + "role": "Developer" + } + ], + "description": "Access laravel.log file through Filament admin panel", + "homepage": "https://github.com/saade/filament-laravel-log", + "keywords": [ + "filament-laravel-log", + "laravel", + "saade" + ], + "support": { + "issues": "https://github.com/saade/filament-laravel-log/issues", + "source": "https://github.com/saade/filament-laravel-log" + }, + "funding": [ + { + "url": "https://github.com/saade", + "type": "github" + } + ], + "time": "2025-10-02T22:10:33+00:00" + }, { "name": "scrivo/highlight.php", "version": "v9.18.1.10", diff --git a/lang/vendor/filament-log-viewer/id/log.php b/lang/vendor/filament-log-viewer/id/log.php new file mode 100644 index 0000000..0cc512f --- /dev/null +++ b/lang/vendor/filament-log-viewer/id/log.php @@ -0,0 +1,102 @@ + 'N/A', + 'navigation' => [ + 'title' => 'Log', + 'heading' => 'Log', + 'subheading' => '', + 'group' => 'Sistem', + 'label' => 'Log', + ], + 'table' => [ + 'columns' => [ + 'log_level' => 'Tingkat Log', + 'env' => 'Lingkungan', + 'file' => 'Nama File', + 'message' => 'Ringkasan', + 'date' => 'Terjadi Pada', + ], + 'filters' => [ + 'env' => [ + 'label' => 'Lingkungan', + 'indicator' => 'Difilter berdasarkan lingkungan', + ], + 'file' => [ + 'label' => 'File', + 'indicator' => 'Difilter berdasarkan file', + ], + 'date' => [ + 'label' => 'Tanggal', + 'indicator' => 'Difilter berdasarkan tanggal', + 'from' => 'Dari', + 'until' => 'Sampai', + ], + 'date_range' => [ + 'label' => 'Rentang Tanggal', + 'indicator' => 'Difilter berdasarkan rentang tanggal', + ], + 'indicators' => [ + 'logs_from_to' => 'Log dari :from sampai :until', + 'logs_from' => 'Log dari :from', + 'logs_until' => 'Log sampai :until', + ], + ], + 'actions' => [ + 'view' => [ + 'label' => 'Lihat', + 'heading' => 'Log Error', + ], + 'read' => [ + 'label' => 'Baca Email', + 'subject' => 'Subjek', + 'mail_log' => 'Log Email', + 'sent_date' => 'Tanggal Kirim', + ], + 'refresh' => [ + 'label' => 'Segarkan', + ], + 'clear' => [ + 'label' => 'Hapus', + 'success' => 'Semua log telah dihapus!', + ], + ], + ], + 'schema' => [ + 'error-log' => [ + 'stack' => 'Stack Trace', + ], + 'json-log' => [ + 'context' => 'Konteks', + ], + ], + 'mail' => [ + 'sender' => [ + 'label' => 'Pengirim', + 'name' => 'Nama', + 'email' => 'Email', + ], + 'receiver' => [ + 'label' => 'Penerima', + 'name' => 'Nama', + 'email' => 'Email', + ], + 'content' => 'Konten', + 'plain' => 'Teks Biasa', + 'html' => 'HTML', + ], + 'levels' => [ + 'all' => 'Semua Log', + 'alert' => 'Alert', + 'critical' => 'Critical', + 'debug' => 'Debug', + 'emergency' => 'Emergency', + 'error' => 'Error', + 'info' => 'Info', + 'notice' => 'Notice', + 'warning' => 'Warning', + 'mail' => 'Mail', + ], +];