meetup-events map

This commit is contained in:
Benjamin Takats
2022-12-15 20:24:57 +01:00
parent 0dd8ec4037
commit 1dde4dc544
2 changed files with 88 additions and 35 deletions

View File

@@ -16,15 +16,27 @@ class MeetupEventTable extends Component
public function render() public function render()
{ {
return view('livewire.meetup.meetup-event-table', [ return view('livewire.meetup.meetup-event-table', [
'events' => MeetupEvent::query() 'markers' => MeetupEvent::query()
->get() ->with([
->map(fn($event) => [ 'meetup.city.country',
'id' => $event->id, ])
'startDate' => $event->start, ->whereHas('meetup.city.country',
'endDate' => $event->start->endOfDay(), fn($query) => $query->where('countries.code', $this->country->code))
'location' => $event->location, ->get()
'description' => $event->description, ->map(fn($event) => [
]), 'id' => $event->id,
'name' => $event->meetup->name.': '.$event->location,
'coords' => [$event->meetup->city->latitude, $event->meetup->city->longitude],
]),
'events' => MeetupEvent::query()
->get()
->map(fn($event) => [
'id' => $event->id,
'startDate' => $event->start,
'endDate' => $event->start->endOfDay(),
'location' => $event->location,
'description' => $event->description,
]),
]); ]);
} }

View File

@@ -4,36 +4,37 @@
{{-- MAIN --}} {{-- MAIN --}}
<section class="w-full mb-12"> <section class="w-full mb-12">
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table"> <div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4" id="table">
<div class=""> <div class="flex items-start">
<div class="w-1/2">
<link rel="stylesheet" type="text/css" <link rel="stylesheet" type="text/css"
href="https://unpkg.com/js-year-calendar@latest/dist/js-year-calendar.min.css"/> href="https://unpkg.com/js-year-calendar@latest/dist/js-year-calendar.min.css"/>
<script src="https://unpkg.com/js-year-calendar@latest/dist/js-year-calendar.min.js"></script> <script src="https://unpkg.com/js-year-calendar@latest/dist/js-year-calendar.min.js"></script>
<script src="https://unpkg.com/js-year-calendar@latest/locales/js-year-calendar.de.js"></script> <script src="https://unpkg.com/js-year-calendar@latest/locales/js-year-calendar.de.js"></script>
<style> <style>
.calendar .calendar-header { .calendar .calendar-header {
background-color: #F7931A; background-color: #F7931A;
color: white; color: white;
border: 0; border: 0;
} }
.calendar table.month th.month-title { .calendar table.month th.month-title {
color: #fff; color: #fff;
} }
.calendar table.month th.day-header { .calendar table.month th.day-header {
color: #fff; color: #fff;
} }
.calendar table.month td.day .day-content { .calendar table.month td.day .day-content {
color: #fff; color: #fff;
} }
</style> </style>
<div <div
wire:ignore wire:ignore
x-data="{ x-data="{
calendar: null, calendar: null,
init() { init() {
let events = {{ Js::from($events) }}; let events = {{ Js::from($events) }};
@@ -65,8 +66,48 @@
}); });
}, },
}" }"
> >
<div x-ref="calendar"></div> <div x-ref="calendar"></div>
</div>
</div>
<div class="w-1/2">
<div
wire:ignore
class="w-full flex justify-center"
x-data="{
init() {
let markers = {{ Js::from($markers) }};
console.log(markers);
$('#map').vectorMap({
zoomButtons : false,
zoomOnScroll: true,
map: '{{ $country->code }}_merc',
backgroundColor: 'transparent',
markers: markers.map(function(h){ return {name: h.name, latLng: h.coords} }),
onMarkerClick: function(event, index) {
$wire.call('filterByMarker', markers[index].id)
},
markerStyle: {
initial: {
image: '{{ asset('img/btc.png') }}',
}
},
regionStyle: {
initial: {
fill: '#151515'
},
hover: {
'fill-opacity': 1,
cursor: 'default'
},
}
});
}
}"
>
<div id="map" style="width: 100%; height: 800px"></div>
</div>
</div> </div>
</div> </div>