feat: Introduce custom dashboard page with date range filters.

This commit is contained in:
Yoga Pangestu 2026-01-29 10:36:26 +07:00
parent 9fdba64499
commit 8f1cb16dc9
2 changed files with 37 additions and 7 deletions

View File

@ -0,0 +1,35 @@
<?php
namespace App\Filament\Pages;
use Filament\Forms\Components\DatePicker;
use Filament\Pages\Dashboard as BaseDashboard;
use Filament\Pages\Dashboard\Concerns\HasFiltersForm;
use Filament\Schemas\Components\Fieldset;
use Filament\Schemas\Schema;
class Dashboard extends BaseDashboard
{
use HasFiltersForm;
public function filtersForm(Schema $schema): Schema
{
return $schema
->schema([
Fieldset::make('Filter')
->schema([
DatePicker::make('startDate')
->label('Tanggal Mulai')
->native(false)
->placeholder('Pilih tanggal mulai'),
DatePicker::make('endDate')
->label('Tanggal Selesai')
->native(false)
->placeholder('Pilih tanggal selesai'),
])
->columnSpanFull(),
])
->columns(2);
}
}

View File

@ -5,19 +5,17 @@
use App\Filament\Pages\Auth\EmailVerification; use App\Filament\Pages\Auth\EmailVerification;
use App\Filament\Pages\Auth\Login; use App\Filament\Pages\Auth\Login;
use App\Filament\Pages\Auth\Registration; use App\Filament\Pages\Auth\Registration;
use App\Filament\Pages\Dashboard;
use App\Settings\GeneralSettings; use App\Settings\GeneralSettings;
use BezhanSalleh\FilamentShield\FilamentShieldPlugin; use BezhanSalleh\FilamentShield\FilamentShieldPlugin;
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;
use Filament\Http\Middleware\DispatchServingFilamentEvent; use Filament\Http\Middleware\DispatchServingFilamentEvent;
use Filament\Pages\Dashboard;
use Filament\Panel; use Filament\Panel;
use Filament\PanelProvider; use Filament\PanelProvider;
use Filament\Support\Colors\Color; use Filament\Support\Colors\Color;
use Filament\Support\Enums\Width; use Filament\Support\Enums\Width;
use Filament\Widgets\AccountWidget;
use Filament\Widgets\FilamentInfoWidget;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies; use Illuminate\Cookie\Middleware\EncryptCookies;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
@ -69,10 +67,7 @@ public function panel(Panel $panel): Panel
Dashboard::class, Dashboard::class,
]) ])
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets') ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')
->widgets([ ->widgets([])
AccountWidget::class,
FilamentInfoWidget::class,
])
->middleware([ ->middleware([
EncryptCookies::class, EncryptCookies::class,
AddQueuedCookiesToResponse::class, AddQueuedCookiesToResponse::class,