mirror of
https://github.com/anna-sara/filament_inventory
synced 2025-10-26 23:27:13 +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 Illuminate\Support\Facades\Mail;
|
||||||
use App\Mail\ReservationCreatedUser;
|
use App\Mail\ReservationCreatedUser;
|
||||||
use App\Mail\ReservationCreated;
|
use App\Mail\ReservationCreated;
|
||||||
|
use Filament\Forms\Components\Checkbox;
|
||||||
|
|
||||||
|
|
||||||
class Reserve extends BasePage implements HasTable
|
class Reserve extends BasePage implements HasTable
|
||||||
|
|
@ -134,14 +135,23 @@ class Reserve extends BasePage implements HasTable
|
||||||
->required(),
|
->required(),
|
||||||
TextInput::make('email')
|
TextInput::make('email')
|
||||||
->label('Email')
|
->label('Email')
|
||||||
|
->email()
|
||||||
->required(),
|
->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 {
|
->action(function (array $data, Item $record): void {
|
||||||
$reservation = Reserveditem::create([
|
$reservation = Reserveditem::create([
|
||||||
'item_id' => $record->id,
|
'item_id' => $record->id,
|
||||||
'reserved_date' => Carbon::now(),
|
'reserved_date' => Carbon::now(),
|
||||||
'username' => $data['username'],
|
'username' => $data['username'],
|
||||||
'email' => $data['email']
|
'email' => $data['email'],
|
||||||
|
'phone' => $data['phone']
|
||||||
]);
|
]);
|
||||||
Item::where('id', $record->id)->update(['reserved' => true]);
|
Item::where('id', $record->id)->update(['reserved' => true]);
|
||||||
Mail::to($data['email'])
|
Mail::to($data['email'])
|
||||||
|
|
@ -166,9 +176,9 @@ class Reserve extends BasePage implements HasTable
|
||||||
ImageEntry::make('image')
|
ImageEntry::make('image')
|
||||||
->label('Bild')
|
->label('Bild')
|
||||||
->width(300)
|
->width(300)
|
||||||
->height('auto')
|
->height('auto'),
|
||||||
->disk('local')
|
//->disk('local')
|
||||||
->visibility('private'),
|
//->visibility('private'),
|
||||||
TextEntry::make('desc')
|
TextEntry::make('desc')
|
||||||
->label('Beskrivning'),
|
->label('Beskrivning'),
|
||||||
TextEntry::make('acquisition_date')
|
TextEntry::make('acquisition_date')
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ use Filament\Tables\Columns\TextColumn;
|
||||||
use Filament\Tables\Columns\ImageColumn;
|
use Filament\Tables\Columns\ImageColumn;
|
||||||
use Filament\Tables\Columns\IconColumn;
|
use Filament\Tables\Columns\IconColumn;
|
||||||
use Filament\Tables\Actions\Action;
|
use Filament\Tables\Actions\Action;
|
||||||
|
use Filament\Forms\Components\Checkbox;
|
||||||
|
|
||||||
|
|
||||||
class ItemResource extends Resource
|
class ItemResource extends Resource
|
||||||
|
|
@ -123,7 +124,7 @@ class ItemResource extends Resource
|
||||||
->default(null)
|
->default(null)
|
||||||
->hidden(fn ($get): string => $get('type') == 'item'),
|
->hidden(fn ($get): string => $get('type') == 'item'),
|
||||||
Toggle::make('can_be_loaned')
|
Toggle::make('can_be_loaned')
|
||||||
->label('Can be loaned')
|
->label('Loanable')
|
||||||
->translateLabel()
|
->translateLabel()
|
||||||
->hidden(fn ($get): string => $get('type') == 'game'),
|
->hidden(fn ($get): string => $get('type') == 'game'),
|
||||||
]);
|
]);
|
||||||
|
|
@ -264,15 +265,25 @@ class ItemResource extends Resource
|
||||||
->required(),
|
->required(),
|
||||||
TextInput::make('email')
|
TextInput::make('email')
|
||||||
->label('Email')
|
->label('Email')
|
||||||
|
->email()
|
||||||
->translateLabel()
|
->translateLabel()
|
||||||
->required(),
|
->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 {
|
->action(function (array $data, Item $record): void {
|
||||||
$reservation = Reserveditem::create([
|
$reservation = Reserveditem::create([
|
||||||
'item_id' => $record->id,
|
'item_id' => $record->id,
|
||||||
'reserved_date' => Carbon::now(),
|
'reserved_date' => Carbon::now(),
|
||||||
'username' => $data['username'],
|
'username' => $data['username'],
|
||||||
'email' => $data['email']
|
'email' => $data['email'],
|
||||||
|
'phone' => $data['phone']
|
||||||
]);
|
]);
|
||||||
Item::where('id', $record->id)->update(['reserved' => true]);
|
Item::where('id', $record->id)->update(['reserved' => true]);
|
||||||
Mail::to($data['email'])
|
Mail::to($data['email'])
|
||||||
|
|
|
||||||
|
|
@ -57,10 +57,18 @@ class ReserveditemResource extends Resource
|
||||||
TextInput::make('username')
|
TextInput::make('username')
|
||||||
->label('Name')
|
->label('Name')
|
||||||
->translateLabel()
|
->translateLabel()
|
||||||
->default(null),
|
->default(null)
|
||||||
|
->required(),
|
||||||
TextInput::make('email')
|
TextInput::make('email')
|
||||||
->label('Email')
|
->label('Email')
|
||||||
->default(null),
|
->default(null)
|
||||||
|
->email()
|
||||||
|
->required(),
|
||||||
|
TextInput::make('phone')
|
||||||
|
->label('Phone')
|
||||||
|
->default(null)
|
||||||
|
->tel()
|
||||||
|
->required(),
|
||||||
Section::make('')
|
Section::make('')
|
||||||
->schema([
|
->schema([
|
||||||
Toggle::make('delivered')
|
Toggle::make('delivered')
|
||||||
|
|
@ -93,6 +101,10 @@ class ReserveditemResource extends Resource
|
||||||
->label('Email')
|
->label('Email')
|
||||||
->sortable()
|
->sortable()
|
||||||
->icon('heroicon-m-envelope'),
|
->icon('heroicon-m-envelope'),
|
||||||
|
TextColumn::make('phone')
|
||||||
|
->label('Phone')
|
||||||
|
->sortable()
|
||||||
|
->icon('heroicon-m-phone'),
|
||||||
TextColumn::make('reserved_date')
|
TextColumn::make('reserved_date')
|
||||||
->label('Reservation date')
|
->label('Reservation date')
|
||||||
->translateLabel()
|
->translateLabel()
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ class CreateReserveditem extends CreateRecord
|
||||||
$data['user_id'] = auth()->id();
|
$data['user_id'] = auth()->id();
|
||||||
$data['username'] = auth()->user()->name;
|
$data['username'] = auth()->user()->name;
|
||||||
$data['email'] = auth()->user()->email;
|
$data['email'] = auth()->user()->email;
|
||||||
|
$data['phone'] = auth()->user()->phone;
|
||||||
}
|
}
|
||||||
$data['reserved_date'] = Carbon::now();
|
$data['reserved_date'] = Carbon::now();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@ class Reserveditem extends Model
|
||||||
'returned',
|
'returned',
|
||||||
'user_id',
|
'user_id',
|
||||||
'item_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",
|
"Email verified at": "Email verifierad den",
|
||||||
"Total number of games": "Totalt antal spel i lager",
|
"Total number of games": "Totalt antal spel i lager",
|
||||||
"Total number of items": "Totalt antal saker 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