diff --git a/app/Http/Livewire/Meetup/LandingPage.php b/app/Http/Livewire/Meetup/LandingPage.php index f35ecdd7..825e6f24 100644 --- a/app/Http/Livewire/Meetup/LandingPage.php +++ b/app/Http/Livewire/Meetup/LandingPage.php @@ -12,6 +12,7 @@ class LandingPage extends Component { public Meetup $meetup; public Country $country; + public ?int $activeEvent = null; public ?int $year = null; @@ -25,20 +26,27 @@ class LandingPage extends Component public function render() { return view('livewire.meetup.landing-page', [ - 'events' => MeetupEvent::query() - ->with([ - 'meetup.city.country', - ]) - ->where('meetup_events.meetup_id', $this->meetup->id) - ->where('meetup_events.start', '>=', now()) - ->get() - ->map(fn($event) => [ - 'id' => $event->id, - 'startDate' => $event->start, - 'endDate' => $event->start->addHours(1), - 'location' => $event->location, - 'description' => $event->description, - ]), + 'meetupEvents' => MeetupEvent::query() + ->with([ + 'meetup.city.country', + ]) + ->where('meetup_events.meetup_id', $this->meetup->id) + ->where('meetup_events.start', '>=', now()) + ->get(), + 'events' => MeetupEvent::query() + ->with([ + 'meetup.city.country', + ]) + ->where('meetup_events.meetup_id', $this->meetup->id) + ->where('meetup_events.start', '>=', now()) + ->get() + ->map(fn($event) => [ + 'id' => $event->id, + 'startDate' => $event->start, + 'endDate' => $event->start->addHours(1), + 'location' => $event->location, + 'description' => $event->description, + ]), ]) ->layout('layouts.guest', [ 'SEOData' => new SEOData( @@ -48,4 +56,9 @@ class LandingPage extends Component ) ]); } + + public function showEvent($id) + { + $this->activeEvent = $id; + } } diff --git a/app/Http/Livewire/Tables/MeetupEventTable.php b/app/Http/Livewire/Tables/MeetupEventTable.php index dc12e054..d242aef8 100644 --- a/app/Http/Livewire/Tables/MeetupEventTable.php +++ b/app/Http/Livewire/Tables/MeetupEventTable.php @@ -71,10 +71,9 @@ class MeetupEventTable extends DataTableComponent ->sortable() ->collapseOnMobile(), Column::make(__('Link'), 'link') - ->format( - fn($value, $row, Column $column) => view('columns.meetup_events.link')->withRow($row) - ) - ->sortable(), + ->label( + fn($row, Column $column) => view('columns.meetup_events.link')->withRow($row)->withCountry($this->country) + ), ]; } diff --git a/app/Http/Livewire/Tables/MeetupTable.php b/app/Http/Livewire/Tables/MeetupTable.php index ef055386..6b9f06ed 100644 --- a/app/Http/Livewire/Tables/MeetupTable.php +++ b/app/Http/Livewire/Tables/MeetupTable.php @@ -53,12 +53,7 @@ class MeetupTable extends DataTableComponent ) ->searchable(fn($builder, $term) => $builder->where('meetups.name', 'ilike', '%'.$term.'%')) ->sortable(), - Column::make(__('Link'), 'link') - ->format( - fn($value, $row, Column $column) => view('columns.meetups.link')->withRow($row) - ) - ->sortable(), - Column::make(__('Links'),) + Column::make(__('Links')) ->label( fn($row, Column $column) => view('columns.meetups.action') ->withRow($row) diff --git a/app/Nova/Meetup.php b/app/Nova/Meetup.php index 84e21102..45592c2d 100644 --- a/app/Nova/Meetup.php +++ b/app/Nova/Meetup.php @@ -70,8 +70,14 @@ class Meetup extends Resource ->creationRules('unique:meetups,name') ->updateRules('unique:meetups,name,{{resourceId}}'), - Text::make('Link') - ->rules('required', 'string'), + Text::make(__('Telegram-Link'), 'telegram_link') + ->rules('url', 'nullable'), + + Text::make(__('Website'), 'webpage') + ->rules('url', 'nullable'), + + Text::make(__('Twitter Username'), 'twitter_username') + ->rules('string', 'nullable'), BelongsTo::make(__('City'), 'city', City::class) ->searchable() diff --git a/database/migrations/2023_01_16_143622_add_links_to_meetups_table.php b/database/migrations/2023_01_16_143622_add_links_to_meetups_table.php new file mode 100644 index 00000000..e5ad39dc --- /dev/null +++ b/database/migrations/2023_01_16_143622_add_links_to_meetups_table.php @@ -0,0 +1,33 @@ +renameColumn('link', 'telegram_link'); + $table->string('webpage') + ->nullable(); + $table->string('twitter_username') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + * @return void + */ + public function down() + { + Schema::table('meetups', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_16_144114_change_telegram_link_on_meetups_table.php b/database/migrations/2023_01_16_144114_change_telegram_link_on_meetups_table.php new file mode 100644 index 00000000..0877893a --- /dev/null +++ b/database/migrations/2023_01_16_144114_change_telegram_link_on_meetups_table.php @@ -0,0 +1,29 @@ +string('telegram_link') + ->nullable() + ->change(); + }); + } + + /** + * Reverse the migrations. + * @return void + */ + public function down() + { + // + } +}; diff --git a/resources/lang/en.json b/resources/lang/en.json index d7745afc..e9285332 100644 --- a/resources/lang/en.json +++ b/resources/lang/en.json @@ -635,5 +635,8 @@ "logins": "", "points": "", "New meetup created: :title": "New meetup created: :title", - "Submit new book case": "" + "Submit new book case": "", + "Telegram-Link": "", + "Website": "", + "Twitter Username": "" } diff --git a/resources/views/columns/meetup_events/link.blade.php b/resources/views/columns/meetup_events/link.blade.php index 4325784c..0fae0517 100644 --- a/resources/views/columns/meetup_events/link.blade.php +++ b/resources/views/columns/meetup_events/link.blade.php @@ -1,8 +1,43 @@