From ae7479eac0e33d1a6f176674d1e6e871971d5e79 Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode Date: Mon, 24 Nov 2025 02:45:13 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=90=20Add=20'all-meetups'=20route=20an?= =?UTF-8?q?d=20update=20sidebar=20to=20include=20global=20meetup=20view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Introduced `all-meetups` route (`meetups.index-all`) for accessing meetups globally. - Updated sidebar with a new navigation item for global meetups, including icon and dynamic badge count. - Enhanced backend logic to handle country-specific and global meetup filtering based on the current route. --- lang/de.json | 4 +++- lang/en.json | 6 ++++-- lang/es.json | 6 ++++-- lang/hu.json | 6 ++++-- lang/nl.json | 6 ++++-- lang/pt.json | 6 ++++-- .../components/layouts/app/sidebar.blade.php | 16 +++++++++++++++- resources/views/livewire/meetups/index.blade.php | 6 +++++- routes/web.php | 1 + 9 files changed, 44 insertions(+), 13 deletions(-) diff --git a/lang/de.json b/lang/de.json index deaa620..b36a247 100644 --- a/lang/de.json +++ b/lang/de.json @@ -458,5 +458,7 @@ "Öffnen/RSVP": "", "Über den Dozenten": "", "Über den Kurs": "", - "Über uns": "" + "Über uns": "", + "Alle Meetups": "", + "Welt-Karte": "" } \ No newline at end of file diff --git a/lang/en.json b/lang/en.json index 4ae221a..6ee6dcc 100644 --- a/lang/en.json +++ b/lang/en.json @@ -458,5 +458,7 @@ "Öffnen/RSVP": "Open/RSVP", "Über den Dozenten": "About the lecturer", "Über den Kurs": "About the course", - "Über uns": "About us" -} \ No newline at end of file + "Über uns": "About us", + "Alle Meetups": "All Meetups", + "Welt-Karte": "World Map" +} diff --git a/lang/es.json b/lang/es.json index 46837c9..f6a520c 100644 --- a/lang/es.json +++ b/lang/es.json @@ -457,5 +457,7 @@ "Öffnen/RSVP": "Abrir/RSVP", "Über den Dozenten": "Sobre el profesor", "Über den Kurs": "Sobre el curso", - "Über uns": "Sobre nosotros" -} \ No newline at end of file + "Über uns": "Sobre nosotros", + "Alle Meetups": "Todos los encuentros", + "Welt-Karte": "Mapa mundial" +} diff --git a/lang/hu.json b/lang/hu.json index 2fddf00..46eafd0 100644 --- a/lang/hu.json +++ b/lang/hu.json @@ -452,5 +452,7 @@ "Öffnen/RSVP": "Megnyitás/RSVP", "Über den Dozenten": "Az oktatóról", "Über den Kurs": "A kurzusról", - "Über uns": "Rólunk" -} \ No newline at end of file + "Über uns": "Rólunk", + "Alle Meetups": "Minden meetup", + "Welt-Karte": "Világtérkép" +} diff --git a/lang/nl.json b/lang/nl.json index af257d1..558defc 100644 --- a/lang/nl.json +++ b/lang/nl.json @@ -454,5 +454,7 @@ "Öffnen/RSVP": "Openen/RSVP", "Über den Dozenten": "Over de docent", "Über den Kurs": "Over de cursus", - "Über uns": "Over ons" -} \ No newline at end of file + "Über uns": "Over ons", + "Alle Meetups": "Alle Meetups", + "Welt-Karte": "Wereldkaart" +} diff --git a/lang/pt.json b/lang/pt.json index 08e14c3..eec64b4 100644 --- a/lang/pt.json +++ b/lang/pt.json @@ -452,5 +452,7 @@ "Öffnen/RSVP": "Abrir/RSVP", "Über den Dozenten": "Sobre o professor", "Über den Kurs": "Sobre o curso", - "Über uns": "Sobre nós" -} \ No newline at end of file + "Über uns": "Sobre nós", + "Alle Meetups": "Todos os Meetups", + "Welt-Karte": "Mapa Mundial" +} diff --git a/resources/views/components/layouts/app/sidebar.blade.php b/resources/views/components/layouts/app/sidebar.blade.php index 36f3dbf..1b05124 100644 --- a/resources/views/components/layouts/app/sidebar.blade.php +++ b/resources/views/components/layouts/app/sidebar.blade.php @@ -26,7 +26,21 @@ :current="request()->routeIs('meetups.index')" wire:navigate badge="{{ \App\Models\Meetup::query()->whereHas('city.country', fn($query) => $query->where('countries.code', request()->route('country')))->count() }}"> - {{ __('Meetups') }} +
+ {{ __('Meetups') }} + {{ request()->route('country') }} +
+ + +
+ {{ __('Alle Meetups') }} + +
currentRouteName = request()->route()->getName(); $this->country = request()->route('country', config('app.domain_country')); } @@ -34,7 +36,9 @@ class extends Component { }) ->selectRaw('meetups.*, MIN(meetup_events.start) as next_event_start') ->groupBy('meetups.id') - ->whereHas('city.country', fn($query) => $query->where('countries.code', $this->country)) + ->when($this->currentRouteName === 'meetups.index', fn($query) => + $query->whereHas('city.country', fn($query) => $query->where('countries.code', $this->country)) + ) ->when($this->search, fn($query) => $query->where('meetups.name', 'ilike', '%'.$this->search.'%'), ) diff --git a/routes/web.php b/routes/web.php index 33e9b8b..e72f010 100644 --- a/routes/web.php +++ b/routes/web.php @@ -77,6 +77,7 @@ Route::middleware([]) Volt::route('meetup/meetup-events/l/{event}', 'meetups.landingpage-event')->name('meetups.landingpage-event-old'); Volt::route('meetups', 'meetups.index')->name('meetups.index'); + Volt::route('all-meetups', 'meetups.index')->name('meetups.index-all'); Volt::route('map', 'meetups.map')->name('meetups.map'); Volt::route('map-world', 'meetups.map')->name('meetups.map-world'); Volt::route('meetup/{meetup:slug}', 'meetups.landingpage')->name('meetups.landingpage');