Fix WAF whitelist table + stabilize notifications
This commit is contained in:
@@ -8,14 +8,14 @@ use App\Models\Setting;
|
||||
use App\Services\Agent\AgentClient;
|
||||
use Exception;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Notifications\Notification;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Actions\Concerns\InteractsWithActions;
|
||||
use Filament\Actions\Contracts\HasActions;
|
||||
use Filament\Schemas\Concerns\InteractsWithSchemas;
|
||||
use Filament\Schemas\Contracts\HasSchemas;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Forms\Concerns\InteractsWithForms;
|
||||
use Filament\Forms\Contracts\HasForms;
|
||||
use Filament\Notifications\Notification;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Concerns\InteractsWithTable;
|
||||
use Filament\Tables\Contracts\HasTable;
|
||||
use Filament\Tables\Table;
|
||||
@@ -23,28 +23,18 @@ use Illuminate\Support\Arr;
|
||||
use Livewire\Attributes\On;
|
||||
use Livewire\Component;
|
||||
|
||||
class WafWhitelistTable extends Component implements HasTable, HasSchemas, HasActions
|
||||
class WafWhitelistTable extends Component implements HasTable, HasForms, HasActions
|
||||
{
|
||||
use InteractsWithTable;
|
||||
use InteractsWithSchemas { cacheSchema as protected filamentCacheSchema; }
|
||||
use InteractsWithForms;
|
||||
use InteractsWithActions;
|
||||
|
||||
protected function cacheSchema(string $name, \Filament\Schemas\Schema|\Closure|null $schema = null): ?\Filament\Schemas\Schema
|
||||
{
|
||||
return $this->filamentCacheSchema($name, $schema);
|
||||
}
|
||||
|
||||
#[On('waf-whitelist-updated')]
|
||||
public function refreshWhitelist(): void
|
||||
{
|
||||
$this->resetTable();
|
||||
}
|
||||
|
||||
public function makeFilamentTranslatableContentDriver(): ?\Filament\Support\Contracts\TranslatableContentDriver
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('livewire.admin.waf-whitelist-table');
|
||||
|
||||
@@ -4,6 +4,8 @@ namespace App\Providers;
|
||||
|
||||
use App\Models\Domain;
|
||||
use App\Observers\DomainObserver;
|
||||
use Filament\Support\Facades\FilamentView;
|
||||
use Filament\View\PanelsRenderHook;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
@@ -25,5 +27,10 @@ class AppServiceProvider extends ServiceProvider
|
||||
|
||||
// Note: AuthEventListener is auto-discovered by Laravel 11+
|
||||
// Do not manually subscribe - it causes duplicate audit log entries
|
||||
|
||||
FilamentView::registerRenderHook(
|
||||
PanelsRenderHook::SCRIPTS_AFTER,
|
||||
fn (): string => view('filament.partials.notifications-refresh')->render(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
<script data-navigate-once>
|
||||
document.addEventListener('livewire:init', () => {
|
||||
if (!window.Livewire || !window.Livewire.hook || !window.Livewire.dispatch) {
|
||||
return;
|
||||
}
|
||||
|
||||
window.Livewire.hook('commit', ({ component, succeed }) => {
|
||||
if (component?.name === 'notifications') {
|
||||
return;
|
||||
}
|
||||
|
||||
succeed(() => {
|
||||
window.Livewire.dispatch('notificationsSent');
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
Reference in New Issue
Block a user