From c1ebd9244a7a30e511acaaafa8051df27ab8c55e Mon Sep 17 00:00:00 2001 From: fsociety Date: Tue, 24 Sep 2024 17:21:59 +0200 Subject: [PATCH] feat: add signal field to meetups - Added a new field "Signal" to the meetups form - Included validation for the new signal field in the form backend - Updated landing page to display the signal link if available - Added display of the signal link in the meetup action column - Created a new migration to add the signal field to the meetups table - Included the signal field in the API endpoints for meetups and events. --- app/Http/Livewire/Meetup/Form/MeetupForm.php | 1 + ...1929_add_signal_field_to_meetups_table.php | 27 +++++++++++++++++++ .../views/columns/meetups/action.blade.php | 13 +++++++++ .../meetup/form/meetup-form.blade.php | 6 +++++ .../meetup/landing-page-event.blade.php | 11 ++++++++ .../livewire/meetup/landing-page.blade.php | 9 +++++++ routes/api.php | 2 ++ 7 files changed, 69 insertions(+) create mode 100644 database/migrations/2024_09_24_151929_add_signal_field_to_meetups_table.php diff --git a/app/Http/Livewire/Meetup/Form/MeetupForm.php b/app/Http/Livewire/Meetup/Form/MeetupForm.php index a2213908..ad3b98bc 100644 --- a/app/Http/Livewire/Meetup/Form/MeetupForm.php +++ b/app/Http/Livewire/Meetup/Form/MeetupForm.php @@ -46,6 +46,7 @@ class MeetupForm extends Component 'meetup.twitter_username' => 'string|regex:/^[A-z0-9!@]+$/|nullable|required_without_all:meetup.webpage,meetup.telegram_link,meetup.nostr,meetup.matrix_group', 'meetup.matrix_group' => 'string|nullable|required_without_all:meetup.webpage,meetup.telegram_link,meetup.nostr,meetup.twitter_username', 'meetup.simplex' => 'string|nullable', + 'meetup.signal' => 'string|nullable', ]; } diff --git a/database/migrations/2024_09_24_151929_add_signal_field_to_meetups_table.php b/database/migrations/2024_09_24_151929_add_signal_field_to_meetups_table.php new file mode 100644 index 00000000..bd4797e9 --- /dev/null +++ b/database/migrations/2024_09_24_151929_add_signal_field_to_meetups_table.php @@ -0,0 +1,27 @@ +string('signal', 255 * 2)->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meetups', function (Blueprint $table) { + // + }); + } +}; diff --git a/resources/views/columns/meetups/action.blade.php b/resources/views/columns/meetups/action.blade.php index 0e08fa7c..87f91a01 100644 --- a/resources/views/columns/meetups/action.blade.php +++ b/resources/views/columns/meetups/action.blade.php @@ -68,6 +68,19 @@ @endif + @if($row->signal) +
+ + + {{ __('Signal') }} + +
+ @endif @if($row->webpage)
+ + + + @endif
+
+ @if($meetup->signal) + + + {{ __('Signal') }} + + @endif +
@if($meetup->nostr && str($meetup->nostr)->contains('npub1')) @endif + @if($meetup->signal) + + + {{ __('Signal') }} + + @endif @if($meetup->nostr && str($meetup->nostr)->contains('npub1')) $meetup->twitter_username, 'website' => $meetup->webpage, 'simplex' => $meetup->simplex, + 'signal' => $meetup->signal, 'nostr' => $meetup->nostr, 'next_event' => $meetup->nextEvent, 'intro' => $request->has('withIntro') ? $meetup->intro : null, @@ -134,6 +135,7 @@ Route::middleware([]) 'meetup.twitter_username' => $event->meetup->twitter_username, 'meetup.website' => $event->meetup->webpage, 'meetup.simplex' => $event->meetup->simplex, + 'meetup.signal' => $event->meetup->signal, 'meetup.nostr' => $event->meetup->nostr, ] );