diff --git a/.env.example b/.env.example index 37b6040f..88f63544 100644 --- a/.env.example +++ b/.env.example @@ -63,4 +63,7 @@ AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false -VITE_APP_NAME="${APP_NAME}" \ No newline at end of file +VITE_APP_NAME="${APP_NAME}" + +TURNSTILE_SITE_KEY= +TURNSTILE_SECRET_KEY= diff --git a/.run/dev.run.xml b/.run/dev.run.xml new file mode 100644 index 00000000..7b1adad0 --- /dev/null +++ b/.run/dev.run.xml @@ -0,0 +1,18 @@ + + + + + + @endif -@endsection +@endsection \ No newline at end of file diff --git a/resources/views/auth/passwords/email.blade.php b/resources/views/auth/passwords/email.blade.php index 96c34948..d63aac6f 100644 --- a/resources/views/auth/passwords/email.blade.php +++ b/resources/views/auth/passwords/email.blade.php @@ -14,13 +14,13 @@ @endif -

Vul uw studentnummer in, en wij sturen een wachtwoord herstelmail naar het e-mailadres dat aan uw account is gekoppeld.

+

Vul uw login nummer in, en wij sturen een wachtwoord herstellink naar het e-mailadres dat aan uw account is gekoppeld.

@csrf
- +
@@ -37,7 +37,7 @@
diff --git a/resources/views/auth/passwords/reset.blade.php b/resources/views/auth/passwords/reset.blade.php index dccf6c65..00e18da8 100644 --- a/resources/views/auth/passwords/reset.blade.php +++ b/resources/views/auth/passwords/reset.blade.php @@ -5,7 +5,7 @@
-
{{ __('Reset Password') }}
+
{{ __('Wachtwoord Herstellen') }}
@@ -14,10 +14,10 @@
- +
- + @error('email') @@ -28,10 +28,10 @@
- +
- + @error('password') @@ -42,7 +42,7 @@
- +
@@ -52,7 +52,7 @@
diff --git a/resources/views/components/city-selector.blade.php b/resources/views/components/city-selector.blade.php new file mode 100644 index 00000000..2da042c6 --- /dev/null +++ b/resources/views/components/city-selector.blade.php @@ -0,0 +1,837 @@ +@props(['selectedCity' => null, 'selectedPostalCode' => null, 'hasError' => false]) + +
+
+
+
+ + + + + + + +
+
+ + + + +
+
+ + +
+
+ + +
+ + +
    + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+ + + Bijv. 3000 +
+
+ + +
+
+
+ +
+
+
+ + + + + + diff --git a/resources/views/emails/password-reset.blade.php b/resources/views/emails/password-reset.blade.php index dbc8d299..53d56e80 100644 --- a/resources/views/emails/password-reset.blade.php +++ b/resources/views/emails/password-reset.blade.php @@ -47,18 +47,37 @@
-

Uw wachtwoord is gereset

+

Wachtwoord Herstel

Beste {{ $user->login }},

-

Uw wachtwoord voor TechReizen is gereset volgens uw verzoek. Hieronder vindt u uw nieuwe inloggegevens:

- -

Gebruikersnaam: {{ $user->login }}

-

Nieuw wachtwoord: {{ $password }}

- -

U kunt inloggen met deze gegevens via onze website.

- -

Wij raden u aan om dit wachtwoord zo snel mogelijk te wijzigen na het inloggen.

+ @if(isset($resetUrl)) +

U heeft een verzoek ingediend om uw wachtwoord te herstellen. Klik op de onderstaande link om een nieuw wachtwoord in te stellen:

+ +

+ + Wachtwoord Herstellen + +

+ +

U kunt deze link ook kopiëren en in uw browser plakken:

+

+ {{ $resetUrl }} +

+ +

Deze link is 60 minuten geldig.

+ +

Als u geen wachtwoord herstel heeft aangevraagd, kunt u deze e-mail negeren en blijft uw huidige wachtwoord geldig.

+ @else +

Uw wachtwoord voor TechReizen is gereset volgens uw verzoek. Hieronder vindt u uw nieuwe inloggegevens:

+ +

Gebruikersnaam: {{ $user->login }}

+

Nieuw wachtwoord: {{ $password }}

+ +

U kunt inloggen met deze gegevens via onze website.

+ +

Wij raden u aan om dit wachtwoord zo snel mogelijk te wijzigen na het inloggen.

+ @endif

Als u dit verzoek niet heeft gedaan, neem dan direct contact op met onze klantenservice.

diff --git a/resources/views/groups/create.blade.php b/resources/views/groups/create.blade.php new file mode 100644 index 00000000..ffe775b5 --- /dev/null +++ b/resources/views/groups/create.blade.php @@ -0,0 +1,60 @@ +@extends('layouts.app') + +@section('content') +
+ + +
+
+

Nieuwe Groep Aanmaken

+

Maak een nieuwe groep voor deze reis

+
+ +
+ @if ($errors->any()) +
+

Er zijn fouten gevonden:

+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + + + @csrf + +
+ + +
+ +
+ + +

Optioneel. Geef een korte beschrijving van de groep.

+
+ +
+ + +
+ +
+ +
+ +
+
+
+@endsection diff --git a/resources/views/groups/edit.blade.php b/resources/views/groups/edit.blade.php new file mode 100644 index 00000000..994ace78 --- /dev/null +++ b/resources/views/groups/edit.blade.php @@ -0,0 +1,68 @@ +@extends('layouts.app') + +@section('content') +
+
+
+ + +
+
+
Groep Bewerken
+
+
+
+ @csrf + @method('PUT') + +
+ + + @error('name') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('description') +
{{ $message }}
+ @enderror +
+ +
+ + +
Het huidige aantal leden is {{ $group->getMemberCount() }}.
+ @error('max_members') +
{{ $message }}
+ @enderror +
+ +
+
+ isLocked() ? 'checked' : '' }}> + +
Vergrendelde groepen kunnen geen nieuwe leden accepteren.
+
+
+ +
+ +
+
+
+
+
+
+
+@endsection diff --git a/resources/views/groups/index.blade.php b/resources/views/groups/index.blade.php new file mode 100644 index 00000000..d01c112f --- /dev/null +++ b/resources/views/groups/index.blade.php @@ -0,0 +1,151 @@ +@extends('layouts.app') + +@section('content') +
+
+
+ + @if(session('success')) + + @endif + + @if(session('error')) + + @endif + + +
+
+
Mijn Groepen
+
+
+ @if(count($myGroups) > 0) +
+ @foreach($myGroups as $group) +
+
+
+
+
+ {{ $group->name }} + @if($group->isLocked()) + + @endif +
+
+

{{ Str::limit($group->description, 100) }}

+ +
+
+ + {{ $group->getMemberCount() }}/{{ $group->max_members }} + +
+
+ + Bekijk + +
+ @csrf + @method('DELETE') + @if(!$group->isFull() && !$group->isLocked()) + + @csrf + +
+ @elseif($group->isLocked()) + + @endif + +
+
+
+
+
+ @endforeach +
+ @else +
+ +

Je bent nog geen lid van een groep.

+
+ @endif +
+
+ + +
+
+
Beschikbare Groepen
+
+
+ @if(count($availableGroups) > 0) +
+ @foreach($availableGroups as $group) +
+
+
+
+
+ {{ $group->name }} + @if($group->isLocked()) + + @endif +
+
+

{{ Str::limit($group->description, 100) }}

+ +
+
+ + {{ $group->getMemberCount() }}/{{ $group->max_members }} + +
+
+ + Bekijk + + + @if(!$group->isFull() && !$group->isLocked()) +
+ @csrf + +
+ @elseif($group->isLocked()) + + @else + + @endif +
+
+
+
+
+ @endforeach +
+ @else +
+ +

Er zijn geen beschikbare groepen om lid van te worden.

+
+ @endif +
+
+
+
+
+@endsection diff --git a/resources/views/groups/show.blade.php b/resources/views/groups/show.blade.php new file mode 100644 index 00000000..dcfb0acd --- /dev/null +++ b/resources/views/groups/show.blade.php @@ -0,0 +1,273 @@ +@extends('layouts.app') + +@section('content') +
+
+
+ + + @if(session('success')) + + @endif + + @if(session('error')) + + @endif + + @if(session('info')) + + @endif + +
+
+
+ {{ $group->name }} + @if($group->isLocked()) + + Vergrendeld + + @endif +
+ + @if($isGuide) +
+ + Bewerken + +
+ @csrf + +
+
+ @endif +
+ +
+

{{ $group->description }}

+ +
+
+
Groepsleden ({{ $group->getMemberCount() }}/{{ $group->max_members }})
+
+ + @if (!$isGuide && !$isMember && !$group->isFull() && !$group->isLocked()) +
+ @csrf + +
+ @elseif (!$isGuide && !$isMember && ($group->isFull() || $group->isLocked())) + + @elseif (!$isGuide && $isMember) + @if($group->isLocked()) + + @else +
+ @csrf + @method('DELETE') + +
+ @endif + @endif +
+ + @if ($group->members->count() > 0) +
+ @foreach ($group->members as $member) +
+
+
+
+
+
+ {{ $member->first_name }} {{ $member->last_name }} + @php + $isGuideMember = $member->user && $member->user->role === 'guide'; + @endphp + @if($isGuideMember) + + Begeleider + + @endif +
+
{{ $member->email }}
+
+
+
+ @if($isGuideMember) + + @else + + @endif +
+
+
+ +
+

+ + @if($isGuideMember) + Begeleider + @else + {{ $member->major ? $member->major->name : 'Onbekend' }} + @endif +

+

{{ $member->phone }}

+
+ + @if($isGuide) +
+
+ @csrf + @method('DELETE') + +
+
+ @endif +
+
+
+ @endforeach +
+ @else +
+ +

Deze groep heeft nog geen leden.

+
+ @endif + + @if($isGuide) +
+
+
Voeg leden toe aan groep
+
+
+
+ @csrf +
+
+ + + +
    +
  • Je kunt meerdere reizigers selecteren door CTRL ingedrukt te houden tijdens het klikken.
  • +
  • Op Mac, gebruik CMD in plaats van CTRL.
  • +
  • Deze groep heeft ruimte voor {{ $group->max_members - $group->getMemberCount() }} nieuwe leden.
  • +
+
+
+
+
+ Je hebt 0 reizigers geselecteerd. +
+
+ +
+
+
+
+
+
+ + @push('scripts') + + @endpush + @endif +
+
+
+
+
+@endsection diff --git a/resources/views/guest/registration/basic-info.blade.php b/resources/views/guest/registration/basic-info.blade.php index 36ca44ca..c147303e 100644 --- a/resources/views/guest/registration/basic-info.blade.php +++ b/resources/views/guest/registration/basic-info.blade.php @@ -43,10 +43,10 @@
- +
+ name="student_number" value="{{ old('student_number', $registration->student_number) }}" required> @error('student_number') {{ $message }} @@ -57,46 +57,49 @@
-
- -
- - @error('education') - - {{ $message }} - - @enderror + + -
- -
- - @error('major') - - {{ $message }} - - @enderror +
+ +
+ + @error('major') + + {{ $message }} + + @enderror +
- +
+ +
diff --git a/resources/views/guest/registration/contact-info.blade.php b/resources/views/guest/registration/contact-info.blade.php index 2463d75f..f5c7c0dd 100644 --- a/resources/views/guest/registration/contact-info.blade.php +++ b/resources/views/guest/registration/contact-info.blade.php @@ -169,6 +169,11 @@ function toggleMedicalDetails() { medicalInfoYes.addEventListener('change', toggleMedicalDetails); medicalInfoNo.addEventListener('change', toggleMedicalDetails); + + // Ensure the form state is updated immediately after validation errors + document.querySelector('form').addEventListener('submit', function () { + toggleMedicalDetails(); + }); }); @endsection diff --git a/resources/views/guest/registration/personal-info.blade.php b/resources/views/guest/registration/personal-info.blade.php index 825ea761..59d0d7a7 100644 --- a/resources/views/guest/registration/personal-info.blade.php +++ b/resources/views/guest/registration/personal-info.blade.php @@ -1,192 +1,287 @@ - @extends('layouts.app') @section('content') -
-
-
-
-
-
- {{ __('Registratie - Persoonlijke Informatie') }} -
+
+
+
+
+
+
+ {{ __('Registratie - Persoonlijke Informatie') }}
+
-
- +
+ -
- @csrf + + @csrf -
-
{{ __('Persoonlijke Informatie') }}
-
+
+
{{ __('Persoonlijke Informatie') }}
+
-
- -
- - @error('first_name') - - {{ $message }} - - @enderror -
+
+ +
+ + @error('first_name') + + {{ $message }} + + @enderror
+
-
- -
- - @error('last_name') - - {{ $message }} - - @enderror -
+
+ +
+ + @error('last_name') + + {{ $message }} + + @enderror
+
-
- -
- - @error('gender') - - {{ $message }} - - @enderror -
+
+ +
+ + @error('gender') + + {{ $message }} + + @enderror
+
-
- -
- - @error('date_of_birth') - - {{ $message }} - - @enderror -
+
+ +
+ + @error('date_of_birth') + + {{ $message }} + + @enderror
+
-
- -
- - @error('place_of_birth') - - {{ $message }} - - @enderror -
+
+ +
+ + @error('place_of_birth') + + {{ $message }} + + @enderror
+
-
- -
- -
+
+ +
+
-
-
{{ __('Adres Informatie') }}
-
-
- -
- - @error('address') - - {{ $message }} - - @enderror -
+
+
+
{{ __('Adres Informatie') }}
+
+ +
+ + @error('address') + + {{ $message }} + + @enderror +
+
-
- -
- - @error('city') - - {{ $message }} - - @enderror +
+ +
+
+
+
Zoek een gemeente of voeg er een toe
+ + @error('city') + + {{ $message }} + + @enderror
+
- @push('scripts') - - @endpush - -
- -
- - @error('country') - - {{ $message }} - - @enderror -
+ + + +
+ +
+ + @error('country') + + {{ $message }} + + @enderror
+
-
-
- - {{ __('Vorige') }} - - -
+
+
+ + {{ __('Vorige') }} + +
- -
+
+
+
+ + + + + + @endsection + +@push('scripts') + + + +@endpush diff --git a/resources/views/guide/groups/index.blade.php b/resources/views/guide/groups/index.blade.php new file mode 100644 index 00000000..48e1f991 --- /dev/null +++ b/resources/views/guide/groups/index.blade.php @@ -0,0 +1,123 @@ +@extends('layouts.app') + +@section('content') +
+
+
+ + @if(session('success')) + + @endif + + @if(session('error')) + + @endif + +
+
+
Groepen Beheren
+ + Nieuwe Groep + +
+
+ @if(count($groups) > 0) +
+ + + + + + + + + + + + + @foreach($groups as $group) + @php + $guideMembers = $group->members->filter(function($member) { + return $member->user && $member->user->role === 'guide'; + }); + @endphp + + + + + + + + + @endforeach + +
NaamBeschrijvingLedenStatusBegeleidersActies
{{ $group->name }}{{ Str::limit($group->description, 50) }}{{ $group->memberCount }}/{{ $group->max_members }} + @if($group->isLocked()) + + Vergrendeld + + @else + + Open + + @endif + + @if($guideMembers->count() > 0) + @foreach($guideMembers as $guide) + + + {{ $guide->first_name }} {{ $guide->last_name }} + + @if(!$loop->last)   @endif + @endforeach + @else + Geen begeleiders + @endif + +
+ + + + + + +
+ @csrf + +
+ +
+ @csrf + @method('DELETE') +
+
+
+
+ @else +
+ +

Er zijn nog geen groepen aangemaakt voor deze reis.

+ + Nieuwe Groep Aanmaken + +
+ @endif +
+
+
+
+
+@endsection diff --git a/resources/views/guide/groups/show.blade.php b/resources/views/guide/groups/show.blade.php new file mode 100644 index 00000000..4c5982b4 --- /dev/null +++ b/resources/views/guide/groups/show.blade.php @@ -0,0 +1,262 @@ +@extends('layouts.app') + +@section('content') +
+ +
+
+
+
+

{{ $group->name }}

+ + {{ $group->trip->name }} + +
+

Groep beheer en ledenlijst

+
+ +
+
+ +
+ + @if (session('success')) + + @endif + + @if (session('error')) + + @endif + + +
+

Groepsinformatie

+ +
+
+
+

Beschrijving

+

{{ $group->description ?: 'Geen beschrijving beschikbaar' }}

+
+
+
+

Leden

+
+
+
+
+ + {{ $group->getMemberCount() }}/{{ $group->max_members }} + + ({{ min(100, ($group->getMemberCount() / $group->max_members) * 100) }}%) + + +
+
+
+

Aangemaakt door

+
+
+ +
+ {{ $group->creator->name ?? 'Onbekend' }} +
+
+
+
+
+
+ + +
+
+

Groepsleden beheren

+
+ +
+
+ + @if ($members->isEmpty()) +
+
+ +
+

Geen groepsleden

+

+ Deze groep heeft nog geen leden. Studenten kunnen zelf lid worden van deze groep. +

+
+ @else +
+ @csrf + @method('DELETE') + +
+
+ + + + + + + + + + + + @foreach ($members as $member) + + + + + + + + @endforeach + +
+ + NaamActies
+ @if (!($member->user && $member->user->canManageGroups())) + + @endif + +
+
+ +
+
+
{{ $member->first_name }} {{ $member->last_name }}
+ @if ($member->user && $member->user->canManageGroups()) +
Begeleider
+ @endif +
{{ $member->email }}
+
+
+
+ @if (!($member->user && $member->user->canManageGroups())) + + @else + + Begeleider + + @endif +
+
+
+ +
+ +
+
+ @endif +
+
+ + + +
+ +@push('scripts') + +@endpush +@endsection diff --git a/resources/views/guide/home.blade.php b/resources/views/guide/home.blade.php index e6e48fad..014d0c89 100644 --- a/resources/views/guide/home.blade.php +++ b/resources/views/guide/home.blade.php @@ -1,24 +1,40 @@ @extends('layouts.app') @section('content') -
-
-
-
-
{{ __('Dashboard') }}
- -
- @if (session('status')) - - @endif -

- {{ __('You are a guide!') }} -

+
+
+
+
+
+ @if (session('status')) + + @endif +
+
{{ __('Dashboard') }}
+ +
+

+ {{ __('You are a guide!') }} +

+
+
+
+
@endsection diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 2a28e462..c4d94928 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -8,103 +8,256 @@ - {{ config('app.name', 'Laravel') }} + {{ config('app.name', 'Techreizen') }} - - @php - $viteManifestExists = file_exists(public_path('build/manifest.json')); - @endphp + + + + + - @if($viteManifestExists) - @vite(['resources/sass/app.scss', 'resources/js/app.js']) - @else - - - - - @endif + + + + + + + + + + + + -
-
-
logo ucll
-
-
-

TECHNOLOGIE

-
-
-

internationalisering - studiereizen

-
+ +
+
+
+ logo ucll +
+
+

TECHNOLOGIE

+

internationalisering - studiereizen

-
- +
+ -
- @yield('content') -
-
- +
+ @yield('content') +
+ + @stack('scripts') + diff --git a/resources/views/traveller/home.blade.php b/resources/views/traveller/home.blade.php index 5321c008..8e453abb 100644 --- a/resources/views/traveller/home.blade.php +++ b/resources/views/traveller/home.blade.php @@ -1,18 +1,36 @@ @extends('layouts.app') @section('content') +
+
+ +
+
+ @if (session('status')) + + @endif
{{ __('Dashboard') }}
- @if (session('status')) - - @endif

{{ __('You are a traveller!') }}

diff --git a/resources/views/vendor/notifications/email.blade.php b/resources/views/vendor/notifications/email.blade.php new file mode 100644 index 00000000..c44e9ea7 --- /dev/null +++ b/resources/views/vendor/notifications/email.blade.php @@ -0,0 +1,58 @@ +@component('mail::message') +{{-- Greeting --}} +@if (! empty($greeting)) +# {{ $greeting }} +@else +@if ($level === 'error') +# {{ __('Oeps!') }} +@else +# {{ __('Hallo!') }} +@endif +@endif + +{{-- Intro Lines --}} +@foreach ($introLines as $line) +{{ $line }} + +@endforeach + +{{-- Action Button --}} +@isset($actionText) + $level, + default => 'primary', + }; +?> +@component('mail::button', ['url' => $actionUrl, 'color' => $color]) +{{ $actionText }} +@endcomponent +@endisset + +{{-- Outro Lines --}} +@foreach ($outroLines as $line) +{{ $line }} + +@endforeach + +{{-- Salutation --}} +@if (! empty($salutation)) +{{ $salutation }} +@else +{{ __('Met vriendelijke groet,') }} + +{{ config('app.name') }} +@endif + +{{-- Subcopy --}} +@isset($actionText) +@slot('subcopy') +@lang( + "Als u problemen heeft met het klikken op de knop \":actionText\", kopieer en plak dan de onderstaande URL in uw webbrowser:", + [ + 'actionText' => $actionText, + ] +) [{{ $displayableActionUrl }}]({{ $actionUrl }}) +@endslot +@endisset +@endcomponent diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 00000000..da28c460 --- /dev/null +++ b/routes/api.php @@ -0,0 +1,8 @@ +name('home'); @@ -12,6 +14,18 @@ Auth::routes(); +// API Routes for city selection - moved outside auth middleware to be accessible +Route::prefix('api')->group(function () { + Route::get('/cities/search', [App\Http\Controllers\Api\CityController::class, 'search'])->name('api.cities.search'); + Route::post('/cities', [App\Http\Controllers\Api\CityController::class, 'store'])->name('api.cities.store'); +}); + +// Common group routes accessible to both travelers and guides +Route::middleware(['auth'])->group(function () { + Route::get('/groups', [GroupController::class, 'index'])->name('groups.index'); + Route::get('/groups/{group}', [GroupController::class, 'show'])->name('groups.show'); +}); + /*------------------------------------------ -------------------------------------------- All guest Routes List @@ -22,6 +36,8 @@ Route::get('/disclaimerPage', [HomeController::class, 'disclaimerPage'])->name('guest.disclaimer'); Route::post('/disclaimerPage', [HomeController::class, 'acceptDisclaimer'])->name('guest.disclaimer.accept'); + Route::get('/guest/home', [HomeController::class, 'index'])->name('welcome'); + // Guest Registration Routes Route::prefix('registration')->group(function () { // Step 1: Basic Info @@ -47,6 +63,7 @@ ->name('guest.registration.confirmation'); Route::post('/confirmation', [GuestRegistrationController::class, 'submitConfirmation']) ->name('guest.registration.confirmation.submit'); + }); Route::get('/register', function () { @@ -60,8 +77,11 @@ -------------------------------------------- --------------------------------------------*/ Route::middleware(['auth', 'user-access:traveller'])->group(function () { - Route::get('/traveller/home', [HomeController::class, 'travellerHome'])->name('traveller.home'); + + // Traveler-specific group actions + Route::post('/groups/{group}/join', [GroupController::class, 'join'])->name('groups.join'); + Route::delete('/groups/{group}/leave', [GroupController::class, 'leave'])->name('groups.leave'); }); /*------------------------------------------ @@ -70,8 +90,23 @@ -------------------------------------------- --------------------------------------------*/ Route::middleware(['auth', 'user-access:guide'])->group(function () { + Route::get('/guide/home', [HomeController::class, 'guideHome'])->name('guide.home'); + + // Guide-specific group management routes + Route::get('/guide/groups', [GroupController::class, 'guideIndex'])->name('guide.groups.index'); + Route::get('/guide/groups/create', [GroupController::class, 'create'])->name('groups.create'); + Route::post('/guide/groups', [GroupController::class, 'store'])->name('groups.store'); + Route::get('/guide/groups/{group}', [GroupController::class, 'show'])->name('guide.groups.show'); + Route::get('/guide/groups/{group}/edit', [GroupController::class, 'edit'])->name('groups.edit'); + Route::put('/guide/groups/{group}', [GroupController::class, 'update'])->name('groups.update'); + Route::delete('/guide/groups/{group}', [GroupController::class, 'destroy'])->name('groups.destroy'); + Route::post('/guide/groups/{group}/add-member', [GroupController::class, 'addMember'])->name('groups.add-member'); + Route::delete('/guide/groups/{group}/traveller/{traveller}', [GroupController::class, 'removeTraveller'])->name('groups.remove-traveller'); + + // Add toggle lock route + Route::post('/guide/groups/{group}/toggle-lock', [GroupController::class, 'toggleLock'])->name('groups.toggle-lock'); }); /*------------------------------------------ diff --git a/vite.config.js b/vite.config.js index dbbf3330..ede29223 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,14 +1,29 @@ import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; +import tailwindcss from 'tailwindcss'; +import autoprefixer from 'autoprefixer'; export default defineConfig({ plugins: [ laravel({ input: [ - 'resources/sass/app.scss', - 'resources/js/app.js', + 'resources/css/app.css', + 'resources/js/app.js' ], refresh: true, }), ], + resolve: { + alias: { + '@': '/resources', + }, + }, + css: { + postcss: { + plugins: [ + tailwindcss(), + autoprefixer(), + ], + }, + } });