feat(register): Rezept-hinzufügen-Dropdown mit URL-Import + Manuell
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m15s
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m15s
Der bisherige immer sichtbare URL-Importbalken ist durch einen
"Rezept hinzufügen"-Button rechts im Register-Head ersetzt. Klick
öffnet ein kleines Dropdown mit zwei Optionen:
• Von URL importieren — öffnet einen Modal-Dialog zur URL-Eingabe
und leitet wie bisher nach /preview weiter.
• Leeres Rezept — POST /api/recipes/blank, Weiterleitung nach
/recipes/{id}?edit=1; die Detailseite erkennt den Param und
startet direkt im Editor, entfernt ihn nach Aktivierung wieder
aus der URL.
Der neue Blank-Endpoint legt ein Rezept mit Platzhalter-Titel
"Neues Rezept", Portions-Default 4 und leeren Listen an. Der User
füllt direkt im Edit-Modus aus und speichert wie gewohnt.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
30
src/routes/api/recipes/blank/+server.ts
Normal file
30
src/routes/api/recipes/blank/+server.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import type { RequestHandler } from './$types';
|
||||
import { json } from '@sveltejs/kit';
|
||||
import { getDb } from '$lib/server/db';
|
||||
import { insertRecipe } from '$lib/server/recipes/repository';
|
||||
|
||||
// Legt ein leeres Rezept an und gibt die ID zurück. Der Client leitet
|
||||
// danach nach /recipes/{id}?edit=1 um, damit der Editor sofort offen ist.
|
||||
// Titel "Neues Rezept" ist ein Platzhalter — der User überschreibt ihn
|
||||
// beim ersten Speichern.
|
||||
export const POST: RequestHandler = async () => {
|
||||
const id = insertRecipe(getDb(), {
|
||||
id: null,
|
||||
title: 'Neues Rezept',
|
||||
description: null,
|
||||
source_url: null,
|
||||
source_domain: null,
|
||||
image_path: null,
|
||||
servings_default: 4,
|
||||
servings_unit: null,
|
||||
prep_time_min: null,
|
||||
cook_time_min: null,
|
||||
total_time_min: null,
|
||||
cuisine: null,
|
||||
category: null,
|
||||
ingredients: [],
|
||||
steps: [],
|
||||
tags: []
|
||||
});
|
||||
return json({ id });
|
||||
};
|
||||
Reference in New Issue
Block a user