diff --git a/CHANGELOG.md b/CHANGELOG.md index 89e6be9..58e07b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,29 @@ # Changelog +## v0.9.11 (2026-02-26) + +### Added +- **Recipe edit page — image management**: display current recipe image, replace via URL or file upload + - New API endpoint: `POST /api/recipes///image` for direct file upload + - New `upload_image_bytes()` method on both Mealie and Tandoor clients +- **Auto-expanding instruction textareas**: step fields grow to fit content (120px minimum) +- **Edit page widened** to 1100px (was 900px) +- New favicon (`logo_favicon_2.svg`) + +### Fixed +- **Tandoor image URLs**: rewrite internal k8s service URLs to public base URL so images display in browser +- **Tandoor pagination**: use `page`/`page_size` params (not `limit`/`offset`) — fixes duplicate recipes across pages +- **KeyError on recipe list**: safe `.get("name", "")` access for Tandoor keywords and Mealie tags that lack a `name` field +- **Delete button color**: moved `btn-danger` CSS to base template so it works on all pages + +### Improved +- **Search UX**: search field on top with "Keresés" button, tag filter below, results as dropdown while typing +- **Keyboard navigation**: arrow up/down in search dropdown, Enter goes to edit page +- **Search dropdown actions**: edit (pencil) and delete (trash) buttons inline on each result +- **Delete from edit page**: redirects back to recipe list after deletion +- **Instruction textarea height**: doubled default minimum from 60px to 120px on both edit and import pages + ## v0.9.0 (2026-02-26) ### Added diff --git a/README.md b/README.md index 0f8b487..2efcc50 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Docker container for importing recipes from Hungarian websites into [Mealie](htt **Problem**: Mealie's and Tandoor's built-in URL import cannot parse ingredients and instructions from Hungarian recipe sites like mindmegette.hu. -**Solution**: This container provides a web UI that scrapes Hungarian recipe pages with site-specific parsers, lets you review and edit the extracted data, then pushes it to Mealie and/or Tandoor via their REST APIs. Supports single recipe import, bulk import, and recipe management (browse, search, edit, delete). +**Solution**: This container provides a web UI that scrapes Hungarian recipe pages with site-specific parsers, lets you review and edit the extracted data, then pushes it to Mealie and/or Tandoor via their REST APIs. Supports single recipe import, bulk import, and recipe management (browse, search, edit, delete, image upload). ## Architecture @@ -20,7 +20,7 @@ Docker container for importing recipes from Hungarian websites into [Mealie](htt │ ├── /send → AJAX: push to Mealie API │ │ ├── /send-tandoor → AJAX: push to Tandoor API │ │ ├── /tags → AJAX: list tags from both │ -│ ├── /api/recipes/* → AJAX: recipe CRUD endpoints │ +│ ├── /api/recipes/* → AJAX: recipe CRUD + image upload│ │ └── /health → Health check │ │ │ │ Modules: │ @@ -249,6 +249,7 @@ The UI is in Hungarian and uses a dark theme. The workflow is: 2. **Import** (`/import`) — Paste a recipe URL, click "Beolvasás" (Scrape) 3. **Review** — Edit structured ingredients (4-column: quantity, unit, food, note), add/remove ingredient groups, edit instructions, manage tags (add/remove/search existing) 4. **Send** — Click "Importálás Mealie-be" and/or "Importálás Tandoor-ba" to push to your configured services +5. **Recipes** (`/recipes`) — Browse, search (with keyboard-navigable dropdown), filter by tags, edit recipes (ingredients, instructions, tags, image), delete with confirmation ## Tech Stack