+ @isset($view)
+ @include($view, $data ?? [])
+ @else
+
+
+
+
diff --git a/resources/views/profile/partials/addresses-form.blade.php b/resources/views/profile/partials/addresses-form.blade.php
new file mode 100644
index 0000000..8220895
--- /dev/null
+++ b/resources/views/profile/partials/addresses-form.blade.php
@@ -0,0 +1,153 @@
+
diff --git a/routes/web.php b/routes/web.php
index f37cd15..76cea56 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -9,22 +9,22 @@ use App\Http\Controllers\CardController;
use App\Http\Controllers\DavController;
use App\Http\Controllers\EventController;
use App\Http\Controllers\IcsController;
+use App\Http\Controllers\LocationController;
use App\Http\Controllers\SubscriptionController;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
-/*
-|--------------------------------------------------------------------------
-| Public pages
-|--------------------------------------------------------------------------
-*/
+/**
+ *
+ * public unauthenticated pages
+ */
Route::view('/', 'welcome');
-/*
-|--------------------------------------------------------------------------
-| Breeze starter‑kit pages
-|--------------------------------------------------------------------------
-*/
+/**
+ *
+ * starter pages
+ * @todo replace thse
+ */
Route::view('/dashboard', 'dashboard')
->middleware(['auth', 'verified'])
@@ -34,11 +34,19 @@ Route::view('/settings', 'settings')
->middleware(['auth', 'verified'])
->name('settings');
-Route::middleware('auth')->group(function () {
- /* User profile (generated by Breeze) */
- Route::get ('/profile', [ProfileController::class, 'edit' ])->name('profile.edit');
- Route::patch ('/profile', [ProfileController::class, 'update'])->name('profile.update');
- Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
+/**
+ *
+ * main authentication block
+ */
+
+Route::middleware('auth')->group(function ()
+{
+ /* user profile */
+ Route::get('/profile/view', [ProfileController::class, 'index'])->name('profile.index');
+ Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
+ Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
+ Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
+ Route::patch('/profile/addresses', [ProfileController::class, 'saveAddresses'])->name('profile.addresses.save');
/* calendar core */
Route::middleware('auth')->group(function () {
@@ -48,7 +56,7 @@ Route::middleware('auth')->group(function () {
});
/* calendar other */
- Route::middleware('auth')
+ Route::middleware(['web','auth'])
->prefix('calendar')
->name('calendar.')
->group(function () {
@@ -63,22 +71,27 @@ Route::middleware('auth')->group(function () {
// remote calendar subscriptions
Route::resource('subscriptions', SubscriptionController::class)
->except(['show']); // index, create, store, edit, update, destroy
+
// events
Route::prefix('{calendar}')->whereUuid('calendar')->group(function () {
// create & store
- Route::get ('event/create', [EventController::class, 'create'])->name('events.create');
- Route::post('event', [EventController::class, 'store' ])->name('events.store');
+ Route::get ('event/create', [EventController::class, 'create'])->name('event.create');
+ Route::post('event', [EventController::class, 'store' ])->name('event.store');
// read
- Route::get ('event/{event}', [EventController::class, 'show' ])->name('events.show');
+ Route::get ('event/{event}', [EventController::class, 'show' ])->name('event.show');
// edit & update
- Route::get ('event/{event}/edit', [EventController::class, 'edit' ])->name('events.edit');
- Route::put ('event/{event}', [EventController::class, 'update'])->name('events.update');
+ Route::get ('event/{event}/edit', [EventController::class, 'edit' ])->name('event.edit');
+ Route::put ('event/{event}', [EventController::class, 'update'])->name('event.update');
// delete
- Route::delete('event/{event}', [EventController::class, 'destroy'])->name('events.destroy');
+ Route::delete('event/{event}', [EventController::class, 'destroy'])->name('event.destroy');
});
});
- /** address books */
+ // autocomplete suggestions for event locations
+ Route::get('/location/suggest', [LocationController::class, 'suggest'])
+ ->name('location.suggest');
+
+ // address books
Route::resource('book', BookController::class)
->names('book') // books.index, books.create, …
->parameter('book', 'book'); // {book} binding