feat: pantry notes/categories, ingredient-alias matching, cook-log edit/delete, fork-list popover (v0.83.0)
Pantry: notes + category fields (collapsible grouping like the shopping list), a "Merge duplicates" cleanup action, and fixed quantity display precision (was showing raw decimal(10,4) strings like "0.3333 kg" everywhere — pantry, shopping list, print views, Markdown exports). Ingredient-alias matching: the ingredients table (canonical name + aliases) existed but was never populated or used. Seeded ~10 bilingual EN/FR staples and wired resolution into pantry add/edit, can-cook scoring, auto-deduct-on-cook, and shopping-list pantry-awareness, so "sel"/"sel fin"/"table salt" are recognized as the same ingredient. Cook log: entries from "Mark cooked" can now be edited and deleted (previously log-only, no fix-a-mistake path). The "Cooked N times" text is a hover tooltip listing every date and opens a full manage sheet on click. Also: the "Forked by N others" backlink is now a click-to-open popover instead of an always-inline list. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -161,6 +161,17 @@
|
||||
"markCookedCountSingular": "Cooked 1 time",
|
||||
"markCookedCountPlural": "Cooked {count} times",
|
||||
"markCookedLast": " · last {date}",
|
||||
"cookLogMore": "+{count} more",
|
||||
"cookLogSheetTitle": "Cook history",
|
||||
"cookLogEmpty": "No cooks logged yet.",
|
||||
"cookLogNotesLabel": "Notes",
|
||||
"editCookLogTitle": "Edit cook log",
|
||||
"editCookLogSaved": "Cook log updated",
|
||||
"editCookLogFailed": "Failed to update cook log",
|
||||
"deleteCookLogSuccess": "Cook log removed",
|
||||
"deleteCookLogFailed": "Failed to remove cook log",
|
||||
"deleteCookLogConfirmTitle": "Remove this cook log?",
|
||||
"deleteCookLogConfirmDescription": "Remove the {date} entry from your cook history? This won't undo any pantry deduction from when it was logged.",
|
||||
"batchCookExpiresOn": "Cooked — good until {date}",
|
||||
"servings": "{count} servings",
|
||||
"prep": "{mins}m prep",
|
||||
@@ -745,6 +756,7 @@
|
||||
"loading": "Loading…",
|
||||
"error": "Something went wrong",
|
||||
"save": "Save",
|
||||
"saving": "Saving…",
|
||||
"saved": "Saved",
|
||||
"saveFailed": "Failed to save",
|
||||
"exportMarkdown": "Export as Markdown",
|
||||
@@ -1158,7 +1170,19 @@
|
||||
"scanNotFound": "Product not found. Try a photo scan instead.",
|
||||
"scanPhotoFailed": "Photo scan failed",
|
||||
"scanNoItemsFound": "No items recognized in this photo",
|
||||
"cameraError": "Couldn't access the camera"
|
||||
"cameraError": "Couldn't access the camera",
|
||||
"editItem": "Edit item",
|
||||
"editDialogTitle": "Edit pantry item",
|
||||
"editSaved": "Item updated",
|
||||
"editFailed": "Failed to update item",
|
||||
"categoryLabel": "Category",
|
||||
"notesLabel": "Notes",
|
||||
"notesPlaceholder": "e.g. opened, half used, brand preference…",
|
||||
"uncategorized": "Uncategorized",
|
||||
"mergeDuplicates": "Merge duplicates",
|
||||
"mergeDuplicatesFailed": "Failed to merge duplicates",
|
||||
"mergeDuplicatesNoneFound": "No duplicates found",
|
||||
"mergeDuplicatesSuccess": "{count, plural, one {Merged 1 duplicate item} other {Merged {count} duplicate items}}"
|
||||
},
|
||||
"feed": {
|
||||
"title": "Feed",
|
||||
|
||||
Reference in New Issue
Block a user