Added phone and gdpr-checkbox to reservation form

This commit is contained in:
Anna-Sara Sélea 2025-06-02 07:46:16 +02:00
parent d0415d6426
commit 9069c25b9d
7 changed files with 74 additions and 10 deletions

View file

@ -34,6 +34,7 @@ use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Mail;
use App\Mail\ReservationCreatedUser;
use App\Mail\ReservationCreated;
use Filament\Forms\Components\Checkbox;
class Reserve extends BasePage implements HasTable
@ -134,14 +135,23 @@ class Reserve extends BasePage implements HasTable
->required(),
TextInput::make('email')
->label('Email')
->email()
->required(),
TextInput::make('phone')
->label('Nummer')
->tel()
->required(),
Checkbox::make('gdpr')
->label('Genom att checka i denna rutan godkänner du att vi lagrar din mailadress och telefonnummer.')
->accepted(),
])
->action(function (array $data, Item $record): void {
$reservation = Reserveditem::create([
'item_id' => $record->id,
'reserved_date' => Carbon::now(),
'username' => $data['username'],
'email' => $data['email']
'email' => $data['email'],
'phone' => $data['phone']
]);
Item::where('id', $record->id)->update(['reserved' => true]);
Mail::to($data['email'])
@ -166,9 +176,9 @@ class Reserve extends BasePage implements HasTable
ImageEntry::make('image')
->label('Bild')
->width(300)
->height('auto')
->disk('local')
->visibility('private'),
->height('auto'),
//->disk('local')
//->visibility('private'),
TextEntry::make('desc')
->label('Beskrivning'),
TextEntry::make('acquisition_date')

View file

@ -37,6 +37,7 @@ use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\ImageColumn;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Actions\Action;
use Filament\Forms\Components\Checkbox;
class ItemResource extends Resource
@ -123,7 +124,7 @@ class ItemResource extends Resource
->default(null)
->hidden(fn ($get): string => $get('type') == 'item'),
Toggle::make('can_be_loaned')
->label('Can be loaned')
->label('Loanable')
->translateLabel()
->hidden(fn ($get): string => $get('type') == 'game'),
]);
@ -264,15 +265,25 @@ class ItemResource extends Resource
->required(),
TextInput::make('email')
->label('Email')
->email()
->translateLabel()
->required(),
TextInput::make('phone')
->label('Nummer')
->translateLabel()
->tel()
->required(),
Checkbox::make('gdpr')
->label('Genom att checka i denna rutan godkänner du att vi lagrar din mailadress och telefonnummer.')
->accepted(),
])
->action(function (array $data, Item $record): void {
$reservation = Reserveditem::create([
'item_id' => $record->id,
'reserved_date' => Carbon::now(),
'username' => $data['username'],
'email' => $data['email']
'email' => $data['email'],
'phone' => $data['phone']
]);
Item::where('id', $record->id)->update(['reserved' => true]);
Mail::to($data['email'])

View file

@ -57,10 +57,18 @@ class ReserveditemResource extends Resource
TextInput::make('username')
->label('Name')
->translateLabel()
->default(null),
->default(null)
->required(),
TextInput::make('email')
->label('Email')
->default(null),
->default(null)
->email()
->required(),
TextInput::make('phone')
->label('Phone')
->default(null)
->tel()
->required(),
Section::make('')
->schema([
Toggle::make('delivered')
@ -93,6 +101,10 @@ class ReserveditemResource extends Resource
->label('Email')
->sortable()
->icon('heroicon-m-envelope'),
TextColumn::make('phone')
->label('Phone')
->sortable()
->icon('heroicon-m-phone'),
TextColumn::make('reserved_date')
->label('Reservation date')
->translateLabel()

View file

@ -22,6 +22,7 @@ class CreateReserveditem extends CreateRecord
$data['user_id'] = auth()->id();
$data['username'] = auth()->user()->name;
$data['email'] = auth()->user()->email;
$data['phone'] = auth()->user()->phone;
}
$data['reserved_date'] = Carbon::now();

View file

@ -22,7 +22,8 @@ class Reserveditem extends Model
'returned',
'user_id',
'item_id',
'email'
'email',
'phone'
];

View file

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('reserveditems', function (Blueprint $table) {
$table->string('phone')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('reserveditems', function (Blueprint $table) {
$table->dropColumn('phone');
});
}
};

View file

@ -35,5 +35,6 @@
"Email verified at": "Email verifierad den",
"Total number of games": "Totalt antal spel i lager",
"Total number of items": "Totalt antal saker i lager",
"Reserved games and items": "Reserverade spel och saker"
"Reserved games and items": "Reserverade spel och saker",
"Number": "Nummer"
}