Commit Graph

62 Commits

Author SHA1 Message Date
06cd7e7677 Fix JSON-LD rendering in recipe pages
Some checks failed
CI / update (push) Failing after 5s
Use @html directive to properly render JSON-LD script tags instead of literal text.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 19:22:56 +02:00
d3a291b9f1 SSR for json-ld
Some checks failed
CI / update (push) Failing after 5s
2025-09-04 19:14:02 +02:00
04b138eed1 attempt 2 for json-ld exposure
Some checks failed
CI / update (push) Failing after 5s
2025-09-04 19:09:08 +02:00
e01ff9eb59 Add JSON-LD structured data for recipes
Some checks failed
CI / update (push) Failing after 59s
- Create recipeJsonLd.ts function with Schema.org compliant Recipe markup
- Add API endpoint at /api/rezepte/json-ld/[name] for on-demand generation
- Include proper ISO 8601 time parsing for German formats
- Add rel="alternate" link in recipe pages for discoverability
- Set author to Alexander Bocken with proper Person type
- Include caching headers for performance optimization

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 18:57:47 +02:00
6a8478f8a6 Implement progressive enhancement for favorites button
Some checks failed
CI / update (push) Failing after 6s
- Add server-side form handling for favorites without JavaScript
- Create toggleFavorite server action that uses existing API endpoint
- Update FavoriteButton component with form-based fallback
- Maintain JavaScript enhancement for smoother UX when available
- Use server-side fetch to reuse centralized favorites API logic

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 17:05:07 +02:00
7bc51e3a0e Implement progressive enhancement for yeast swapper with state persistence
Some checks failed
CI / update (push) Failing after 9s
- Add server-side form handling for yeast swapping without JavaScript
- Implement toggle-based URL parameter system (y0=1, y1=1) for clean URLs
- Add server action to toggle yeast flags and preserve all URL state
- Update multiplier forms to preserve yeast toggle states across submissions
- Calculate yeast conversions server-side from original recipe data
- Fix {{multiplier}} placeholder replacement to handle non-numeric amounts
- Enable multiple independent yeast swappers with full state preservation
- Maintain perfect progressive enhancement: works with and without JS

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 16:08:29 +02:00
2dc871c50f Implement progressive enhancement for universal search with context-aware filtering
Some checks failed
CI / update (push) Failing after 5s
Add comprehensive search solution that works across all recipe pages with proper fallbacks. Features include universal API endpoint, context-aware filtering (category/tag/icon/season/favorites), and progressive enhancement with form submission fallback for no-JS users.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 14:53:59 +02:00
88f9531a6f Implement progressive enhancement for recipe multiplier with form fallbacks
Add form-based multiplier controls that work without JavaScript while providing enhanced UX when JS is available. Fixed fraction display and NaN flash issues.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 14:34:43 +02:00
55a4e6a262 Revert "Implement secure client-side favorites loading to fix nginx 502 issues"
All checks were successful
CI / update (push) Successful in 16s
This reverts commit 48b94e3aef.
2025-09-04 12:26:27 +02:00
48b94e3aef Implement secure client-side favorites loading to fix nginx 502 issues
All checks were successful
CI / update (push) Successful in 16s
- Create client-side favorites store with secure authentication
- Remove server-side favorites fetching that caused nginx routing issues
- Update FavoriteButton to properly handle short_name/ObjectId relationship
- Use existing /api/rezepte/favorites/check endpoint for status checking
- Maintain security by requiring authentication for all favorites operations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 12:20:08 +02:00
15a72e73ca Revert "Fix server-side favorites fetching for production nginx setup"
This reverts commit bda30eb42d.
2025-09-04 12:13:08 +02:00
bda30eb42d Fix server-side favorites fetching for production nginx setup
All checks were successful
CI / update (push) Successful in 17s
- Use absolute URLs for internal server-side fetch calls to bypass nginx routing issues
- Add debugging logs to favorites loading process
- Temporarily disable CSRF protection for local testing
- Clean up page server load function

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-04 12:09:28 +02:00
b534cd1ddc Add favorite indicators to recipe cards and improve favorites UI
All checks were successful
CI / update (push) Successful in 17s
- Add heart emoji indicators to recipe cards (top-left positioning)
- Show favorites across all recipe list pages (season, category, icon, tag)
- Create favorites utility functions for server-side data merging
- Convert client-side load files to server-side for session access
- Redesign favorite button with emoji hearts (🖤/❤️) and bottom-right positioning
- Fix randomizer array mutation issue causing card display glitches
- Implement consistent favorite indicators with drop shadows for visibility

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 20:45:28 +02:00
fe46ab194e Implement user favorites feature for recipes
- Add UserFavorites MongoDB model with ObjectId references
- Create authenticated API endpoints for favorites management
- Add Heart icon and FavoriteButton components with toggle functionality
- Display favorite button below recipe tags for logged-in users
- Add Favoriten navigation link (visible only when authenticated)
- Create favorites page with grid layout and search functionality
- Store favorites by MongoDB ObjectId for data integrity

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 20:18:57 +02:00
74dd2b1f4b Update @auth/sveltekit to latest stable version 1.10.0
- Upgraded @auth/sveltekit from 0.14.0 to 1.10.0
- Updated session API from event.locals.getSession() to event.locals.auth()
- Fixed TypeScript definitions for new auth API in app.d.ts
- Updated layout server load functions to use LayoutServerLoad type
- Fixed session callbacks with proper token type casting
- Switched to generic OIDC provider config to resolve issuer validation issues
- All auth functionality now working with latest Auth.js version

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 21:45:14 +02:00
d6dce464f7 switch from "Unterwegs" to "Snack" 2025-03-31 17:57:40 +02:00
6ec68d2028 added tips-and-tricks route 2024-10-28 17:00:43 +01:00
ba52273816 fix trim() 2024-08-27 18:13:52 +02:00
ef12c59c51 trim spaces from short_name, otherwise recipes become unnavigatable if ending on spaces 2024-08-18 21:20:03 +02:00
d355f2fc09 emoji font for icon 2024-02-26 12:00:38 +01:00
e725a0430a eager image loading for top recipes on page 2024-02-25 12:54:30 +01:00
0f0321a42d specify emoji font for icons 2024-02-25 11:15:06 +01:00
afdfd4f651 invalidate image cache on /edit properly 2024-02-21 09:38:55 +01:00
c86844afac finally buildable without jwt 2024-02-19 23:38:08 +01:00
51fd5c7f01 add recipe counter 2024-02-18 17:35:17 +01:00
5b34fa7a9c first attempt of img cache invalidation 2024-02-18 14:43:42 +01:00
779dc96967 Correctly display user with pfp if available 2024-02-15 04:28:31 +01:00
ca62e48f7b initial OIDC setup 2024-02-14 16:07:55 +01:00
8029c8bbee only margin-right in MediaScroller 2024-01-24 11:09:54 +01:00
f2b834108f fix missing nordtheme mvs 2024-01-21 10:36:32 +01:00
a48a14f1cf simplify structure by remove (rezepte) 2024-01-20 16:39:27 +01:00
4321ece385 First fully working user management, move to layout groups 2023-07-18 14:18:52 +02:00
1f34c36384 cleaner login and registration 2023-07-18 12:05:30 +02:00
902a3611b1 rearrange tags 2023-07-14 14:34:15 +02:00
79691581b9 active season/icon highlighted insteas of using text 2023-07-14 14:33:55 +02:00
fd1157151e break word 2023-07-13 23:15:13 +02:00
2eaef8e10c bodge img upload on edit if no img available 2023-07-13 18:18:01 +02:00
7c56cff5bf update image and season interval on navigation 2023-07-13 17:18:09 +02:00
3a8d4e0979 add Getränke cateogry in all display 2023-07-13 11:50:29 +02:00
2483524fbf rm jukit stuff 2023-07-12 12:28:34 +02:00
691aa1b0b7 fix img APIs to working standard 2023-07-12 12:23:35 +02:00
385a878cf5 add initial img API endpoints 2023-07-12 11:35:43 +02:00
32ff7a2a20 randomize moved to API 2023-07-11 22:54:13 +02:00
5ffd3dbadd fix recipe page 2023-07-11 19:00:58 +02:00
099bf61dec fix some icon animations 2023-07-10 13:19:35 +02:00
357e2f7eeb randomize order of recipes based on day 2023-07-10 13:00:11 +02:00
abd09f2291 render html in preamble 2023-07-05 15:20:18 +02:00
7eb731181a Icon route added 2023-07-03 12:39:34 +02:00
17cfa89cce do not render &shy; or similar in name 2023-07-03 09:35:36 +02:00
a48b9686e7 Remove unnecessary a11y warnings 2023-07-03 00:09:00 +02:00