diff --git a/app/Filament/Resources/TlaSuggestions/Pages/CreateTlaSuggestion.php b/app/Filament/Resources/TlaSuggestions/Pages/CreateTlaSuggestion.php deleted file mode 100644 index 7def4ab..0000000 --- a/app/Filament/Resources/TlaSuggestions/Pages/CreateTlaSuggestion.php +++ /dev/null @@ -1,11 +0,0 @@ -components([ - TextInput::make('acronym') - ->required(), - TextInput::make('hint') - ->default(null), - Select::make('language') - ->options(['hu' => 'Hu', 'en' => 'En']) - ->required(), - Textarea::make('context') - ->default(null) - ->columnSpanFull(), - TextInput::make('submitter') - ->default(null), - ]); - } -} diff --git a/app/Filament/Resources/TlaSuggestions/Schemas/TlaSuggestionInfolist.php b/app/Filament/Resources/TlaSuggestions/Schemas/TlaSuggestionInfolist.php deleted file mode 100644 index ad412a1..0000000 --- a/app/Filament/Resources/TlaSuggestions/Schemas/TlaSuggestionInfolist.php +++ /dev/null @@ -1,32 +0,0 @@ -components([ - TextEntry::make('acronym'), - TextEntry::make('hint') - ->placeholder('-'), - TextEntry::make('language') - ->badge(), - TextEntry::make('context') - ->placeholder('-') - ->columnSpanFull(), - TextEntry::make('submitter') - ->placeholder('-'), - TextEntry::make('created_at') - ->dateTime() - ->placeholder('-'), - TextEntry::make('updated_at') - ->dateTime() - ->placeholder('-'), - ]); - } -} diff --git a/app/Filament/Resources/TlaSuggestions/Tables/TlaSuggestionsTable.php b/app/Filament/Resources/TlaSuggestions/Tables/TlaSuggestionsTable.php deleted file mode 100644 index 93a1221..0000000 --- a/app/Filament/Resources/TlaSuggestions/Tables/TlaSuggestionsTable.php +++ /dev/null @@ -1,48 +0,0 @@ -columns([ - TextColumn::make('acronym') - ->searchable(), - TextColumn::make('hint') - ->searchable(), - TextColumn::make('language') - ->badge(), - TextColumn::make('submitter') - ->searchable(), - TextColumn::make('created_at') - ->dateTime() - ->sortable() - ->toggleable(isToggledHiddenByDefault: true), - TextColumn::make('updated_at') - ->dateTime() - ->sortable() - ->toggleable(isToggledHiddenByDefault: true), - ]) - ->filters([ - // - ]) - ->recordActions([ - ViewAction::make(), - EditAction::make(), - ]) - ->toolbarActions([ - BulkActionGroup::make([ - DeleteBulkAction::make(), - ]), - ]); - } -} diff --git a/app/Filament/Resources/TlaSuggestions/TlaSuggestionResource.php b/app/Filament/Resources/TlaSuggestions/TlaSuggestionResource.php index df1e486..4e2e49d 100644 --- a/app/Filament/Resources/TlaSuggestions/TlaSuggestionResource.php +++ b/app/Filament/Resources/TlaSuggestions/TlaSuggestionResource.php @@ -2,19 +2,22 @@ namespace App\Filament\Resources\TlaSuggestions; -use App\Filament\Resources\TlaSuggestions\Pages\CreateTlaSuggestion; -use App\Filament\Resources\TlaSuggestions\Pages\EditTlaSuggestion; -use App\Filament\Resources\TlaSuggestions\Pages\ListTlaSuggestions; -use App\Filament\Resources\TlaSuggestions\Pages\ViewTlaSuggestion; -use App\Filament\Resources\TlaSuggestions\Schemas\TlaSuggestionForm; -use App\Filament\Resources\TlaSuggestions\Schemas\TlaSuggestionInfolist; -use App\Filament\Resources\TlaSuggestions\Tables\TlaSuggestionsTable; +use App\Filament\Resources\TlaSuggestions\Pages\ManageTlaSuggestions; use App\Models\TlaSuggestion; use BackedEnum; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteAction; +use Filament\Actions\DeleteBulkAction; +use Filament\Actions\EditAction; +use Filament\Forms\Components\Select; +use Filament\Forms\Components\TextInput; +use Filament\Forms\Components\Textarea; use Filament\Resources\Resource; use Filament\Schemas\Schema; use Filament\Support\Icons\Heroicon; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; +use Filament\Actions\Action; class TlaSuggestionResource extends Resource { @@ -22,37 +25,75 @@ class TlaSuggestionResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedRectangleStack; - protected static ?string $recordTitleAttribute = 'TlaSuggestion'; + protected static ?string $recordTitleAttribute = 'Suggestions'; public static function form(Schema $schema): Schema { - return TlaSuggestionForm::configure($schema); - } - - public static function infolist(Schema $schema): Schema - { - return TlaSuggestionInfolist::configure($schema); + return $schema + ->components([ + TextInput::make('acronym') + ->required(), + TextInput::make('hint') + ->default(null), + Select::make('language') + ->options(['hu' => 'Hu', 'en' => 'En']) + ->required(), + Textarea::make('context') + ->default(null) + ->columnSpanFull(), + TextInput::make('submitter') + ->default(null), + ]); } public static function table(Table $table): Table { - return TlaSuggestionsTable::configure($table); - } - - public static function getRelations(): array - { - return [ - // - ]; + return $table + ->recordTitleAttribute('Suggestions') + ->columns([ + TextColumn::make('acronym') + ->searchable(), + TextColumn::make('hint') + ->searchable(), + TextColumn::make('language') + ->badge(), + TextColumn::make('submitter') + ->searchable(), + TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->recordActions([ + EditAction::make(), + DeleteAction::make(), + Action::make('Approve') + ->action(function (Model $record, Collection $selectedRecords) { + $selectedRecords->each( + fn (Model $selectedRecord) => $selectedRecord->update([ + 'is_active' => $record->is_active, + ]), + ); + }), + ]) + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), + ]), + ]); } public static function getPages(): array { return [ - 'index' => ListTlaSuggestions::route('/'), - 'create' => CreateTlaSuggestion::route('/create'), - 'view' => ViewTlaSuggestion::route('/{record}'), - 'edit' => EditTlaSuggestion::route('/{record}/edit'), + 'index' => ManageTlaSuggestions::route('/'), ]; } } diff --git a/app/Models/TlaSuggestion.php b/app/Models/TlaSuggestion.php index aab563c..a319a45 100644 --- a/app/Models/TlaSuggestion.php +++ b/app/Models/TlaSuggestion.php @@ -3,9 +3,11 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Factories\HasFactory; class TlaSuggestion extends Model { + use HasFactory; protected $table = 'tla_suggestion'; protected $fillable = ['acronym', 'hint', 'language', 'context', 'submitter'];