first working prototype
@@ -1,65 +0,0 @@
 | 
				
			|||||||
import type { Actions, Load } from '@sveltejs/kit';
 | 
					 | 
				
			||||||
import { Recipe } from '../../../models/Recipe';
 | 
					 | 
				
			||||||
import { dbConnect, dbDisconnect } from '../../../utils/db';
 | 
					 | 
				
			||||||
import { redirect } from '@sveltejs/kit';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export const load: Load = async () => {
 | 
					 | 
				
			||||||
  await dbConnect();
 | 
					 | 
				
			||||||
  let todos = await Recipe.find().lean();
 | 
					 | 
				
			||||||
  await dbDisconnect();
 | 
					 | 
				
			||||||
  todos = JSON.parse(JSON.stringify(todos));
 | 
					 | 
				
			||||||
  todos = todos.reverse();
 | 
					 | 
				
			||||||
  return {
 | 
					 | 
				
			||||||
    todos,
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export const actions: Actions = {
 | 
					 | 
				
			||||||
  create: async ({ request }) => {
 | 
					 | 
				
			||||||
    const formData = await request.formData();
 | 
					 | 
				
			||||||
    const todoName = formData.get('todoName');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const newTodo = {
 | 
					 | 
				
			||||||
      title: todoName,
 | 
					 | 
				
			||||||
      isDone: false,
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    await dbConnect();
 | 
					 | 
				
			||||||
    await Recipe.create(newTodo);
 | 
					 | 
				
			||||||
    await dbDisconnect();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    console.log('New todo added: ', newTodo);
 | 
					 | 
				
			||||||
    return {
 | 
					 | 
				
			||||||
      success: true,
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  update: async ({ request }) => {
 | 
					 | 
				
			||||||
    const formData = await request.formData();
 | 
					 | 
				
			||||||
    const todoId = formData.get('todoId');
 | 
					 | 
				
			||||||
    const todoName = formData.get('todoName');
 | 
					 | 
				
			||||||
    await dbConnect();
 | 
					 | 
				
			||||||
    await Recipe.findByIdAndUpdate(todoId, {
 | 
					 | 
				
			||||||
      title: todoName,
 | 
					 | 
				
			||||||
    }).lean();
 | 
					 | 
				
			||||||
    await dbDisconnect();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    console.log('Todo updated: ', todoId);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return {
 | 
					 | 
				
			||||||
      success: true,
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  delete: async ({ request }) => {
 | 
					 | 
				
			||||||
    const formData = await request.formData();
 | 
					 | 
				
			||||||
    const todoId = formData.get('todoId');
 | 
					 | 
				
			||||||
    await dbConnect();
 | 
					 | 
				
			||||||
    await Recipe.findByIdAndDelete(todoId);
 | 
					 | 
				
			||||||
    await dbDisconnect();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    console.log('Todo deleted: ', todoId);
 | 
					 | 
				
			||||||
    return {
 | 
					 | 
				
			||||||
      success: true,
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
@@ -1,61 +0,0 @@
 | 
				
			|||||||
<script>
 | 
					 | 
				
			||||||
    /** @type {import('./$types').PageData} */
 | 
					 | 
				
			||||||
    export let data;
 | 
					 | 
				
			||||||
    import MultiImgWrapper from './MultiImgWrapper.svelte'
 | 
					 | 
				
			||||||
    import Property from './Property.svelte'
 | 
					 | 
				
			||||||
    console.log("#################")
 | 
					 | 
				
			||||||
    console.log(data.recipe)
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>{data.name}</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{#if data.images.length > 0}
 | 
					 | 
				
			||||||
	<MultiImgWrapper wrap={data.images.length > 1} class='double'>
 | 
					 | 
				
			||||||
	{#each data.images as media}
 | 
					 | 
				
			||||||
	<figure>
 | 
					 | 
				
			||||||
		<img src="{media.mediapath}" alt="{media.alt}">
 | 
					 | 
				
			||||||
		<figcaption>{media.caption}</figcaption>
 | 
					 | 
				
			||||||
	</figure>
 | 
					 | 
				
			||||||
	{/each}
 | 
					 | 
				
			||||||
	</MultiImgWrapper>
 | 
					 | 
				
			||||||
{/if}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<Property id=backen populated={data.baking}>{data.recipe.baking.length} bei {data.recipe.baking.temperature} °C
 | 
					 | 
				
			||||||
{#if data.baking.mode}
 | 
					 | 
				
			||||||
	{data.baking.mode}
 | 
					 | 
				
			||||||
{:else}
 | 
					 | 
				
			||||||
	Ober-/Unterhitze
 | 
					 | 
				
			||||||
{/if}
 | 
					 | 
				
			||||||
</Property>
 | 
					 | 
				
			||||||
<Property id=vorbereitung>data.preparation</Property>
 | 
					 | 
				
			||||||
<Property id=gesamtzeit>data.total_time</Property>
 | 
					 | 
				
			||||||
<Property id=portionen>data.portions</Property>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{#if data.ingredients}
 | 
					 | 
				
			||||||
<h2>Zutaten</h2>
 | 
					 | 
				
			||||||
{#each data.ingredients as list}
 | 
					 | 
				
			||||||
{#if list.name}
 | 
					 | 
				
			||||||
	<h3>{list.name}</h3>
 | 
					 | 
				
			||||||
{/if}
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
	{#each list.list as item}
 | 
					 | 
				
			||||||
		<li>{item.amount} {item.unit} {item.ingredient_name}</li>
 | 
					 | 
				
			||||||
	{/each}
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
{/each}
 | 
					 | 
				
			||||||
{/if}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{#if data.instructions}
 | 
					 | 
				
			||||||
<h2>Zubereitung</h2>
 | 
					 | 
				
			||||||
{#each data.instructions as list}
 | 
					 | 
				
			||||||
{#if list.name}
 | 
					 | 
				
			||||||
	<h3>{list.name}</h3>
 | 
					 | 
				
			||||||
{/if}
 | 
					 | 
				
			||||||
<ol>
 | 
					 | 
				
			||||||
	{#each list.steps as step}
 | 
					 | 
				
			||||||
		<li>{step}</li>
 | 
					 | 
				
			||||||
	{/each}
 | 
					 | 
				
			||||||
</ol>
 | 
					 | 
				
			||||||
{/each}
 | 
					 | 
				
			||||||
{/if}
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 209 KiB After Width: | Height: | Size: 209 KiB  | 
| 
		 Before Width: | Height: | Size: 229 KiB After Width: | Height: | Size: 229 KiB  | 
| 
		 Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 190 KiB  | 
| 
		 Before Width: | Height: | Size: 502 KiB After Width: | Height: | Size: 502 KiB  | 
| 
		 Before Width: | Height: | Size: 388 KiB After Width: | Height: | Size: 388 KiB  | 
| 
		 Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 264 KiB  | 
| 
		 Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB  | 
| 
		 Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 236 KiB  | 
| 
		 Before Width: | Height: | Size: 458 KiB After Width: | Height: | Size: 458 KiB  | 
| 
		 Before Width: | Height: | Size: 439 KiB After Width: | Height: | Size: 439 KiB  | 
| 
		 Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 228 KiB  | 
| 
		 Before Width: | Height: | Size: 489 KiB After Width: | Height: | Size: 489 KiB  | 
| 
		 Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 300 KiB  | 
| 
		 Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB  | 
| 
		 Before Width: | Height: | Size: 284 KiB After Width: | Height: | Size: 284 KiB  | 
| 
		 Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 263 KiB  | 
| 
		 Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 110 KiB  | 
| 
		 Before Width: | Height: | Size: 354 KiB After Width: | Height: | Size: 354 KiB  | 
| 
		 Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 200 KiB  | 
| 
		 Before Width: | Height: | Size: 224 KiB After Width: | Height: | Size: 224 KiB  | 
| 
		 Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB  | 
| 
		 Before Width: | Height: | Size: 312 KiB After Width: | Height: | Size: 312 KiB  | 
| 
		 Before Width: | Height: | Size: 495 KiB After Width: | Height: | Size: 495 KiB  | 
| 
		 Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB  | 
| 
		 Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 315 KiB  | 
| 
		 Before Width: | Height: | Size: 360 KiB After Width: | Height: | Size: 360 KiB  | 
| 
		 Before Width: | Height: | Size: 408 KiB After Width: | Height: | Size: 408 KiB  | 
| 
		 Before Width: | Height: | Size: 289 KiB After Width: | Height: | Size: 289 KiB  | 
| 
		 Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 236 KiB  | 
| 
		 Before Width: | Height: | Size: 383 KiB After Width: | Height: | Size: 383 KiB  | 
| 
		 Before Width: | Height: | Size: 286 KiB After Width: | Height: | Size: 286 KiB  | 
| 
		 Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 300 KiB  | 
| 
		 Before Width: | Height: | Size: 582 KiB After Width: | Height: | Size: 582 KiB  | 
| 
		 Before Width: | Height: | Size: 326 KiB After Width: | Height: | Size: 326 KiB  | 
| 
		 Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB  | 
| 
		 Before Width: | Height: | Size: 329 KiB After Width: | Height: | Size: 329 KiB  | 
| 
		 Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 260 KiB  | 
| 
		 Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 207 KiB  | 
| 
		 Before Width: | Height: | Size: 176 KiB After Width: | Height: | Size: 176 KiB  | 
| 
		 Before Width: | Height: | Size: 339 KiB After Width: | Height: | Size: 339 KiB  | 
| 
		 Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB  | 
| 
		 Before Width: | Height: | Size: 214 KiB After Width: | Height: | Size: 214 KiB  | 
| 
		 Before Width: | Height: | Size: 326 KiB After Width: | Height: | Size: 326 KiB  | 
| 
		 Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 188 KiB  | 
| 
		 Before Width: | Height: | Size: 246 KiB After Width: | Height: | Size: 246 KiB  | 
| 
		 Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB  | 
| 
		 Before Width: | Height: | Size: 511 KiB After Width: | Height: | Size: 511 KiB  | 
| 
		 Before Width: | Height: | Size: 283 KiB After Width: | Height: | Size: 283 KiB  | 
| 
		 Before Width: | Height: | Size: 395 KiB After Width: | Height: | Size: 395 KiB  | 
| 
		 Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 135 KiB  | 
| 
		 Before Width: | Height: | Size: 231 KiB After Width: | Height: | Size: 231 KiB  | 
| 
		 Before Width: | Height: | Size: 288 KiB After Width: | Height: | Size: 288 KiB  | 
| 
		 Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB  | 
| 
		 Before Width: | Height: | Size: 224 KiB After Width: | Height: | Size: 224 KiB  | 
| 
		 Before Width: | Height: | Size: 625 KiB After Width: | Height: | Size: 625 KiB  | 
| 
		 Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 204 KiB  | 
| 
		 Before Width: | Height: | Size: 287 KiB After Width: | Height: | Size: 287 KiB  | 
| 
		 Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 300 KiB  | 
| 
		 Before Width: | Height: | Size: 230 KiB After Width: | Height: | Size: 230 KiB  | 
| 
		 Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 315 KiB  | 
| 
		 Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB  | 
| 
		 Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 144 KiB  | 
| 
		 Before Width: | Height: | Size: 226 KiB After Width: | Height: | Size: 226 KiB  | 
| 
		 Before Width: | Height: | Size: 275 KiB After Width: | Height: | Size: 275 KiB  | 
| 
		 Before Width: | Height: | Size: 461 KiB After Width: | Height: | Size: 461 KiB  | 
| 
		 Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 180 KiB  | 
| 
		 Before Width: | Height: | Size: 295 KiB After Width: | Height: | Size: 295 KiB  | 
| 
		 Before Width: | Height: | Size: 452 KiB After Width: | Height: | Size: 452 KiB  | 
| 
		 Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB  | 
| 
		 Before Width: | Height: | Size: 266 KiB After Width: | Height: | Size: 266 KiB  | 
| 
		 Before Width: | Height: | Size: 326 KiB After Width: | Height: | Size: 326 KiB  | 
| 
		 Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 167 KiB  | 
| 
		 Before Width: | Height: | Size: 220 KiB After Width: | Height: | Size: 220 KiB  | 
| 
		 Before Width: | Height: | Size: 220 KiB After Width: | Height: | Size: 220 KiB  | 
| 
		 Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB  | 
| 
		 Before Width: | Height: | Size: 419 KiB After Width: | Height: | Size: 419 KiB  | 
| 
		 Before Width: | Height: | Size: 331 KiB After Width: | Height: | Size: 331 KiB  | 
| 
		 Before Width: | Height: | Size: 258 KiB After Width: | Height: | Size: 258 KiB  | 
| 
		 Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 236 KiB  | 
| 
		 Before Width: | Height: | Size: 521 KiB After Width: | Height: | Size: 521 KiB  | 
| 
		 Before Width: | Height: | Size: 360 KiB After Width: | Height: | Size: 360 KiB  | 
| 
		 Before Width: | Height: | Size: 354 KiB After Width: | Height: | Size: 354 KiB  | 
| 
		 Before Width: | Height: | Size: 197 KiB After Width: | Height: | Size: 197 KiB  | 
| 
		 Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 196 KiB  | 
| 
		 Before Width: | Height: | Size: 497 KiB After Width: | Height: | Size: 497 KiB  | 
| 
		 Before Width: | Height: | Size: 225 KiB After Width: | Height: | Size: 225 KiB  | 
| 
		 Before Width: | Height: | Size: 330 KiB After Width: | Height: | Size: 330 KiB  | 
| 
		 Before Width: | Height: | Size: 409 KiB After Width: | Height: | Size: 409 KiB  | 
| 
		 Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB  | 
| 
		 Before Width: | Height: | Size: 372 KiB After Width: | Height: | Size: 372 KiB  | 
| 
		 Before Width: | Height: | Size: 251 KiB After Width: | Height: | Size: 251 KiB  | 
| 
		 Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB  | 
| 
		 Before Width: | Height: | Size: 645 KiB After Width: | Height: | Size: 645 KiB  | 
| 
		 Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB  | 
| 
		 Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 217 KiB  | 
| 
		 Before Width: | Height: | Size: 466 KiB After Width: | Height: | Size: 466 KiB  | 
| 
		 Before Width: | Height: | Size: 349 KiB After Width: | Height: | Size: 349 KiB  |