Fix WAF whitelist table + stabilize notifications

This commit is contained in:
root
2026-01-31 02:50:18 +02:00
parent 3fc3f28edc
commit 4d529a2e52
3 changed files with 32 additions and 18 deletions

View File

@@ -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');

View File

@@ -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(),
);
}
}

View File

@@ -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>