Merge branch 'update'

This commit is contained in:
fsociety
2024-03-15 15:21:35 +01:00
7 changed files with 67 additions and 23 deletions

View File

@@ -17,26 +17,27 @@ class VenueController extends Controller
public function index(Request $request) public function index(Request $request)
{ {
return Venue::query() return Venue::query()
->with(['city:id,name,country_id', 'city.country:id,name,code']) ->with(['city:id,name,country_id', 'city.country:id,name,code'])
->select('id', 'name', 'city_id') ->select('id', 'name', 'city_id')
->orderBy('name') ->orderBy('name')
->when( ->when(
$request->search, $request->search,
fn(Builder $query) => $query fn(Builder $query) => $query
->where('name', 'ilike', "%{$request->search}%") ->where('name', 'ilike', "%{$request->search}%")
) )
->when( ->when(
$request->exists('selected'), $request->exists('selected'),
fn(Builder $query) => $query->whereIn('id', fn(Builder $query) => $query->whereIn('id',
$request->input('selected', [])), $request->input('selected', [])),
fn(Builder $query) => $query->limit(10) fn(Builder $query) => $query->limit(10)
) )
->get() ->get()
->map(function (Venue $venue) { ->map(function (Venue $venue) {
$venue->flag = asset('vendor/blade-country-flags/4x3-'.$venue->city->country->code.'.svg'); $venue->flag = asset('vendor/blade-country-flags/4x3-' . $venue->city->country->code . '.svg');
$venue->description = $venue->city->name . ', ' . $venue->street;
return $venue; return $venue;
}); });
} }
/** /**

View File

@@ -61,6 +61,7 @@ class Meetups extends Component
->map(fn($meetup) => [ ->map(fn($meetup) => [
'id' => $meetup->id, 'id' => $meetup->id,
'name' => $meetup->name, 'name' => $meetup->name,
'country' => $meetup->city->country->code,
'link' => route('meetup.landing', [ 'link' => route('meetup.landing', [
'country' => $meetup->city->country->code, 'country' => $meetup->city->country->code,
'meetup' => $meetup, 'meetup' => $meetup,
@@ -122,6 +123,7 @@ class Meetups extends Component
->map(fn($meetup) => [ ->map(fn($meetup) => [
'id' => $meetup->id, 'id' => $meetup->id,
'name' => $meetup->name, 'name' => $meetup->name,
'country' => $meetup->city->country->code,
'link' => route('meetup.landing', [ 'link' => route('meetup.landing', [
'country' => $meetup->city->country->code, 'country' => $meetup->city->country->code,
'meetup' => $meetup, 'meetup' => $meetup,

View File

@@ -79,7 +79,6 @@ class VenueTable extends DataTableComponent
->withCount([ ->withCount([
'courseEvents', 'courseEvents',
]) ])
->whereHas('city.country', fn ($query) => $query->where('code', $this->country))
->orderByDesc('course_events_count') ->orderByDesc('course_events_count')
->orderBy('venues.id'); ->orderBy('venues.id');
} }

View File

@@ -79,7 +79,7 @@
]" ]"
option-label="name" option-label="name"
option-value="id" option-value="id"
option-description="city.name" option-description="description"
/> />
</x-input.group> </x-input.group>

View File

@@ -2,6 +2,18 @@
<livewire:frontend.header :country="null"/> <livewire:frontend.header :country="null"/>
{{-- MAIN --}} {{-- MAIN --}}
<section class="w-full mb-12 mt-2"> <section class="w-full mb-12 mt-2">
@can('update', $meetupEvent)
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4 flex flex-col sm:flex-row justify-end">
<x-button
:href="route('meetup.event.form', ['country' => $meetup->city->country, 'meetupEvent' => $meetupEvent])"
primary lg class="whitespace-nowrap cursor-pointer">
<i class="fa fa-thin fa-edit mr-2"></i>
{{ __('Edit') }}
</x-button>
</div>
@endcan
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4 flex flex-col sm:flex-row"> <div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4 flex flex-col sm:flex-row">
<div class="relative py-4 sm:py-4"> <div class="relative py-4 sm:py-4">

View File

@@ -2,8 +2,22 @@
<livewire:frontend.header :country="null"/> <livewire:frontend.header :country="null"/>
{{-- MAIN --}} {{-- MAIN --}}
<section class="w-full mb-12 mt-8"> <section class="w-full mb-12 mt-8">
@can('update', $meetup)
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4 flex flex-col sm:flex-row justify-end">
<x-button
:href="route('meetup.meetup.form', ['meetup' => $meetup->id, 'country' => $meetup->city->country->code])"
primary lg class="whitespace-nowrap cursor-pointer">
<i class="fa fa-thin fa-edit mr-2"></i>
{{ __('Edit') }}
</x-button>
</div>
@endcan
<div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4 flex flex-col sm:flex-row"> <div class="max-w-screen-2xl mx-auto px-2 sm:px-10 space-y-4 flex flex-col sm:flex-row">
<div class="flex flex-col sm:flex-row"> <div class="flex flex-col sm:flex-row">
<div class="sm:w-10/12 flex flex-col"> <div class="sm:w-10/12 flex flex-col">
<h1 class="mb-6 text-5xl font-extrabold leading-none tracking-normal text-gray-200 sm:text-6xl md:text-6xl lg:text-7xl md:tracking-tight"> <h1 class="mb-6 text-5xl font-extrabold leading-none tracking-normal text-gray-200 sm:text-6xl md:text-6xl lg:text-7xl md:tracking-tight">
<span <span

View File

@@ -37,7 +37,7 @@
</p> </p>
<div class="grid grid-cols-1 gap-2"> <div class="grid grid-cols-1 gap-2">
@foreach($myMeetupNames as $myMeetup) @foreach($myMeetupNames as $myMeetup)
<div class="flex items-center space-x-2"> <div class="flex flex-col sm:flex-row items-center space-x-2 space-y-1 sm:space-y-0">
<div> <div>
<a href="{{ $myMeetup['link'] }}"> <a href="{{ $myMeetup['link'] }}">
<x-badge <x-badge
@@ -45,7 +45,7 @@
label="{{ $myMeetup['name'] }}"/> label="{{ $myMeetup['name'] }}"/>
</a> </a>
</div> </div>
<div> <div class="flex flex-col sm:flex-row space-y-1 sm:space-y-0 sm:space-x-1 justify-center">
<x-badge <x-badge
x-data="{}" x-data="{}"
@click.prevent="window.navigator.clipboard.writeText('{{ $myMeetup['ics'] }}');window.$wireui.notify({title:'{{ __('Calendar Stream Url copied!') }}',description:'{{ __('Paste the calendar stream link into a compatible calendar app.') }}',icon:'success'});" @click.prevent="window.navigator.clipboard.writeText('{{ $myMeetup['ics'] }}');window.$wireui.notify({title:'{{ __('Calendar Stream Url copied!') }}',description:'{{ __('Paste the calendar stream link into a compatible calendar app.') }}',icon:'success'});"
@@ -53,6 +53,22 @@
<i class="fa fa-thin fa-calendar-circle-exclamation mr-2"></i> <i class="fa fa-thin fa-calendar-circle-exclamation mr-2"></i>
{{ __('Calendar') }} {{ __('Calendar') }}
</x-badge> </x-badge>
<a
href="{{ route('meetup.meetup.form', ['meetup' => $myMeetup['id'], 'country' => $myMeetup['country']]) }}">
<x-badge
primary lg class="whitespace-nowrap cursor-pointer">
<i class="fa fa-thin fa-edit mr-2"></i>
{{ __('Edit') }}
</x-badge>
</a>
<a
href="{{ route('meetup.table.meetupEvent', ['country' => $myMeetup['country']]) }}">
<x-badge
primary lg class="whitespace-nowrap cursor-pointer">
<i class="fa fa-thin fa-list mr-2"></i>
{{ __('Events') }}
</x-badge>
</a>
</div> </div>
</div> </div>
@endforeach @endforeach