diff --git a/app/Filament/Resources/TransmittalResource.php b/app/Filament/Resources/TransmittalResource.php index 6ab0df1..96e0be8 100644 --- a/app/Filament/Resources/TransmittalResource.php +++ b/app/Filament/Resources/TransmittalResource.php @@ -45,16 +45,36 @@ class TransmittalResource extends Resource ->columns([ Tables\Columns\Layout\Split::make([ Tables\Columns\TextColumn::make('series') - ->searchable() + ->searchable(query: function (Builder $query, string $search): Builder { + $wildcardSearch = '%' . str_replace(' ', '%', $search) . '%'; + + return $query->where(function (Builder $query) use ($wildcardSearch) { + $query->where('series', 'like', $wildcardSearch) + ->orWhereHas('notes', function (Builder $query) use ($wildcardSearch) { + $query->where('comment', 'like', $wildcardSearch); + }) + ->orWhereHas('files', function (Builder $query) use ($wildcardSearch) { + $query->where('description', 'like', $wildcardSearch); + }); + }); + }) ->label('Series') ->weight(FontWeight::Bold) ->columnSpan(2), Tables\Columns\Layout\Stack::make([ Tables\Columns\TextColumn::make('client.company') - ->searchable() + ->searchable(query: function (Builder $query, string $search): Builder { + return $query->whereHas('client', function (Builder $query) use ($search) { + $query->where('company', 'like', '%' . str_replace(' ', '%', $search) . '%'); + }); + }) ->weight(FontWeight::SemiBold)->label('Client'), Tables\Columns\TextColumn::make('branch.code') - ->searchable() + ->searchable(query: function (Builder $query, string $search): Builder { + return $query->whereHas('branch', function (Builder $query) use ($search) { + $query->where('code', 'like', '%' . str_replace(' ', '%', $search) . '%'); + }); + }) ->label('Branch'), ]), ]), diff --git a/app/Models/User.php b/app/Models/User.php index c5e03fb..3b60dc5 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -3,16 +3,23 @@ namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; +use Filament\Models\Contracts\FilamentUser; +use Filament\Panel; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Spatie\Permission\Traits\HasPermissions; use Spatie\Permission\Traits\HasRoles; -class User extends Authenticatable +class User extends Authenticatable implements FilamentUser { use HasFactory, HasPermissions, HasRoles, Notifiable; + public function canAccessPanel(Panel $panel): bool + { + return true; + } + /** * The attributes that are mass assignable. * diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 3e3cc91..afa1970 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -4,6 +4,7 @@ namespace App\Providers; use App\Policies\RolePolicy; use Illuminate\Support\Facades\Gate; +use Illuminate\Support\Facades\URL; use Illuminate\Support\ServiceProvider; use Spatie\Permission\Models\Role; @@ -22,6 +23,8 @@ class AppServiceProvider extends ServiceProvider */ public function boot(): void { + URL::forceScheme('https'); + Gate::before(function ($user, $ability) { return $user->hasRole('super_admin') ? true : null; });