Releases: Muetze42/hellofresh-database
v3.15.0
Added
-
Published Status Tracking - Track which recipes are currently published on HelloFresh
- New
publishedfield in API responses (replacesvariantfield) - Published statistics in portal dashboard showing published vs unpublished recipe counts
- Filter "Hide Archived" to show only currently published recipes
- New
-
Unpublished Recipe Notice - Warning callout on recipe detail pages when recipe is no longer available on HelloFresh
Changed
-
Variant Display Logic - Improved variant relationships on recipe detail pages
- Variant recipes now show all sibling variants plus the original recipe
- Previously only showed direct children for canonical recipes
-
HelloFresh Links - Links to HelloFresh website now only shown for published recipes (previously hidden for variants)
Removed
- Variant Filter - Removed "Hide Variants" filter as it's replaced by published status tracking
- Variant API Field - Removed
variantfield from API responses (usecanonical_idto identify variants) - Canonical Recipe Notice - Removed "Based on Canonical Recipe" callout from recipe detail pages
What's Changed
- feat(recipe): add
is_publishedattribute to recipes by @Muetze42 in #276 - feat(models): integrate activity logging with LogsModificationsTrait by @Muetze42 in #277
- feat(recipes): replace
variantlogic withpublishedstatus and update filtering, API responses, and statistics by @Muetze42 in #278
Full Changelog: v3.14.1...v3.15.0
v3.14.1
- Variant Filter Logic - Recipe variants are now shown by default with an option to hide them (previously hidden by default)
- Renamed filter from "Show Canonical Recipes" to "Hide Variants" for better clarity
- Users see all recipes including variants unless they explicitly enable the hide filter
What's Changed
- refactor(variants): replace
canonicallogic withvariantattributes across codebase and update statistics, filtering, and API responses by @Muetze42 in #265 - feat(auth): add password reset functionality by @Muetze42 in #267
- feat(job): optimize menu sync by disabling recipe fetch and adding unique job constraints by @Muetze42 in #268
- feat(queue): adjust retry strategy for jobs in Horizon config by @Muetze42 in #269
- feat(ui): add multi-language icon and update region select layout by @Muetze42 in #272
- fix(recipes): cast
getPageresult to int ingetSharePagefor type consistency by @Muetze42 in #274 - refactor(filters): replace
Show Canonical Recipeslogic withHide Variantsand update references by @Muetze42 in #275
Full Changelog: v3.14.0...v3.14.1
v3.14.0
- Filter Share Links - Share current filter settings via URL
- Share button on Recipes and Random Recipes pages
- Shareable links preserve all active filters (ingredients, tags, allergens, difficulty, time ranges, etc.)
What's Changed
- chore: fix bullet indentation in CHANGELOG for consistency by @Muetze42 in #260
- Development by @Muetze42 in #261
- feat(filter-share): implement filter sharing functionality across pages by @Muetze42 in #263
- feat(recipe): add
variantattribute to recipes by @Muetze42 in #264
Full Changelog: 3.13.0...v3.14.0
3.13.0
- Recipe Variants - Support for recipe variants
- Recipe variants are hidden by default, with a filter option to show them
- Recipe pages show relationships: variants link to the original, originals list all variants
- Portal statistics now include variant metrics
- API now includes the canonical ID for each recipe
What's Changed
- Development by @Muetze42 in #217
- chore(ci): add conditional workflow execution for forked pull requests by @Muetze42 in #218
- chore(ci): switch code coverage to
pcovand disable Node.js steps in workflow by @Muetze42 in #219 - chore(ci): add timeout for tests job in workflow by @Muetze42 in #220
- chore(sys): disable
pnpmcheck in system requirements by @Muetze42 in #221 - chore: remove
phpmd.xmlruleset configuration file by @Muetze42 in #222 - chore(portal): consolidate resource index views into a single dynamic component by @Muetze42 in #225
- chore(portal): refine email verification handling and update view structures by @Muetze42 in #226
- chore(portal): integrate media support for user avatars in admin views by @Muetze42 in #227
- chore(app): add fallback handling for translatable fields and simplify name resolution in stats views by @Muetze42 in #229
- chore(stats): replace raw DB queries with Eloquent relationships in top stats methods by @Muetze42 in #230
- docs: Add Stackshare link to README by @Muetze42 in #232
- fix(controller): replace
file_get_contentswith HTTP client for image requests by @Muetze42 in #234 - chore(deps): bump Laravel framework, Horizon, and Pulse dependencies in composer.json by @Muetze42 in #235
- chore(deps): bump Tailwind, Laravel, Livewire, and related dependencies in package.json and composer.json by @Muetze42 in #243
- fix(components): add localized layout attribute to Livewire components by @Muetze42 in #244
- fix(job): add canonical recipe syncing in
ImportRecipeJobby @Muetze42 in #245 - chore(schedule): reorder and add pruning commands for queues and expired verifications by @Muetze42 in #257
- refactor(job): set retry limit to 1 for recipe and menu sync jobs by @Muetze42 in #258
- feat: add recipe variant support with filtering and statistics by @Muetze42 in #259
Full Changelog: 3.12.0...3.13.0
3.12.0
Portal Resources
- Browse and search all recipe resources
- Dedicated pages for Ingredients, Allergens, Tags, Labels, Cuisines, and Utensils
- Cached recipe counts for performance
What's Changed
Full Changelog: v3.11.0...3.12.0
v3.11.0
User Avatars
- Users can now upload a profile picture
- Avatar displayed in navigation menus (sidebar and header)
- Preparation for upcoming features
What's Changed
- fix(ui): improve admin sidebar group expansion logic by @Muetze42 in #202
- refactor(flags): replace custom country flag logic with
flag-iconslibrary by @Muetze42 in #203 - fix(ui): remove redundant text size class from
<x-flag>in region selector by @Muetze42 in #206 - Development by @Muetze42 in #208
- chore(deps): update composer dependencies to latest versions by @Muetze42 in #209
- Development by @Muetze42 in #212
- feat(avatar): implement avatar upload, update, and removal functionality by @Muetze42 in #213
- Development by @Muetze42 in #214
Full Changelog: v3.10.1...v3.11.0
v3.10.1
What's Changed
- feat(tags): enhance clickable tag behavior with icons and button semantics by @Muetze42 in #175
- feat(tags): add loader icon to tags with wire:loading state by @Muetze42 in #176
- feat(statistics): add users by country metric with grouped data display by @Muetze42 in #177
- Development by @Muetze42 in #178
- feat(menus): add legacy menu import command and enhance menu year display by @Muetze42 in #179
- fix(recipes): remove unnecessary
searchreset inclearFiltersmethod by @Muetze42 in #180 - Development by @Muetze42 in #181
- Development by @Muetze42 in #182
- refactor(jobs): split
ActivateCountryResourcesJobinto individual resource activation jobs by @Muetze42 in #183 - refactor(portal): reorganize statistics into dedicated pages with improved navigation by @Muetze42 in #184
- refactor(validation): add unique name rule and enforce DNS check for email by @Muetze42 in #185
- refactor(portal): update grid layouts and add spacing adjustments in stats views by @Muetze42 in #186
- docs(readme): update API portal description for clarity and remove redundant Reddit text in links section by @Muetze42 in #187
- fix(api): update filtering logic to use tag and label IDs instead of slugs by @Muetze42 in #188
- refactor(middleware): reorganize directory structure and add RequestContextMiddleware by @Muetze42 in #189
- feat(testing): add feature test suite for RecipeController API by @Muetze42 in #190
- feat(legal): add terms of use and update privacy policy for community features by @Muetze42 in #193
- fix(recipes): return 404 when recipe is accessed from wrong country context by @Muetze42 in #194
- fix(api): ensure type-safe ID-based filtering for tags and labels in RecipeController by @Muetze42 in #196
- fix(ui): improve label and layout alignment for privacy policy in forms and footer by @Muetze42 in #197
- test: enhance coverage and refactor test cases for better alignment with updated features by @Muetze42 in #198
- feat(api): add FormRequest validation for all API controllers by @Muetze42 in #199
- docs: update guidelines to emphasize critical request validation by @Muetze42 in #200
- feat(pulse): add Laravel Pulse with dedicated Redis and database connections by @Muetze42 in #201
Full Changelog: v3.10.0...v3.10.1
v3.10.0
Clickable Tags - Tags on recipe cards can now be clicked to filter recipes
- Toggle setting in header menu under "Display Settings"
- Active tags are highlighted in green with a checkmark
- Works on Recipes, Random Recipes, and Menu pages
- Setting is stored in browser localStorage
What's Changed
- feat(statistics): include ingredient country codes and flags in top ingredients table by @Muetze42 in #165
- feat(data-maintenance): add ingredient name cleanup command by @Muetze42 in #166
- feat(statistics): include country codes and flags in top tags and cuisines by @Muetze42 in #167
- refactor(statistics): centralize caching and computations with
StatisticsServiceby @Muetze42 in #168 - fix(statistics): replace constructor injection with method-based `Sta… by @Muetze42 in #169
- feat(tags): add clickable tag filters and toggleable display settings by @Muetze42 in #170
- feat(recipes): add allergen exclusion filter to related recipes query by @Muetze42 in #171
- feat(data-maintenance): add command to merge duplicate allergens by @Muetze42 in #172
- feat(data-maintenance): add command to cleanup duplicate tags by @Muetze42 in #173
- feat(users): add country column with sorting and flags in User Index by @Muetze42 in #174
Full Changelog: v3.9.0...v3.10.0
v3.9.0
- Portal Statistics - Comprehensive database statistics dashboard
- Global stats: Total recipes, ingredients, menus, and countries
- Recipe quality metrics: PDFs available, missing images, missing nutrition info
- User engagement: Registered users, recipe lists, saved recipes
- Top 10 lists: Most used ingredients, tags, and cuisines
- Monthly recipe trend: Recipes added per month over the last 12 months
- Average prep times by country
- Difficulty distribution with visual progress bars
- Recently added recipes overview
- Enhanced Country Statistics - Sortable table with country flags, localized names, supported locales, and PDF recipe counts
What's Changed
- feat(recipes): add validation for recipe difficulty range by @Muetze42 in #158
- feat(statistics): add "recipes with PDF" column and backend support by @Muetze42 in #159
- feat(statistics): add sorting functionality to country stats table by @Muetze42 in #160
- feat(statistics): add country name, locales, and flags to stats table by @Muetze42 in #161
- refactor(statistics): modularize statistic views and enhance data insights by @Muetze42 in #162
- chore(changelog): update for v3.9.0 with new portal and country statistics features by @Muetze42 in #163
- fix(markdown): update
FluxRendererlink rendering for consistency and improved styling by @Muetze42 in #164
Full Changelog: v3.8.1...v3.9.0
v3.8.1
What's Changed
- feat(support): add user ID display and multilingual translations for support requests by @Muetze42 in #154
- feat(portal): add Changelog section to sidebar and routes by @Muetze42 in #155
- feat(portal): add Changelog viewer with markdown rendering by @Muetze42 in #156
- refactor: optimize min max slider by @Muetze42 in #157
Full Changelog: v3.8.0...v3.8.1