Skip to content

Commit

Permalink
Merge pull request #57 from lara-zeus/deletes
Browse files Browse the repository at this point in the history
improve delete department
  • Loading branch information
atmonshi authored Jul 2, 2023
2 parents 585b80d + 01c5a22 commit 801e31d
Show file tree
Hide file tree
Showing 4 changed files with 101 additions and 5 deletions.
39 changes: 39 additions & 0 deletions database/migrations/alter_letters_constraints.php.stub
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('letters', function (Blueprint $table) {
Schema::table('letters', function (Blueprint $table) {
Schema::disableForeignKeyConstraints();
$table->dropForeign(['department_id']);
Schema::enableForeignKeyConstraints();

$table->foreign('department_id')
->onUpdate('cascade')
->onDelete('cascade')
->references('id')
->on('departments');
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{

}
};
30 changes: 28 additions & 2 deletions src/Filament/Resources/DepartmentResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,23 @@
use Filament\Tables\Actions\Action;
use Filament\Tables\Actions\ActionGroup;
use Filament\Tables\Actions\DeleteAction;
use Filament\Tables\Actions\DeleteBulkAction;
use Filament\Tables\Actions\EditAction;
use Filament\Tables\Actions\ForceDeleteAction;
use Filament\Tables\Actions\ForceDeleteBulkAction;
use Filament\Tables\Actions\RestoreAction;
use Filament\Tables\Actions\RestoreBulkAction;
use Filament\Tables\Actions\ViewAction;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\ImageColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\Filter;
use Filament\Tables\Filters\TrashedFilter;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use LaraZeus\Wind\Filament\Resources\DepartmentResource\Pages;
use LaraZeus\Wind\Models\Department;

class DepartmentResource extends Resource
{
Expand Down Expand Up @@ -74,6 +82,17 @@ public static function form(Form $form): Form
]);
}

/**
* @return Builder<Department>
*/
public static function getEloquentQuery(): Builder
{
return parent::getEloquentQuery()
->withoutGlobalScopes([
SoftDeletingScope::class,
]);
}

public static function table(Table $table): Table
{
return $table
Expand Down Expand Up @@ -105,6 +124,7 @@ public static function table(Table $table): Table
])
->defaultSort('id', 'desc')
->filters([
TrashedFilter::make(),
Filter::make('is_active')
->label(__('is active'))
->toggle()
Expand All @@ -114,6 +134,11 @@ public static function table(Table $table): Table
->toggle()
->query(fn (Builder $query): Builder => $query->where('is_active', false)),
])
->bulkActions([
DeleteBulkAction::make(),
ForceDeleteBulkAction::make(),
RestoreBulkAction::make(),
])
->actions([
ActionGroup::make([
EditAction::make('edit')->label(__('Edit')),
Expand All @@ -126,8 +151,9 @@ public static function table(Table $table): Table
->label(__('Open'))
->url(fn (Model $record): string => route('contact', ['departmentSlug' => $record]))
->openUrlInNewTab(),
DeleteAction::make('delete')
->label(__('Delete')),
DeleteAction::make('delete'),
ForceDeleteAction::make(),
RestoreAction::make(),
]),
]);
}
Expand Down
31 changes: 29 additions & 2 deletions src/Filament/Resources/LetterResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,22 @@
use Filament\Tables\Actions\Action;
use Filament\Tables\Actions\ActionGroup;
use Filament\Tables\Actions\DeleteAction;
use Filament\Tables\Actions\DeleteBulkAction;
use Filament\Tables\Actions\EditAction;
use Filament\Tables\Actions\ForceDeleteAction;
use Filament\Tables\Actions\ForceDeleteBulkAction;
use Filament\Tables\Actions\RestoreAction;
use Filament\Tables\Actions\RestoreBulkAction;
use Filament\Tables\Actions\ViewAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\ViewColumn;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Filters\TrashedFilter;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use LaraZeus\Wind\Filament\Resources\LetterResource\Pages;
use LaraZeus\Wind\Models\Letter;

class LetterResource extends Resource
{
Expand All @@ -35,6 +44,17 @@ protected static function getNavigationBadge(): ?string
return static::getModel()::where('status', config('zeus-wind.default_status'))->count();
}

/**
* @return Builder<Letter>
*/
public static function getEloquentQuery(): Builder
{
return parent::getEloquentQuery()
->withoutGlobalScopes([
SoftDeletingScope::class,
]);
}

public static function form(Form $form): Form
{
return $form
Expand Down Expand Up @@ -112,7 +132,13 @@ public static function table(Table $table): Table
->formatStateUsing(fn (string $state): string => __("status_{$state}")),
])
->defaultSort('id', 'desc')
->bulkActions([
DeleteBulkAction::make(),
ForceDeleteBulkAction::make(),
RestoreBulkAction::make(),
])
->filters([
TrashedFilter::make(),
SelectFilter::make('status')
->options([
'NEW' => __('NEW'),
Expand All @@ -137,8 +163,9 @@ public static function table(Table $table): Table
->label(__('Open'))
->url(fn (Model $record): string => route('contact', ['departmentSlug' => $record]))
->openUrlInNewTab(),
DeleteAction::make('delete')
->label(__('Delete')),
DeleteAction::make('delete'),
ForceDeleteAction::make(),
RestoreAction::make(),
]),
]);
}
Expand Down
6 changes: 5 additions & 1 deletion src/WindServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@ protected function getCommands(): array
public function packageConfiguring(Package $package): void
{
$package
->hasMigrations(['create_department_table', 'create_letters_table'])
->hasMigrations([
'create_department_table',
'create_letters_table',
'alter_letters_constraints',
])
->hasRoute('web');
}
}

0 comments on commit 801e31d

Please sign in to comment.