mirror of
https://github.com/HolgerHatGarKeineNode/einundzwanzig-app.git
synced 2025-12-14 12:06:46 +00:00
🌐 Add 'all-meetups' route and update sidebar to include global meetup view
- 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.
This commit is contained in:
@@ -458,5 +458,7 @@
|
|||||||
"Öffnen/RSVP": "",
|
"Öffnen/RSVP": "",
|
||||||
"Über den Dozenten": "",
|
"Über den Dozenten": "",
|
||||||
"Über den Kurs": "",
|
"Über den Kurs": "",
|
||||||
"Über uns": ""
|
"Über uns": "",
|
||||||
|
"Alle Meetups": "",
|
||||||
|
"Welt-Karte": ""
|
||||||
}
|
}
|
||||||
@@ -458,5 +458,7 @@
|
|||||||
"Öffnen/RSVP": "Open/RSVP",
|
"Öffnen/RSVP": "Open/RSVP",
|
||||||
"Über den Dozenten": "About the lecturer",
|
"Über den Dozenten": "About the lecturer",
|
||||||
"Über den Kurs": "About the course",
|
"Über den Kurs": "About the course",
|
||||||
"Über uns": "About us"
|
"Über uns": "About us",
|
||||||
}
|
"Alle Meetups": "All Meetups",
|
||||||
|
"Welt-Karte": "World Map"
|
||||||
|
}
|
||||||
|
|||||||
@@ -457,5 +457,7 @@
|
|||||||
"Öffnen/RSVP": "Abrir/RSVP",
|
"Öffnen/RSVP": "Abrir/RSVP",
|
||||||
"Über den Dozenten": "Sobre el profesor",
|
"Über den Dozenten": "Sobre el profesor",
|
||||||
"Über den Kurs": "Sobre el curso",
|
"Über den Kurs": "Sobre el curso",
|
||||||
"Über uns": "Sobre nosotros"
|
"Über uns": "Sobre nosotros",
|
||||||
}
|
"Alle Meetups": "Todos los encuentros",
|
||||||
|
"Welt-Karte": "Mapa mundial"
|
||||||
|
}
|
||||||
|
|||||||
@@ -452,5 +452,7 @@
|
|||||||
"Öffnen/RSVP": "Megnyitás/RSVP",
|
"Öffnen/RSVP": "Megnyitás/RSVP",
|
||||||
"Über den Dozenten": "Az oktatóról",
|
"Über den Dozenten": "Az oktatóról",
|
||||||
"Über den Kurs": "A kurzusról",
|
"Über den Kurs": "A kurzusról",
|
||||||
"Über uns": "Rólunk"
|
"Über uns": "Rólunk",
|
||||||
}
|
"Alle Meetups": "Minden meetup",
|
||||||
|
"Welt-Karte": "Világtérkép"
|
||||||
|
}
|
||||||
|
|||||||
@@ -454,5 +454,7 @@
|
|||||||
"Öffnen/RSVP": "Openen/RSVP",
|
"Öffnen/RSVP": "Openen/RSVP",
|
||||||
"Über den Dozenten": "Over de docent",
|
"Über den Dozenten": "Over de docent",
|
||||||
"Über den Kurs": "Over de cursus",
|
"Über den Kurs": "Over de cursus",
|
||||||
"Über uns": "Over ons"
|
"Über uns": "Over ons",
|
||||||
}
|
"Alle Meetups": "Alle Meetups",
|
||||||
|
"Welt-Karte": "Wereldkaart"
|
||||||
|
}
|
||||||
|
|||||||
@@ -452,5 +452,7 @@
|
|||||||
"Öffnen/RSVP": "Abrir/RSVP",
|
"Öffnen/RSVP": "Abrir/RSVP",
|
||||||
"Über den Dozenten": "Sobre o professor",
|
"Über den Dozenten": "Sobre o professor",
|
||||||
"Über den Kurs": "Sobre o curso",
|
"Über den Kurs": "Sobre o curso",
|
||||||
"Über uns": "Sobre nós"
|
"Über uns": "Sobre nós",
|
||||||
}
|
"Alle Meetups": "Todos os Meetups",
|
||||||
|
"Welt-Karte": "Mapa Mundial"
|
||||||
|
}
|
||||||
|
|||||||
@@ -26,7 +26,21 @@
|
|||||||
:current="request()->routeIs('meetups.index')"
|
:current="request()->routeIs('meetups.index')"
|
||||||
wire:navigate
|
wire:navigate
|
||||||
badge="{{ \App\Models\Meetup::query()->whereHas('city.country', fn($query) => $query->where('countries.code', request()->route('country')))->count() }}">
|
badge="{{ \App\Models\Meetup::query()->whereHas('city.country', fn($query) => $query->where('countries.code', request()->route('country')))->count() }}">
|
||||||
{{ __('Meetups') }}
|
<div class="flex items-center space-x-2">
|
||||||
|
<span>{{ __('Meetups') }}</span>
|
||||||
|
<img alt="{{ request()->route('country') }}"
|
||||||
|
src="{{ asset('vendor/blade-flags/country-'.request()->route('country').'.svg') }}"
|
||||||
|
width="24" height="12"/>
|
||||||
|
</div>
|
||||||
|
</flux:navlist.item>
|
||||||
|
<flux:navlist.item icon="user-group" :href="route_with_country('meetups.index-all')"
|
||||||
|
:current="request()->routeIs('meetups.index-all')"
|
||||||
|
wire:navigate
|
||||||
|
badge="{{ \App\Models\Meetup::query()->count() }}">
|
||||||
|
<div class="flex items-center space-x-2">
|
||||||
|
<span>{{ __('Alle Meetups') }}</span>
|
||||||
|
<flux:icon name="globe-europe-africa"/>
|
||||||
|
</div>
|
||||||
</flux:navlist.item>
|
</flux:navlist.item>
|
||||||
<flux:navlist.item icon="map" :href="route_with_country('meetups.map')"
|
<flux:navlist.item icon="map" :href="route_with_country('meetups.map')"
|
||||||
:current="request()->routeIs('meetups.map')"
|
:current="request()->routeIs('meetups.map')"
|
||||||
|
|||||||
@@ -14,9 +14,11 @@ class extends Component {
|
|||||||
|
|
||||||
public $country = 'de';
|
public $country = 'de';
|
||||||
public $search = '';
|
public $search = '';
|
||||||
|
public string $currentRouteName = '';
|
||||||
|
|
||||||
public function mount(): void
|
public function mount(): void
|
||||||
{
|
{
|
||||||
|
$this->currentRouteName = request()->route()->getName();
|
||||||
$this->country = request()->route('country', config('app.domain_country'));
|
$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')
|
->selectRaw('meetups.*, MIN(meetup_events.start) as next_event_start')
|
||||||
->groupBy('meetups.id')
|
->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)
|
->when($this->search, fn($query)
|
||||||
=> $query->where('meetups.name', 'ilike', '%'.$this->search.'%'),
|
=> $query->where('meetups.name', 'ilike', '%'.$this->search.'%'),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ Route::middleware([])
|
|||||||
Volt::route('meetup/meetup-events/l/{event}', 'meetups.landingpage-event')->name('meetups.landingpage-event-old');
|
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('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', 'meetups.map')->name('meetups.map');
|
||||||
Volt::route('map-world', 'meetups.map')->name('meetups.map-world');
|
Volt::route('map-world', 'meetups.map')->name('meetups.map-world');
|
||||||
Volt::route('meetup/{meetup:slug}', 'meetups.landingpage')->name('meetups.landingpage');
|
Volt::route('meetup/{meetup:slug}', 'meetups.landingpage')->name('meetups.landingpage');
|
||||||
|
|||||||
Reference in New Issue
Block a user