diff --git a/resources/views/livewire/meetups/create-edit-events.blade.php b/resources/views/livewire/meetups/create-edit-events.blade.php new file mode 100644 index 0000000..f1f9d99 --- /dev/null +++ b/resources/views/livewire/meetups/create-edit-events.blade.php @@ -0,0 +1,141 @@ +country = request()->route('country'); + if ($this->event) { + $this->start = $this->event->start->format('Y-m-d\TH:i'); + $this->location = $this->event->location; + $this->description = $this->event->description; + $this->link = $this->event->link; + } else { + // Set default start time to next Monday at 19:00 + $this->start = now()->next('Monday')->setTime(19, 0)->format('Y-m-d\TH:i'); + } + } + + public function save(): void + { + $validated = $this->validate(); + + if ($this->event) { + // Update existing event + $this->event->update($validated); + session()->flash('status', __('Event erfolgreich aktualisiert!')); + } else { + // Create new event + $this->meetup->meetupEvents()->create([ + ...$validated, + 'created_by' => auth()->id(), + 'attendees' => [], + 'might_attendees' => [], + ]); + session()->flash('status', __('Event erfolgreich erstellt!')); + } + + $this->redirect(route('meetups.landingpage', ['meetup' => $this->meetup, 'country' => $this->country]), navigate: true); + } + + public function delete(): void + { + if ($this->event) { + $this->event->delete(); + session()->flash('status', __('Event erfolgreich gelöscht!')); + $this->redirect(route_with_country('meetups.edit', ['meetup' => $this->meetup]), navigate: true); + } + } +}; ?> + +
+ + {{ $event ? __('Event bearbeiten') : __('Neues Event erstellen') }}: {{ $meetup->name }} + + +
+ + + + {{ __('Event Details') }} + +
+ + {{ __('Startzeit') }} * + + {{ __('Wann findet das Event statt?') }} + + + + + {{ __('Ort') }} + + {{ __('Wo findet das Event statt?') }} + + +
+ + + {{ __('Beschreibung') }} + + {{ __('Details über das Event') }} + + + + + {{ __('Link') }} + + {{ __('Link zu weiteren Informationen') }} + + +
+ + +
+
+ + {{ __('Abbrechen') }} + + + @if($event) + + {{ __('Event löschen') }} + + @endif +
+ +
+ @if (session('status')) + + {{ session('status') }} + + @endif + + + {{ $event ? __('Event aktualisieren') : __('Event erstellen') }} + +
+
+
+
diff --git a/resources/views/livewire/meetups/index.blade.php b/resources/views/livewire/meetups/index.blade.php index a876710..4d4e69d 100644 --- a/resources/views/livewire/meetups/index.blade.php +++ b/resources/views/livewire/meetups/index.blade.php @@ -152,6 +152,9 @@ new class extends Component { variant="filled" icon="pencil"> {{ __('Bearbeiten') }} + + {{ __('Events') }} + @endforeach diff --git a/resources/views/livewire/meetups/landingpage.blade.php b/resources/views/livewire/meetups/landingpage.blade.php index 26a009c..613c0f4 100644 --- a/resources/views/livewire/meetups/landingpage.blade.php +++ b/resources/views/livewire/meetups/landingpage.blade.php @@ -194,39 +194,56 @@ new class extends Component {
@foreach($events as $event) - - - - {{ $event->start->format('d.m.Y') }} - - + + + {{ $event->start->format('d.m.Y') }} + - - - {{ $event->start->format('H:i') }} Uhr + + + {{ $event->start->format('H:i') }} Uhr + + + @if($event->location) + + + {{ $event->location }} + @endif - @if($event->location) - - - {{ $event->location }} - + @if($event->description) + {{ Str::limit($event->description, 100) }} + @endif + + +
+ {{ count($event->attendees ?? []) }} Zusagen + + {{ count($event->might_attendees ?? []) }} Vielleicht +
+
+ +
+ + {{ __('Öffnen/RSVP') }} + + @if($meetup->belongsToMe) + + {{ __('Bearbeiten') }} + @endif - - @if($event->description) - {{ Str::limit($event->description, 100) }} - @endif - - -
- {{ count($event->attendees ?? []) }} Zusagen - - {{ count($event->might_attendees ?? []) }} Vielleicht -
-
- -
+
+ @endforeach
diff --git a/routes/web.php b/routes/web.php index b525dc2..a7a1437 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,6 +21,8 @@ Route::middleware(['auth']) ->group(function () { Volt::route('dashboard', 'dashboard')->name('dashboard'); Volt::route('meetup-edit/{meetup}', 'meetups.edit')->name('meetups.edit'); + Volt::route('meetup/{meetup}/events/create', 'meetups.create-edit-events')->name('meetups.events.create'); + Volt::route('meetup/{meetup}/events/{event}/edit', 'meetups.create-edit-events')->name('meetups.events.edit'); }); Route::middleware(['auth'])