* add groupSlug to most routes
* fixed more routing issues
* fixed jank and incorrect routes
* remove public explore links
* remove unused groupSlug and explore routes
* nuked explore pages
* fixed public toolstore bug
* fixed various routes missing group slug
* restored public app header menu
* fix janky login redirect
* 404 recipe API call returns to login
* removed unused explore layout
* force redirect when using the wrong group slug
* fixed dead admin links
* removed unused middleware from earlier attempt
* 🧹
* improve cookbooks sidebar
fixed sidebar link not working
fixed sidebar link target
hide cookbooks header when there are none
* added group slug to user
* fix $auth typehints
* vastly simplified groupSlug logic
* allow logged-in users to view other groups
* fixed some edgecases that bypassed isOwnGroup
* fixed static home ref
* 🧹
* fixed redirect logic
* lint warning
* removed group slug from group and user pages
refactored all components to use route groupSlug or user group slug
moved some group pages to recipe pages
* fixed some bad types
* 🧹
* moved groupSlug routes under /g/groupSlug
* move /recipe/ to /r/
* fix backend url generation and metadata injection
* moved shopping lists to root/other route fixes
* changed shared from /recipes/ to /r/
* fixed 404 redirect not awaiting
* removed unused import
* fix doc links
* fix public recipe setting not affecting public API
* fixed backend tests
* fix nuxt-generate command
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* fixed incorrect var ref
* added public recipe pagination route
* refactored frontend public/explore API
* fixed broken public cards
* hid context menu from cards when public
* fixed public app header
* fixed random recipe
* added public food, category, tag, and tool routes
* not sure why I thought that would work
* added public organizer/foods stores
* disabled clicking on tags/categories
* added public link to profile page
* linting
* force a 404 if the group slug is missing or invalid
* oops
* refactored to fit sidebar into explore
* fixed invalid logic for app header
* removed most sidebar options from public
* added backend routes for public cookbooks
* added explore cookbook pages/apis
* codegen
* added backend tests
* lint
* fixes v-for keys
* I do not understand but sure why not
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* feat: improve readability of notes in ingredients list
Makes the notes in the ingredients list more readable by making them slightly opaque. This creates a better visual separation between the notes and the rest of the ingredient.
* Use server display if available
* Move note to newline and make quantity more distinct
* Use safeMarkdown for shopping list
* Use component
* Wrap unit in accent color
* Update RecipeIngredientListItem to set food in bold
* added support for group slugs
* modified frontend to use links with group slug
* fixed test refs
* unused import
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* propogate scale changes to print view
* fixed incorrect variable reference
* refactored shopping list recipe routes
cleaned up existing logic
added support for recipe scaling
* updated current revision
* adding to shopping list respects UI recipe scale
* added field annotations
* added tests for recipe scaling
* made column nullable and set to 1 during migration
* added chef hat
* removed unnecessary log
* modified recipe and recipe timeline event schema
changed timeline event "message" -> "event_message"
added "last made" timestamp to recipe
* added "I made this" dialog to recipe action menu
* added missing field and re-ran code-gen
* moved dialog out of context menu and refactored
removed references in action menu and context menu
refactored dialog to be triggered by a button instead
added route to update recipe last made timestamp
added visual for last made timestamp to recipe header and title
* added sorting by last made
* switched event type to comment
* replaced alter column with pydantic alias
* added tests for event message alias
* add vitest
* initialize lib w/ tests
* move to dev dep
* run tests in CI
* update file names
* move api folder to lib
* move api and api types to same folder
* update generator outpath
* rm husky
* i guess i _did_ need those types
* reorg types
* extract validators into testable components
* (WIP) start composable testing
* fix import type
* fix linter complaint
* simplify icon type def
* fix linter errors (maybe?)
* rename client file for sorting
* initial public explorer API endpoint
* public API endpoint
* cleanup recipe page
* wip: init explorer page
* use public URLs for shared recipes
* refactor private share tokens to use shared page
rewrite get_all routes to use a pagination pattern to allow for better implementations of search, filter, and sorting on the frontend or by any client without fetching all the data. Additionally we added a CI check for running the Nuxt built to confirm that no TS errors were present. Finally, I had to remove the header support for the Shopping lists as the browser caching based off last_updated header was not allowing it to read recent updates due to how we're handling the updated_at property in the database with nested fields. This will have to be looked at in the future to reimplement. I'm unsure how many other routes have a similar issue.
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* update naming
* refactor tests to use shared structure
* shorten names
* add tools test case
* refactor to support multi-tenant
* set group_id on creation
* initial refactor for multitenant tags/cats
* spelling
* additional test case for same valued resources
* fix recipe update tests
* apply indexes to foreign keys
* fix performance regressions
* handle unknown exception
* utility decorator for function debugging
* migrate recipe_id to UUID
* GUID for recipes
* remove unused import
* move image functions into package
* move utilities to packages dir
* update import
* linter
* image image and asset routes
* update assets and images to use UUIDs
* fix migration base
* image asset test coverage
* use ids for categories and tag crud functions
* refactor recipe organizer test suite to reduce duplication
* add uuid serlization utility
* organizer base router
* slug routes testing and fixes
* fix postgres error
* adopt UUIDs
* move tags, categories, and tools under "organizers" umbrella
* update composite label
* generate ts types
* fix import error
* update frontend types
* fix type errors
* fix postgres errors
* fix#978
* add null check for title validation
* add note in docs on multi-tenancy
* Activate more linting rules from eslint and typescript
* Properly add VForm as type information
* Fix usage of native types
* Fix more linting issues
* Rename vuetify types file, add VTooltip
* Fix some more typing problems
* Use composition API for more components
* Convert RecipeRating
* Convert RecipeNutrition
* Convert more components to composition API
* Fix globals plugin for type checking
* Add missing icon types
* Fix vuetify types in Nuxt context
* Use composition API for RecipeActionMenu
* Convert error.vue to composition API
* Convert RecipeContextMenu to composition API
* Use more composition API and type checking in recipe/create
* Convert AppButtonUpload to composition API
* Fix some type checking in RecipeContextMenu
* Remove unused components BaseAutoForm and BaseColorPicker
* Convert RecipeCategoryTagDialog to composition API
* Convert RecipeCardSection to composition API
* Convert RecipeCategoryTagSelector to composition API
* Properly import vuetify type definitions
* Convert BaseButton to composition API
* Convert AutoForm to composition API
* Remove unused requests API file
* Remove static routes from recipe API
* Fix more type errors
* Convert AppHeader to composition API, fixing some search bar focus problems
* Convert RecipeDialogSearch to composition API
* Update API types from pydantic models, handle undefined values
* Improve more typing problems
* Add types to other plugins
* Properly type the CRUD API access
* Fix typing of static image routes
* Fix more typing stuff
* Fix some more typing problems
* Turn off more rules
* simplify context menu
* move computed to comp-api
* feat: ✨ create share tokens for recipes for sharing recieps to non-users
* feat: ✨ shareable recipe links with og tags
* move api clients and rename
* organize recipes composables
* rewrite useRecipeContext
* refactor(frontend): ♻️ abstract common ingredient functionality.
* feat(frontend): ✨ add scale, and back to recipe button + hide ingredients if none
* update regex to mach 11. instead of just 1.
* minor UX improvements
Co-authored-by: Hayden K <hay-kot@pm.me>
* make entry for NLP model `setup-model`
* add comments
* feat(frontend): ✨ Rewrite context menu in TS and add 'add to mealplan' options
* add note to changelog
Co-authored-by: Hayden K <hay-kot@pm.me>
* fix(backend): 🐛 Fix favorite assignment on backend
* fix(frontend): 🐛 fix printer button on recipe page
* style(frontend): 🚸 add user feadback on copy of recipe link
* fix(frontend): 🐛 Fix enableLandscape incorrect bindings to remove duplicate values
* feat(frontend): ✨ add ingredient copy button for markdown list -[ ] format
* feat(frontend): ✨ add remove prefix button to bulk entry
* fix(frontend): 🐛 disable random button when no recipes are present
* fix(frontend): ✨ fix .zip download error
* fix(frontend): 🚸 close image dialog on upload/get
* fix(frontend): 🐛 fix assignment on creation for categories and tags
* feat(frontend): ✨ Open editor on creation / fix edit button on main screen
* fix(frontend): 🐛 fix false negative regex match for urls on creationg page
* feat(frontend): 🚸 provide better user feadback when recipe exists
* feat(frontend): ✨ lock bulk importer on submit
* remove zip from navigation
* fix(frontend): ✨ rerender recipes on delete
Co-authored-by: Hayden K <hay-kot@pm.me>
* refactor(frontend): ♻️ major rewrite/improvement of use-profile pages
* refactor(frontend): ♻️ split webhooks into their own page
Co-authored-by: hay-kot <hay-kot@pm.me>