From 25dd74312ec441b12c24e58f371d4f09e07957c1 Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode Date: Wed, 15 Mar 2023 14:33:39 +0100 Subject: [PATCH] copy embed code --- app/Http/Livewire/Meetup/Embed/CountryMap.php | 41 +++++++++++++++ app/Http/Livewire/Meetup/MeetupTable.php | 18 +++++-- .../meetup/embed/country-map.blade.php | 50 +++++++++++++++++++ .../livewire/meetup/meetup-table.blade.php | 25 +++++++--- routes/web.php | 3 ++ 5 files changed, 125 insertions(+), 12 deletions(-) create mode 100644 app/Http/Livewire/Meetup/Embed/CountryMap.php create mode 100644 resources/views/livewire/meetup/embed/country-map.blade.php diff --git a/app/Http/Livewire/Meetup/Embed/CountryMap.php b/app/Http/Livewire/Meetup/Embed/CountryMap.php new file mode 100644 index 00000000..6d3e7eab --- /dev/null +++ b/app/Http/Livewire/Meetup/Embed/CountryMap.php @@ -0,0 +1,41 @@ + Meetup::query() + ->with([ + 'city.country', + ]) + ->whereHas('city.country', + fn($query) => $query->where('countries.code', $this->country->code)) + ->get() + ->map(fn($meetup) => [ + 'id' => $meetup->id, + 'name' => $meetup->name, + 'coords' => [$meetup->city->latitude, $meetup->city->longitude], + 'url' => url()->route('meetup.landing', [ + 'country' => $meetup->city->country->code, + 'meetup' => $meetup, + ]), + ]), + ])->layout('layouts.app', [ + 'SEOData' => new SEOData( + title: __('Meetups'), + description: __('Bitcoiner Meetups are a great way to meet other Bitcoiners in your area. You can learn from each other, share ideas, and have fun!'), + image: asset('img/screenshot.png') + ), + ]); + } +} diff --git a/app/Http/Livewire/Meetup/MeetupTable.php b/app/Http/Livewire/Meetup/MeetupTable.php index de811b59..20caeb0f 100644 --- a/app/Http/Livewire/Meetup/MeetupTable.php +++ b/app/Http/Livewire/Meetup/MeetupTable.php @@ -11,6 +11,14 @@ class MeetupTable extends Component { public Country $country; + public string $mapEmbedCode = ''; + + public function mount() + { + $this->mapEmbedCode = ''; + } + public function filterByMarker($id) { $meetup = Meetup::with(['city.country']) @@ -18,7 +26,7 @@ class MeetupTable extends Component return to_route('meetup.landing', [ 'country' => $meetup->city->country->code, - 'meetup' => $meetup, + 'meetup' => $meetup, ]); } @@ -32,11 +40,11 @@ class MeetupTable extends Component 'city.country', ]) ->whereHas('city.country', - fn ($query) => $query->where('countries.code', $this->country->code)) + fn($query) => $query->where('countries.code', $this->country->code)) ->get() - ->map(fn ($meetup) => [ - 'id' => $meetup->id, - 'name' => $meetup->name, + ->map(fn($meetup) => [ + 'id' => $meetup->id, + 'name' => $meetup->name, 'coords' => [$meetup->city->latitude, $meetup->city->longitude], ]), ])->layout('layouts.app', [ diff --git a/resources/views/livewire/meetup/embed/country-map.blade.php b/resources/views/livewire/meetup/embed/country-map.blade.php new file mode 100644 index 00000000..e227e9e3 --- /dev/null +++ b/resources/views/livewire/meetup/embed/country-map.blade.php @@ -0,0 +1,50 @@ +
+ @php + $focus = ''; + $map = $country->code . '_merc'; + if (!\File::exists(public_path('vendor/jvector/maps/' . $country->code . '.js'))) { + $map = 'europe_merc'; + $focus = 'focusOn: {lat:'.$country->latitude.',lng:'.$country->longitude.',scale:8,animate:true},'; + } + @endphp +
+
+
+
diff --git a/resources/views/livewire/meetup/meetup-table.blade.php b/resources/views/livewire/meetup/meetup-table.blade.php index 360279bd..ef35d1a0 100644 --- a/resources/views/livewire/meetup/meetup-table.blade.php +++ b/resources/views/livewire/meetup/meetup-table.blade.php @@ -5,15 +5,26 @@
- + - - {{ __('Calendar Stream-Url for all meetup events') }} - + @click.prevent="window.navigator.clipboard.writeText(textToCopy);window.$wireui.notify({title:'{{ __('Calendar Stream Url copied!') }}',description:'{{ __('Paste the calendar stream link into a compatible calendar app.') }}',icon:'success'});" + amber> + + {{ __('Calendar Stream-Url for all meetup events') }} + + + + {{ __('Copy embed code for the map') }} {{ $country->code }} + +
@php diff --git a/routes/web.php b/routes/web.php index 7af621e5..b6a3b5c8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -294,6 +294,9 @@ Route::middleware([]) Route::get('overview', \App\Http\Livewire\Meetup\MeetupTable::class) ->name('table.meetup'); + Route::get('embed', \App\Http\Livewire\Meetup\Embed\CountryMap::class) + ->name('embed.countryMap'); + Route::get('/meetup/form/{meetup?}', \App\Http\Livewire\Meetup\Form\MeetupForm::class) ->name('meetup.form') ->middleware([