Add path to nutrient-based journal entry

This commit is contained in:
Christopher C. Wells 2021-02-06 20:12:42 -08:00
parent 6c61d5d103
commit 0e89f19f27
4 changed files with 27 additions and 15 deletions

View File

@ -77,11 +77,13 @@ class JournalEntryController extends Controller
/** /**
* Show the form for creating a journal entry from nutrients directly. * Show the form for creating a journal entry from nutrients directly.
*/ */
public function createFromNutrients(): View public function createFromNutrients(Request $request): View
{ {
$date = $request->date ?? Carbon::now()->toDateString();
return view('journal-entries.create-from-nutrients') return view('journal-entries.create-from-nutrients')
->with('meals', JournalEntry::$meals) ->with('meals', JournalEntry::$meals)
->with('units', Nutrients::$units); ->with('units', Nutrients::$units)
->with('default_date', Carbon::createFromFormat('Y-m-d', $date));
} }
/** /**

View File

@ -1,6 +1,11 @@
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">Add Nutrient Journal Entry</h2> <div class="flex justify-between items-center">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">Add Entry</h2>
<a href="{{ route('journal-entries.create', ['date' => $default_date->format('Y-m-d')]) }}" class="inline-flex items-center rounded-md font-semibold text-white p-2 bg-green-500 tracking-widest hover:bg-green-700 active:bg-green-900 focus:outline-none focus:border-green-900 focus:ring ring-green-600 disabled:opacity-25 transition ease-in-out duration-150">
Add by Recipes/Food
</a>
</div>
</x-slot> </x-slot>
<div class="py-12"> <div class="py-12">
@ -9,24 +14,24 @@
<div class="p-6 bg-white border-b border-gray-200"> <div class="p-6 bg-white border-b border-gray-200">
<form method="POST" action="{{ route('journal-entries.store.from-nutrients') }}"> <form method="POST" action="{{ route('journal-entries.store.from-nutrients') }}">
@csrf @csrf
<div class="flex mb-4 space-x-4"> <div class="flex flex-col space-y-4 md:flex-row md:space-x-4 md:space-y-0 w-full mb-4">
<!-- Date --> <!-- Date -->
<div> <div class="w-full">
<x-inputs.label for="date" value="Date"/> <x-inputs.label for="date" value="Date"/>
<x-inputs.input name="date" <x-inputs.input name="date"
type="date" type="date"
class="block mt-1" class="block w-full"
:value="old('date', \Illuminate\Support\Carbon::now()->toDateString())" :value="old('date', $default_date->toDateString())"
required /> required />
</div> </div>
<!-- Meal --> <!-- Meal -->
<div> <div class="w-full">
<x-inputs.label for="meal" value="Meal"/> <x-inputs.label for="meal" value="Meal"/>
<x-inputs.select name="meal" <x-inputs.select name="meal"
class="block mt-1" class="block w-full"
:options="$meals" :options="$meals"
:selectedValue="old('meal')" :selectedValue="old('meal')"
required> required>
@ -40,13 +45,13 @@
<x-inputs.input name="summary" <x-inputs.input name="summary"
type="text" type="text"
class="block mt-1 w-full" class="block w-full"
:value="old('summary')" :value="old('summary')"
required /> required />
</div> </div>
</div> </div>
<div class="flex flex-col md:flex-row"> <div class="flex flex-col space-y-4 md:flex-row md:space-x-4 md:space-y-0 w-full">
@foreach (\App\Support\Nutrients::$all as $nutrient) @foreach (\App\Support\Nutrients::$all as $nutrient)
<!-- {{ ucfirst($nutrient) }} --> <!-- {{ ucfirst($nutrient) }} -->
<div class="flex-auto"> <div class="flex-auto">
@ -54,7 +59,7 @@
:value="ucfirst($nutrient) . ' (g)'"/> :value="ucfirst($nutrient) . ' (g)'"/>
<x-inputs.input id="{{ $nutrient }}" <x-inputs.input id="{{ $nutrient }}"
class="block w-5/6 mt-1" class="block w-full"
type="number" type="number"
step="any" step="any"
name="{{ $nutrient }}" name="{{ $nutrient }}"

View File

@ -1,6 +1,11 @@
<x-app-layout> <x-app-layout>
<x-slot name="header"> <x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">Add Journal Entries</h2> <div class="flex justify-between items-center">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">Add Entries</h2>
<a href="{{ route('journal-entries.create.from-nutrients', ['date' => $default_date->format('Y-m-d')]) }}" class="inline-flex items-center rounded-md font-semibold text-white p-2 bg-green-500 tracking-widest hover:bg-green-700 active:bg-green-900 focus:outline-none focus:border-green-900 focus:ring ring-green-600 disabled:opacity-25 transition ease-in-out duration-150">
Add by Nutrients
</a>
</div>
</x-slot> </x-slot>
<div class="py-12"> <div class="py-12">

View File

@ -31,8 +31,8 @@ Route::get('/foods/{food}/delete', [FoodController::class, 'delete'])->middlewar
Route::resource('recipes', RecipeController::class)->middleware(['auth']); Route::resource('recipes', RecipeController::class)->middleware(['auth']);
// Journal entries. // Journal entries.
Route::get('/journal-entries/create-from-nutrients', [JournalEntryController::class, 'createFromNutrients'])->middleware(['auth'])->name('journal-entries.create.from-nutrients'); Route::get('/journal-entries/create/from-nutrients', [JournalEntryController::class, 'createFromNutrients'])->middleware(['auth'])->name('journal-entries.create.from-nutrients');
Route::post('/journal-entries/create-from-nutrients', [JournalEntryController::class, 'storeFromNutrients'])->middleware(['auth'])->name('journal-entries.store.from-nutrients'); Route::post('/journal-entries/create/from-nutrients', [JournalEntryController::class, 'storeFromNutrients'])->middleware(['auth'])->name('journal-entries.store.from-nutrients');
Route::resource('journal-entries', JournalEntryController::class)->middleware(['auth']); Route::resource('journal-entries', JournalEntryController::class)->middleware(['auth']);
Route::get('/journal-entries/{journalEntry}/delete', [JournalEntryController::class, 'delete'])->middleware(['auth'])->name('journal-entries.delete'); Route::get('/journal-entries/{journalEntry}/delete', [JournalEntryController::class, 'delete'])->middleware(['auth'])->name('journal-entries.delete');