feat: Remove custom page classes for login, registration, media, company, and verification management

This commit is contained in:
Yoga Pangestu 2026-01-12 09:46:54 +07:00
parent 6265410fb0
commit 2d362b54dc
10 changed files with 30 additions and 25 deletions

View File

@ -2,7 +2,7 @@
namespace App\Filament\Pages; namespace App\Filament\Pages;
use App\Models\Company; use App\Models\Company as CompanyModel;
use App\Models\VerificationRequest; use App\Models\VerificationRequest;
use Asmit\FilamentUpload\Forms\Components\AdvancedFileUpload; use Asmit\FilamentUpload\Forms\Components\AdvancedFileUpload;
use BackedEnum; use BackedEnum;
@ -18,7 +18,7 @@
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use UnitEnum; use UnitEnum;
class CustomCompany extends Page class Company extends Page
{ {
use HasPageShield; use HasPageShield;
@ -38,7 +38,7 @@ class CustomCompany extends Page
protected static ?string $recordTitleAttribute = 'name'; protected static ?string $recordTitleAttribute = 'name';
public ?Company $company = null; public ?CompanyModel $company = null;
public ?VerificationRequest $verificationRequest = null; public ?VerificationRequest $verificationRequest = null;
@ -254,7 +254,7 @@ public function save()
{ {
$data = $this->form->getState(); $data = $this->form->getState();
$company = Company::updateOrCreate([ $company = CompanyModel::updateOrCreate([
'id' => $this->company?->id, 'id' => $this->company?->id,
], [ ], [
'user_id' => auth()->id(), 'user_id' => auth()->id(),

View File

@ -5,7 +5,7 @@
use DanHarrin\LivewireRateLimiting\Exceptions\TooManyRequestsException; use DanHarrin\LivewireRateLimiting\Exceptions\TooManyRequestsException;
use Filament\Auth\Http\Responses\Contracts\LoginResponse; use Filament\Auth\Http\Responses\Contracts\LoginResponse;
use Filament\Auth\MultiFactor\Contracts\HasBeforeChallengeHook; use Filament\Auth\MultiFactor\Contracts\HasBeforeChallengeHook;
use Filament\Auth\Pages\Login; use Filament\Auth\Pages\Login as FilamentLogin;
use Filament\Facades\Filament; use Filament\Facades\Filament;
use Filament\Forms\Components\TextInput; use Filament\Forms\Components\TextInput;
use Filament\Models\Contracts\FilamentUser; use Filament\Models\Contracts\FilamentUser;
@ -19,7 +19,7 @@
use Illuminate\Validation\ValidationException; use Illuminate\Validation\ValidationException;
use SensitiveParameter; use SensitiveParameter;
class CustomLogin extends Login class Login extends FilamentLogin
{ {
public function getHeading(): string|Htmlable public function getHeading(): string|Htmlable
{ {

View File

@ -22,11 +22,11 @@
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use UnitEnum; use UnitEnum;
class CustomMedia extends Page class Media extends Page
{ {
use HasPageShield; use HasPageShield;
protected string $view = 'filament.pages.custom-media'; protected string $view = 'filament.pages.media';
protected static ?string $title = 'Media'; protected static ?string $title = 'Media';

View File

@ -10,7 +10,7 @@
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules\Password; use Illuminate\Validation\Rules\Password;
class CustomRegistration extends Register class Registration extends Register
{ {
public function getHeading(): string|Htmlable public function getHeading(): string|Htmlable
{ {

View File

@ -15,13 +15,14 @@
use Filament\Forms\Contracts\HasForms; use Filament\Forms\Contracts\HasForms;
use Filament\Notifications\Notification; use Filament\Notifications\Notification;
use Filament\Pages\Page; use Filament\Pages\Page;
use Filament\Support\Icons\Heroicon;
use UnitEnum; use UnitEnum;
class CustomVerification extends Page implements HasActions, HasForms class Verification extends Page implements HasActions, HasForms
{ {
use HasPageShield, InteractsWithActions, InteractsWithForms; use HasPageShield, InteractsWithActions, InteractsWithForms;
protected static string|BackedEnum|null $navigationIcon = 'heroicon-o-check-badge'; protected static string|BackedEnum|null $navigationIcon = Heroicon::CheckBadge;
protected static ?string $title = 'Verifikasi'; protected static ?string $title = 'Verifikasi';

View File

@ -2,8 +2,9 @@
namespace App\Filament\Resources\Manage\Journalists; namespace App\Filament\Resources\Manage\Journalists;
use App\Enums\VerificationStatus;
use App\Filament\Columns\TimestampColumns; use App\Filament\Columns\TimestampColumns;
use App\Filament\Pages\CustomMedia; use App\Filament\Pages\Media;
use App\Filament\Resources\Manage\Journalists\Pages\ManageJournalists; use App\Filament\Resources\Manage\Journalists\Pages\ManageJournalists;
use App\Models\Journalist; use App\Models\Journalist;
use Asmit\FilamentUpload\Forms\Components\AdvancedFileUpload; use Asmit\FilamentUpload\Forms\Components\AdvancedFileUpload;
@ -258,7 +259,7 @@ public static function table(Table $table): Table
->latest() ->latest()
->first(); ->first();
if ($verificationRequest && $verificationRequest->status !== \App\Enums\VerificationStatus::NEED_REVISION) { if ($verificationRequest && $verificationRequest->status !== VerificationStatus::NEED_REVISION) {
return false; return false;
} }
@ -282,7 +283,7 @@ public static function table(Table $table): Table
->latest() ->latest()
->first(); ->first();
if ($verificationRequest && $verificationRequest->status !== \App\Enums\VerificationStatus::NEED_REVISION) { if ($verificationRequest && $verificationRequest->status !== VerificationStatus::NEED_REVISION) {
return false; return false;
} }
@ -325,7 +326,7 @@ public static function table(Table $table): Table
->emptyStateActions([ ->emptyStateActions([
Action::make('completeMedia') Action::make('completeMedia')
->label('Lengkapi Data Media') ->label('Lengkapi Data Media')
->url(CustomMedia::getUrl()) ->url(Media::getUrl())
->button(), ->button(),
]); ]);
}); });

View File

@ -2,8 +2,8 @@
namespace App\Providers\Filament; namespace App\Providers\Filament;
use App\Filament\Pages\CustomLogin; use App\Filament\Pages\Login;
use App\Filament\Pages\CustomRegistration; use App\Filament\Pages\Registration;
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;
@ -47,8 +47,8 @@ public function panel(Panel $panel): Panel
->default() ->default()
->id('dashboard') ->id('dashboard')
->path('dashboard') ->path('dashboard')
->login(CustomLogin::class) ->login(Login::class)
->registration(CustomRegistration::class) ->registration(Registration::class)
->emailVerification() ->emailVerification()
->colors([ ->colors([
'primary' => Color::Blue, 'primary' => Color::Blue,

View File

@ -4,6 +4,9 @@
use App\Enums\DecisionAdmin; use App\Enums\DecisionAdmin;
use App\Enums\VerificationStatus; use App\Enums\VerificationStatus;
use App\Filament\Pages\Company as PagesCompany;
use App\Filament\Pages\Media;
use App\Filament\Resources\Manage\Journalists\Pages\ManageJournalists;
use App\Models\Company; use App\Models\Company;
use App\Models\VerificationRequest; use App\Models\VerificationRequest;
use App\Models\VerificationReview; use App\Models\VerificationReview;
@ -362,7 +365,7 @@ public function getMissingDataButtons(?Company $company): array
if (! $company) { if (! $company) {
$buttons[] = [ $buttons[] = [
'label' => 'Lengkapi Data Perusahaan', 'label' => 'Lengkapi Data Perusahaan',
'url' => \App\Filament\Pages\CustomCompany::getUrl(), 'url' => PagesCompany::getUrl(),
'icon' => 'building-office-2', 'icon' => 'building-office-2',
'color' => 'warning', 'color' => 'warning',
]; ];
@ -371,7 +374,7 @@ public function getMissingDataButtons(?Company $company): array
if ($company && ! $company->partnerMedia) { if ($company && ! $company->partnerMedia) {
$buttons[] = [ $buttons[] = [
'label' => 'Lengkapi Data Media', 'label' => 'Lengkapi Data Media',
'url' => \App\Filament\Pages\CustomMedia::getUrl(), 'url' => Media::getUrl(),
'icon' => 'newspaper', 'icon' => 'newspaper',
'color' => 'warning', 'color' => 'warning',
]; ];
@ -380,7 +383,7 @@ public function getMissingDataButtons(?Company $company): array
if ($company && $company->partnerMedia && ($company->partnerMedia->journalists === null || $company->partnerMedia->journalists->count() === 0)) { if ($company && $company->partnerMedia && ($company->partnerMedia->journalists === null || $company->partnerMedia->journalists->count() === 0)) {
$buttons[] = [ $buttons[] = [
'label' => 'Lengkapi Data Jurnalis', 'label' => 'Lengkapi Data Jurnalis',
'url' => \App\Filament\Resources\Manage\Journalists\Pages\ManageJournalists::getUrl(), 'url' => ManageJournalists::getUrl(),
'icon' => 'user-circle', 'icon' => 'user-circle',
'color' => 'warning', 'color' => 'warning',
]; ];

View File

@ -440,9 +440,9 @@ public function run(): void
"name": "Perusahaan", "name": "Perusahaan",
"guard_name": "web", "guard_name": "web",
"permissions": [ "permissions": [
"View:CustomCompany", "View:Company",
"View:CustomMedia", "View:Media",
"View:CustomVerification", "View:Verification",
"ViewAny:Cooperation", "ViewAny:Cooperation",
"View:Cooperation", "View:Cooperation",
"Create:Cooperation", "Create:Cooperation",