Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/Filament/Admin/Resources/ApiKeys/ApiKeyResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use App\Filament\Admin\Resources\ApiKeys\Pages\CreateApiKey;
use App\Filament\Admin\Resources\ApiKeys\Pages\ListApiKeys;
use App\Filament\Admin\Resources\Users\Pages\EditUser;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Filament\Components\Tables\Columns\DateTimeColumn;
use App\Models\ApiKey;
use App\Traits\Filament\CanCustomizePages;
Expand All @@ -15,7 +16,6 @@
use BackedEnum;
use Exception;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction;
use Filament\Forms\Components\TagsInput;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\ToggleButtons;
Expand Down Expand Up @@ -99,7 +99,7 @@ public static function defaultTable(Table $table): Table
->url(fn (ApiKey $apiKey) => user()?->can('update', $apiKey->user) ? EditUser::getUrl(['record' => $apiKey->user]) : null),
])
->recordActions([
DeleteAction::make(),
LoggedDeleteAction::make(),
])
->toolbarActions([
CreateAction::make(),
Expand Down
4 changes: 2 additions & 2 deletions app/Filament/Admin/Resources/ApiKeys/Pages/CreateApiKey.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@
namespace App\Filament\Admin\Resources\ApiKeys\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminCreateRecord;
use App\Filament\Admin\Resources\ApiKeys\ApiKeyResource;
use App\Models\ApiKey;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Resources\Pages\CreateRecord;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;

class CreateApiKey extends CreateRecord
class CreateApiKey extends BaseAdminCreateRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
namespace App\Filament\Admin\Resources\BackupHosts\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminCreateRecord;
use App\Filament\Admin\Resources\BackupHosts\BackupHostResource;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Resources\Pages\CreateRecord;

class CreateBackupHost extends CreateRecord
class CreateBackupHost extends BaseAdminCreateRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
namespace App\Filament\Admin\Resources\BackupHosts\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminEditRecord;
use App\Filament\Admin\Resources\BackupHosts\BackupHostResource;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Models\BackupHost;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;

class EditBackupHost extends EditRecord
class EditBackupHost extends BaseAdminEditRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand All @@ -23,7 +23,7 @@ class EditBackupHost extends EditRecord
protected function getDefaultHeaderActions(): array
{
return [
DeleteAction::make()
LoggedDeleteAction::make()
->label(fn (BackupHost $backupHost) => $backupHost->backups()->count() > 0 ? trans('admin/backuphost.delete_help') : trans('filament-actions::delete.single.modal.actions.delete.label'))
->disabled(fn (BackupHost $backupHost) => $backupHost->backups()->count() > 0)
->hidden(fn () => BackupHost::count() === 1),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use App\Filament\Admin\Resources\DatabaseHosts\Pages\ListDatabaseHosts;
use App\Filament\Admin\Resources\DatabaseHosts\Pages\ViewDatabaseHost;
use App\Filament\Admin\Resources\DatabaseHosts\RelationManagers\DatabasesRelationManager;
use App\Filament\Components\Actions\LoggedDeleteBulkAction;
use App\Models\DatabaseHost;
use App\Traits\Filament\CanCustomizePages;
use App\Traits\Filament\CanCustomizeRelations;
Expand All @@ -17,7 +18,6 @@
use Exception;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\Select;
Expand Down Expand Up @@ -102,7 +102,7 @@ public static function defaultTable(Table $table): Table
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make('exclude_bulk_delete'),
LoggedDeleteBulkAction::make('exclude_bulk_delete'),
]),
])
->emptyStateIcon(TablerIcon::Database)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace App\Filament\Admin\Resources\DatabaseHosts\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminCreateRecord;
use App\Filament\Admin\Resources\DatabaseHosts\DatabaseHostResource;
use App\Services\Databases\Hosts\HostCreationService;
use App\Traits\Filament\CanCustomizeHeaderActions;
Expand All @@ -15,7 +16,6 @@
use Filament\Forms\Components\Toggle;
use Filament\Infolists\Components\TextEntry;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\CreateRecord;
use Filament\Resources\Pages\CreateRecord\Concerns\HasWizard;
use Filament\Schemas\Components\Fieldset;
use Filament\Schemas\Components\Utilities\Get;
Expand All @@ -29,7 +29,7 @@
use PDOException;
use Throwable;

class CreateDatabaseHost extends CreateRecord
class CreateDatabaseHost extends BaseAdminCreateRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@
namespace App\Filament\Admin\Resources\DatabaseHosts\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminEditRecord;
use App\Filament\Admin\Resources\DatabaseHosts\DatabaseHostResource;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Models\DatabaseHost;
use App\Services\Databases\Hosts\HostUpdateService;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord;
use Filament\Support\Exceptions\Halt;
use Illuminate\Database\Eloquent\Model;
use PDOException;

class EditDatabaseHost extends EditRecord
class EditDatabaseHost extends BaseAdminEditRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand All @@ -35,7 +35,7 @@ public function boot(HostUpdateService $hostUpdateService): void
protected function getDefaultHeaderActions(): array
{
return [
DeleteAction::make()
LoggedDeleteAction::make()
->tooltip(fn (DatabaseHost $databaseHost) => $databaseHost->databases()->count() > 0 ? trans('admin/databasehost.delete_help') : trans('filament-actions::delete.single.modal.actions.delete.label'))
->disabled(fn (DatabaseHost $databaseHost) => $databaseHost->databases()->count() > 0),
Action::make('save')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
namespace App\Filament\Admin\Resources\DatabaseHosts\RelationManagers;

use App\Filament\Admin\Resources\Servers\Pages\EditServer;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Filament\Components\Actions\RotateDatabasePasswordAction;
use App\Filament\Components\Tables\Columns\DateTimeColumn;
use App\Models\Database;
use Filament\Actions\DeleteAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\TextInput;
use Filament\Resources\RelationManagers\RelationManager;
Expand Down Expand Up @@ -71,7 +71,7 @@ public function table(Table $table): Table
->recordActions([
ViewAction::make()
->color('primary'),
DeleteAction::make(),
LoggedDeleteAction::make(),
]);
}
}
4 changes: 2 additions & 2 deletions app/Filament/Admin/Resources/Eggs/Pages/ListEggs.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use App\Filament\Admin\Resources\Eggs\EggResource;
use App\Filament\Components\Actions\ExportEggAction;
use App\Filament\Components\Actions\ImportEggAction;
use App\Filament\Components\Actions\LoggedDeleteBulkAction;
use App\Filament\Components\Actions\UpdateEggAction;
use App\Filament\Components\Actions\UpdateEggBulkAction;
use App\Filament\Components\Tables\Filters\TagsFilter;
Expand All @@ -15,7 +16,6 @@
use Exception;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ReplicateAction;
use Filament\Actions\ViewAction;
Expand Down Expand Up @@ -88,7 +88,7 @@ public function table(Table $table): Table
->multiple(),
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make('exclude_bulk_delete')
LoggedDeleteBulkAction::make('exclude_bulk_delete')
->before(function (Collection &$records) {
$eggsWithServers = $records->filter(fn (Egg $egg) => $egg->servers_count > 0);

Expand Down
4 changes: 2 additions & 2 deletions app/Filament/Admin/Resources/Mounts/MountResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use App\Filament\Admin\Resources\Mounts\Pages\EditMount;
use App\Filament\Admin\Resources\Mounts\Pages\ListMounts;
use App\Filament\Admin\Resources\Mounts\Pages\ViewMount;
use App\Filament\Components\Actions\LoggedDeleteBulkAction;
use App\Models\Mount;
use App\Traits\Filament\CanCustomizePages;
use App\Traits\Filament\CanCustomizeRelations;
Expand All @@ -16,7 +17,6 @@
use Exception;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\Select;
Expand Down Expand Up @@ -110,7 +110,7 @@ public static function defaultTable(Table $table): Table
->toolbarActions([
CreateAction::make(),
BulkActionGroup::make([
DeleteBulkAction::make('exclude_bulk_delete'),
LoggedDeleteBulkAction::make('exclude_bulk_delete'),
]),
])
->emptyStateIcon(TablerIcon::LayersLinked)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
use App\Enums\TablerIcon;
use App\Filament\Admin\Resources\Servers\Pages\CreateServer;
use App\Filament\Admin\Resources\Servers\Pages\EditServer;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Filament\Components\Actions\LoggedDeleteBulkAction;
use App\Filament\Components\Actions\UpdateNodeAllocations;
use App\Models\Allocation;
use App\Models\Node;
Expand All @@ -13,8 +15,6 @@
use Exception;
use Filament\Actions\Action;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TagsInput;
use Filament\Forms\Components\TextInput;
Expand Down Expand Up @@ -96,7 +96,7 @@ public function table(Table $table): Table
])
->emptyStateHeading(trans('admin/node.no_allocations'))
->recordActions([
DeleteAction::make()
LoggedDeleteAction::make()
->visible(fn (Allocation $allocation) => $allocation->server_id === null),
])
->toolbarActions([
Expand Down Expand Up @@ -158,7 +158,7 @@ public function table(Table $table): Table
->nodeRecord($this->getOwnerRecord())
->authorize(fn () => user()?->can('update', $this->getOwnerRecord()))
->hidden(fn () => $this->isReadOnly()),
DeleteBulkAction::make()
LoggedDeleteBulkAction::make()
->hidden(fn () => $this->isReadOnly()),
]);
}
Expand Down
6 changes: 4 additions & 2 deletions app/Filament/Admin/Resources/Roles/Pages/CreateRole.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@
namespace App\Filament\Admin\Resources\Roles\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminCreateRecord;
use App\Filament\Admin\Resources\Roles\RoleResource;
use App\Models\Role;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Resources\Pages\CreateRecord;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
use Spatie\Permission\Models\Permission;

/**
* @property Role $record
*/
class CreateRole extends CreateRecord
class CreateRole extends BaseAdminCreateRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand Down Expand Up @@ -70,5 +70,7 @@ protected function afterCreate(): void
});

$this->record->syncPermissions($permissionModels);

parent::afterCreate();
}
}
24 changes: 20 additions & 4 deletions app/Filament/Admin/Resources/Roles/Pages/EditRole.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
namespace App\Filament\Admin\Resources\Roles\Pages;

use App\Enums\TablerIcon;
use App\Filament\Admin\Pages\BaseAdminEditRecord;
use App\Filament\Admin\Resources\Roles\RoleResource;
use App\Filament\Components\Actions\LoggedDeleteAction;
use App\Models\Role;
use App\Traits\Filament\CanCustomizeHeaderActions;
use App\Traits\Filament\CanCustomizeHeaderWidgets;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
use Spatie\Permission\Models\Permission;

/**
* @property Role $record
*/
class EditRole extends EditRecord
class EditRole extends BaseAdminEditRecord
{
use CanCustomizeHeaderActions;
use CanCustomizeHeaderWidgets;
Expand All @@ -42,6 +42,8 @@ protected function mutateFormDataBeforeSave(array $data): array

protected function afterSave(): void
{
$oldPermissions = $this->record->permissions()->pluck('name')->sort()->values();

$permissionModels = collect();
$this->permissions->each(function ($permission) use ($permissionModels) {
$permissionModels->push(Permission::firstOrCreate([
Expand All @@ -51,13 +53,27 @@ protected function afterSave(): void
});

$this->record->syncPermissions($permissionModels);

$newPermissions = $this->record->permissions()->pluck('name')->sort()->values();

// One combined update event covering attribute and permission changes,
// so parent::afterSave() is deliberately not called here.
$changes = static::buildDiff($this->attributesBeforeSave, $this->record->getChanges());

if ($oldPermissions->all() !== $newPermissions->all()) {
$changes['permissions'] = ['old' => $oldPermissions->all(), 'new' => $newPermissions->all()];
}

if ($changes !== []) {
static::logAdminActivity('update', $this->record, ['changes' => $changes]);
}
}

/** @return array<Action|ActionGroup> */
protected function getDefaultHeaderActions(): array
{
return [
DeleteAction::make()
LoggedDeleteAction::make()
->tooltip(fn (Role $role) => $role->isRootAdmin() ? trans('admin/role.root_admin_delete') : ($role->users_count >= 1 ? trans('admin/role.in_use') : trans('filament-actions::delete.single.label')))
->disabled(fn (Role $role) => $role->isRootAdmin() || $role->users_count >= 1),
Action::make('save')
Expand Down
Loading
Loading