Skip to content

Commit

Permalink
add global search and database notifications
Browse files Browse the repository at this point in the history
  • Loading branch information
bobimicroweber committed Apr 27, 2024
1 parent fe1e430 commit ba160a6
Show file tree
Hide file tree
Showing 6 changed files with 110 additions and 0 deletions.
1 change: 1 addition & 0 deletions web/Modules/Docker/DockerContainerApi.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public function run()
shell_exec('mkdir -p ' . $dockerContaienrPath);
}

dd($dockerComposeFileContent);
$dockerComposeFile = $dockerContaienrPath . '/docker-compose.yml';
file_put_contents($dockerComposeFile, $dockerComposeFileContent);

Expand Down
25 changes: 25 additions & 0 deletions web/app/Filament/Resources/CustomerResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use STS\FilamentImpersonate\Tables\Actions\Impersonate;

class CustomerResource extends Resource
Expand All @@ -22,6 +24,8 @@ class CustomerResource extends Resource

protected static ?int $navigationSort = 1;

protected static ?string $label = 'Customers';

public static function form(Form $form): Form
{
$phyreServers = [];
Expand Down Expand Up @@ -160,4 +164,25 @@ public static function getPages(): array
// 'edit' => Pages\EditCustomer::route('/{record}/edit'),
];
}

public static function getGloballySearchableAttributes(): array
{
return ['email', 'name'];
}

public static function getGlobalSearchResultDetails(Model $record): array
{
/** @var Customer $record */

return [
'Email' => $record->email,
'Name' => $record->name,
];
}

/** @return Builder<Customer> */
public static function getGlobalSearchEloquentQuery(): Builder
{
return parent::getGlobalSearchEloquentQuery();
}
}
26 changes: 26 additions & 0 deletions web/app/Filament/Resources/DomainResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use App\Filament\Enums\ServerApplicationType;
use App\Filament\Resources\DomainResource\Pages;
use App\Models\Customer;
use App\Models\Domain;
use App\SupportedApplicationTypes;
use Filament\Actions\ViewAction;
Expand All @@ -17,6 +18,8 @@
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use JaOcero\RadioDeck\Forms\Components\RadioDeck;
use Modules\Docker\App\Models\DockerContainer;

Expand All @@ -28,6 +31,8 @@ class DomainResource extends Resource

protected static ?string $navigationGroup = 'Hosting Services';

protected static ?string $label = 'Domains';

protected static ?int $navigationSort = 3;

public static function form(Form $form): Form
Expand Down Expand Up @@ -345,4 +350,25 @@ public static function getPages(): array
// 'view' => Pages\ViewDomain::route('/{record}'),
];
}

public static function getGloballySearchableAttributes(): array
{
return ['domain', 'hostingSubscription.customer.name'];
}

public static function getGlobalSearchResultDetails(Model $record): array
{
/** @var Domain $record */

return [
'Domain' => $record->domain,
'Customer' => optional($record->hostingSubscription)->customer->name,
];
}

/** @return Builder<Domain> */
public static function getGlobalSearchEloquentQuery(): Builder
{
return parent::getGlobalSearchEloquentQuery();
}
}
24 changes: 24 additions & 0 deletions web/app/Filament/Resources/HostingSubscriptionResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace App\Filament\Resources;

use App\Filament\Resources\HostingSubscriptionResource\Pages;
use App\Models\Domain;
use App\Models\HostingSubscription;
use App\Models\PhyreServer;
use Filament\Forms;
Expand All @@ -13,6 +14,8 @@
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\HtmlString;

class HostingSubscriptionResource extends Resource
Expand Down Expand Up @@ -193,4 +196,25 @@ public static function getPages(): array
'backups' => Pages\ManageHostingSubscriptionBackups::route('/{record}/backups'),
];
}

public static function getGloballySearchableAttributes(): array
{
return ['domain', 'customer.name'];
}

public static function getGlobalSearchResultDetails(Model $record): array
{
/** @var HostingSubscription $record */

return [
'HostingSubscription' => $record->domain,
'Customer' => optional($record->customer)->name,
];
}

/** @return Builder<HostingSubscription> */
public static function getGlobalSearchEloquentQuery(): Builder
{
return parent::getGlobalSearchEloquentQuery();
}
}
3 changes: 3 additions & 0 deletions web/app/Providers/Filament/AdminPanelProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ public function panel(Panel $panel): Panel
->id('admin')
->path('admin')
->login()
->unsavedChangesAlerts()
->globalSearch(true)
->databaseNotifications()
->font('Albert Sans')
->sidebarWidth('15rem')
// ->brandLogo(fn () => view('filament.admin.logo'))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

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

return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('notifications', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('type');
$table->morphs('notifiable');
$table->text('data');
$table->timestamp('read_at')->nullable();
$table->timestamps();
});
}

/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('notifications');
}
};

0 comments on commit ba160a6

Please sign in to comment.