diff --git a/app/Filament/Resources/Master/AiringProofThemes/Pages/ManageAiringProofThemes.php b/app/Filament/Resources/Master/Themes/Pages/ManageThemes.php similarity index 62% rename from app/Filament/Resources/Master/AiringProofThemes/Pages/ManageAiringProofThemes.php rename to app/Filament/Resources/Master/Themes/Pages/ManageThemes.php index c21d07c..9674bfe 100644 --- a/app/Filament/Resources/Master/AiringProofThemes/Pages/ManageAiringProofThemes.php +++ b/app/Filament/Resources/Master/Themes/Pages/ManageThemes.php @@ -1,23 +1,23 @@ label('Tambah') - ->modalHeading('Tambah Tema Bukti Tayang') + ->modalHeading('Tambah Tema') ->modalSubmitActionLabel('Simpan') ->modalCancelActionLabel('Batal') ->extraModalFooterActions(fn (CreateAction $action): array => [ diff --git a/app/Filament/Resources/Master/AiringProofThemes/AiringProofThemeResource.php b/app/Filament/Resources/Master/Themes/ThemeResource.php similarity index 80% rename from app/Filament/Resources/Master/AiringProofThemes/AiringProofThemeResource.php rename to app/Filament/Resources/Master/Themes/ThemeResource.php index 508c582..9e557d0 100644 --- a/app/Filament/Resources/Master/AiringProofThemes/AiringProofThemeResource.php +++ b/app/Filament/Resources/Master/Themes/ThemeResource.php @@ -1,12 +1,12 @@ label('Aktif?') - ->getStateUsing(fn (AiringProofTheme $record) => $record->is_active === IsActive::ACTIVE) - ->updateStateUsing(function (AiringProofTheme $record, bool $state) { + ->getStateUsing(fn (Theme $record) => $record->is_active === IsActive::ACTIVE) + ->updateStateUsing(function (Theme $record, bool $state) { $record->is_active = $state ? IsActive::ACTIVE : IsActive::INACTIVE; $record->save(); }) @@ -88,7 +88,7 @@ public static function table(Table $table): Table ]) ->toolbarActions([ BulkActionGroup::make([ - ...DefaultBulkActions::make('Tema Bukti Tayang'), + ...DefaultBulkActions::make('Tema'), ]), ]) ->emptyStateIcon('heroicon-o-bookmark') @@ -101,7 +101,7 @@ public static function table(Table $table): Table public static function getPages(): array { return [ - 'index' => ManageAiringProofThemes::route('/'), + 'index' => ManageThemes::route('/'), ]; } diff --git a/app/Models/AiringProofTheme.php b/app/Models/Theme.php similarity index 90% rename from app/Models/AiringProofTheme.php rename to app/Models/Theme.php index ef0de89..59cb1ed 100644 --- a/app/Models/AiringProofTheme.php +++ b/app/Models/Theme.php @@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; -class AiringProofTheme extends Model +class Theme extends Model { use SoftDeletes; diff --git a/app/Policies/AiringProofThemePolicy.php b/app/Policies/AiringProofThemePolicy.php deleted file mode 100644 index bfc041a..0000000 --- a/app/Policies/AiringProofThemePolicy.php +++ /dev/null @@ -1,69 +0,0 @@ -can('ViewAny:AiringProofTheme'); - } - - public function view(AuthUser $authUser, AiringProofTheme $airingProofTheme): bool - { - return $authUser->can('View:AiringProofTheme'); - } - - public function create(AuthUser $authUser): bool - { - return $authUser->can('Create:AiringProofTheme'); - } - - public function update(AuthUser $authUser, AiringProofTheme $airingProofTheme): bool - { - return $authUser->can('Update:AiringProofTheme'); - } - - public function delete(AuthUser $authUser, AiringProofTheme $airingProofTheme): bool - { - return $authUser->can('Delete:AiringProofTheme'); - } - - public function restore(AuthUser $authUser, AiringProofTheme $airingProofTheme): bool - { - return $authUser->can('Restore:AiringProofTheme'); - } - - public function forceDelete(AuthUser $authUser, AiringProofTheme $airingProofTheme): bool - { - return $authUser->can('ForceDelete:AiringProofTheme'); - } - - public function forceDeleteAny(AuthUser $authUser): bool - { - return $authUser->can('ForceDeleteAny:AiringProofTheme'); - } - - public function restoreAny(AuthUser $authUser): bool - { - return $authUser->can('RestoreAny:AiringProofTheme'); - } - - public function replicate(AuthUser $authUser, AiringProofTheme $airingProofTheme): bool - { - return $authUser->can('Replicate:AiringProofTheme'); - } - - public function reorder(AuthUser $authUser): bool - { - return $authUser->can('Reorder:AiringProofTheme'); - } -} diff --git a/app/Policies/ThemePolicy.php b/app/Policies/ThemePolicy.php new file mode 100644 index 0000000..8395629 --- /dev/null +++ b/app/Policies/ThemePolicy.php @@ -0,0 +1,69 @@ +can('ViewAny:Theme'); + } + + public function view(AuthUser $authUser, Theme $theme): bool + { + return $authUser->can('View:Theme'); + } + + public function create(AuthUser $authUser): bool + { + return $authUser->can('Create:Theme'); + } + + public function update(AuthUser $authUser, Theme $theme): bool + { + return $authUser->can('Update:Theme'); + } + + public function delete(AuthUser $authUser, Theme $theme): bool + { + return $authUser->can('Delete:Theme'); + } + + public function restore(AuthUser $authUser, Theme $theme): bool + { + return $authUser->can('Restore:Theme'); + } + + public function forceDelete(AuthUser $authUser, Theme $theme): bool + { + return $authUser->can('ForceDelete:Theme'); + } + + public function forceDeleteAny(AuthUser $authUser): bool + { + return $authUser->can('ForceDeleteAny:Theme'); + } + + public function restoreAny(AuthUser $authUser): bool + { + return $authUser->can('RestoreAny:Theme'); + } + + public function replicate(AuthUser $authUser, Theme $theme): bool + { + return $authUser->can('Replicate:Theme'); + } + + public function reorder(AuthUser $authUser): bool + { + return $authUser->can('Reorder:Theme'); + } +} diff --git a/database/migrations/2025_11_19_092038_create_airing_proof_themes_table.php b/database/migrations/2025_11_19_092038_create_themes_table.php similarity index 86% rename from database/migrations/2025_11_19_092038_create_airing_proof_themes_table.php rename to database/migrations/2025_11_19_092038_create_themes_table.php index 269e695..e0b790e 100644 --- a/database/migrations/2025_11_19_092038_create_airing_proof_themes_table.php +++ b/database/migrations/2025_11_19_092038_create_themes_table.php @@ -12,7 +12,7 @@ */ public function up(): void { - Schema::create('airing_proof_themes', function (Blueprint $table) { + Schema::create('themes', function (Blueprint $table) { $table->id(); $table->string('name', 50); $table->enum('is_active', [IsActive::values()])->default(IsActive::ACTIVE->value)->comment(IsActive::comment()); @@ -28,6 +28,6 @@ public function up(): void */ public function down(): void { - Schema::dropIfExists('airing_proof_themes'); + Schema::dropIfExists('themes'); } }; diff --git a/database/seeders/ShieldSeeder.php b/database/seeders/ShieldSeeder.php index 3f296ab..6f1e1d9 100644 --- a/database/seeders/ShieldSeeder.php +++ b/database/seeders/ShieldSeeder.php @@ -29,17 +29,17 @@ public function run(): void "RestoreAny:Role", "Replicate:Role", "Reorder:Role", - "ViewAny:AiringProofTheme", - "View:AiringProofTheme", - "Create:AiringProofTheme", - "Update:AiringProofTheme", - "Delete:AiringProofTheme", - "Restore:AiringProofTheme", - "ForceDelete:AiringProofTheme", - "ForceDeleteAny:AiringProofTheme", - "RestoreAny:AiringProofTheme", - "Replicate:AiringProofTheme", - "Reorder:AiringProofTheme", + "ViewAny:Theme", + "View:Theme", + "Create:Theme", + "Update:Theme", + "Delete:Theme", + "Restore:Theme", + "ForceDelete:Theme", + "ForceDeleteAny:Theme", + "RestoreAny:Theme", + "Replicate:Theme", + "Reorder:Theme", "ViewAny:Classification", "View:Classification", "Create:Classification", @@ -112,17 +112,17 @@ public function run(): void "name": "Administrator", "guard_name": "web", "permissions": [ - "ViewAny:AiringProofTheme", - "View:AiringProofTheme", - "Create:AiringProofTheme", - "Update:AiringProofTheme", - "Delete:AiringProofTheme", - "Restore:AiringProofTheme", - "ForceDelete:AiringProofTheme", - "ForceDeleteAny:AiringProofTheme", - "RestoreAny:AiringProofTheme", - "Replicate:AiringProofTheme", - "Reorder:AiringProofTheme", + "ViewAny:Theme", + "View:Theme", + "Create:Theme", + "Update:Theme", + "Delete:Theme", + "Restore:Theme", + "ForceDelete:Theme", + "ForceDeleteAny:Theme", + "RestoreAny:Theme", + "Replicate:Theme", + "Reorder:Theme", "ViewAny:Classification", "View:Classification", "Create:Classification",