mirror of
https://github.com/anna-sara/filament_inventory
synced 2025-10-26 20:17:14 +01:00
Added phone and gdpr-checkbox to reservation form
This commit is contained in:
parent
d0415d6426
commit
9069c25b9d
7 changed files with 74 additions and 10 deletions
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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'])
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ class Reserveditem extends Model
|
|||
'returned',
|
||||
'user_id',
|
||||
'item_id',
|
||||
'email'
|
||||
'email',
|
||||
'phone'
|
||||
];
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
});
|
||||
}
|
||||
};
|
||||
3
lang/vendor/filament-panels/sv.json
vendored
3
lang/vendor/filament-panels/sv.json
vendored
|
|
@ -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"
|
||||
}
|
||||
Loading…
Reference in a new issue