From 294a25cb447e965e0f126a57093a91dd9e90b406 Mon Sep 17 00:00:00 2001 From: Sagar Date: Tue, 23 Apr 2024 16:52:54 +0200 Subject: [PATCH] feat: created geolocation and organism resources --- .../Resources/GeoLocationResource.php | 98 +++++++++++++++++++ .../Pages/CreateGeoLocation.php | 21 ++++ .../Pages/EditGeoLocation.php | 19 ++++ .../Pages/ListGeoLocations.php | 19 ++++ .../Dashboard/Resources/OrganismResource.php | 83 ++++++++++++++++ .../OrganismResource/Pages/CreateOrganism.php | 12 +++ .../OrganismResource/Pages/EditOrganism.php | 19 ++++ .../OrganismResource/Pages/ListOrganisms.php | 19 ++++ 8 files changed, 290 insertions(+) create mode 100644 app/Filament/Dashboard/Resources/GeoLocationResource.php create mode 100644 app/Filament/Dashboard/Resources/GeoLocationResource/Pages/CreateGeoLocation.php create mode 100644 app/Filament/Dashboard/Resources/GeoLocationResource/Pages/EditGeoLocation.php create mode 100644 app/Filament/Dashboard/Resources/GeoLocationResource/Pages/ListGeoLocations.php create mode 100644 app/Filament/Dashboard/Resources/OrganismResource.php create mode 100644 app/Filament/Dashboard/Resources/OrganismResource/Pages/CreateOrganism.php create mode 100644 app/Filament/Dashboard/Resources/OrganismResource/Pages/EditOrganism.php create mode 100644 app/Filament/Dashboard/Resources/OrganismResource/Pages/ListOrganisms.php diff --git a/app/Filament/Dashboard/Resources/GeoLocationResource.php b/app/Filament/Dashboard/Resources/GeoLocationResource.php new file mode 100644 index 00000000..b376c3b7 --- /dev/null +++ b/app/Filament/Dashboard/Resources/GeoLocationResource.php @@ -0,0 +1,98 @@ +schema([ + TextInput::make('name') + ->required() + ->maxLength(255), + // Fieldset::make('Molecule') + // ->relationship('molecules', 'identifier') + // ->schema([ + // TextInput::make('identifier'), + // TextInput::make('locations'), + // ]) + // TextInput::make('molecule_id') + // ->label('Molecule') + // ->relationship('molecule') + // ->placeholder('Enter the molecule Identifier') + // ->required(), + // TextInput::make('locations') + // ->label('Locations') + // ->relationship('molecule') + // ->placeholder('soil, water, etc.') + // ->helperText('Enter where in this Geo-Location these molecules can be found') + // ->required(), + ]); + } + + public static function table(Table $table): Table + { + return $table + ->columns([ + Tables\Columns\TextColumn::make('name') + ->searchable(), + Tables\Columns\TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->actions([ + Tables\Actions\EditAction::make(), + ]) + ->bulkActions([ + Tables\Actions\BulkActionGroup::make([ + Tables\Actions\DeleteBulkAction::make(), + ]), + ]); + } + + public static function getRelations(): array + { + return [ + // + ]; + } + + public static function getPages(): array + { + return [ + 'index' => Pages\ListGeoLocations::route('/'), + 'create' => Pages\CreateGeoLocation::route('/create'), + 'edit' => Pages\EditGeoLocation::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Dashboard/Resources/GeoLocationResource/Pages/CreateGeoLocation.php b/app/Filament/Dashboard/Resources/GeoLocationResource/Pages/CreateGeoLocation.php new file mode 100644 index 00000000..d8279a4f --- /dev/null +++ b/app/Filament/Dashboard/Resources/GeoLocationResource/Pages/CreateGeoLocation.php @@ -0,0 +1,21 @@ +data['molecule_id'])->get(); + // $this->data['molecule_id'] = $molecule[0]->id; + // dd($this->data); + // $this->data->molecules()->attach($molecule); + } +} diff --git a/app/Filament/Dashboard/Resources/GeoLocationResource/Pages/EditGeoLocation.php b/app/Filament/Dashboard/Resources/GeoLocationResource/Pages/EditGeoLocation.php new file mode 100644 index 00000000..1acb624b --- /dev/null +++ b/app/Filament/Dashboard/Resources/GeoLocationResource/Pages/EditGeoLocation.php @@ -0,0 +1,19 @@ +schema([ + Forms\Components\TextInput::make('name') + ->required() + ->maxLength(255), + Forms\Components\TextInput::make('ontology') + ->maxLength(255), + ]); + } + + public static function table(Table $table): Table + { + return $table + ->columns([ + Tables\Columns\TextColumn::make('name') + ->searchable(), + Tables\Columns\TextColumn::make('ontology') + ->searchable(), + Tables\Columns\TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->actions([ + Tables\Actions\EditAction::make(), + ]) + ->bulkActions([ + Tables\Actions\BulkActionGroup::make([ + Tables\Actions\DeleteBulkAction::make(), + ]), + ]); + } + + public static function getRelations(): array + { + return [ + // + ]; + } + + public static function getPages(): array + { + return [ + 'index' => Pages\ListOrganisms::route('/'), + 'create' => Pages\CreateOrganism::route('/create'), + 'edit' => Pages\EditOrganism::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Dashboard/Resources/OrganismResource/Pages/CreateOrganism.php b/app/Filament/Dashboard/Resources/OrganismResource/Pages/CreateOrganism.php new file mode 100644 index 00000000..a67f7eda --- /dev/null +++ b/app/Filament/Dashboard/Resources/OrganismResource/Pages/CreateOrganism.php @@ -0,0 +1,12 @@ +