feat: Added Option to Import Recipe Category During Recipe Import (#6523)

Co-authored-by: Michael Genson <genson.michael@gmail.com>
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
This commit is contained in:
Gtt1229
2026-01-30 12:18:15 -05:00
committed by GitHub
parent e3e45c534e
commit e83891e3ca
11 changed files with 86 additions and 13 deletions

View File

@@ -1,7 +1,7 @@
<template>
<v-form
ref="domUrlForm"
@submit.prevent="createFromHtmlOrJson(newRecipeData, importKeywordsAsTags, newRecipeUrl)"
@submit.prevent="createFromHtmlOrJson(newRecipeData, importKeywordsAsTags, importCategories, newRecipeUrl)"
>
<div>
<v-card-title class="headline">
@@ -63,6 +63,12 @@
hide-details
:label="$t('recipe.import-original-keywords-as-tags')"
/>
<v-checkbox
v-model="importCategories"
color="primary"
hide-details
:label="$t('recipe.import-original-categories')"
/>
<v-checkbox
v-model="stayInEditMode"
color="primary"
@@ -116,6 +122,7 @@ export default defineNuxtComponent({
const {
importKeywordsAsTags,
importCategories,
stayInEditMode,
parseRecipe,
navigateToRecipe,
@@ -160,7 +167,7 @@ export default defineNuxtComponent({
}
handleIsEditJson();
async function createFromHtmlOrJson(htmlOrJsonData: string | object | null, importKeywordsAsTags: boolean, url: string | null = null) {
async function createFromHtmlOrJson(htmlOrJsonData: string | object | null, importKeywordsAsTags: boolean, importCategories: boolean, url: string | null = null) {
if (!htmlOrJsonData) {
return;
}
@@ -179,7 +186,7 @@ export default defineNuxtComponent({
}
state.loading = true;
const { response } = await api.recipes.createOneByHtmlOrJson(dataString, importKeywordsAsTags, url);
const { response } = await api.recipes.createOneByHtmlOrJson(dataString, importKeywordsAsTags, importCategories, url);
handleResponse(response, importKeywordsAsTags);
}
@@ -188,6 +195,7 @@ export default defineNuxtComponent({
importKeywordsAsTags,
stayInEditMode,
parseRecipe,
importCategories,
newRecipeData,
newRecipeUrl,
handleIsEditJson,

View File

@@ -2,7 +2,7 @@
<div>
<v-form
ref="domUrlForm"
@submit.prevent="createByUrl(recipeUrl, importKeywordsAsTags)"
@submit.prevent="createByUrl(recipeUrl, importKeywordsAsTags, importCategories)"
>
<div>
<v-card-title class="headline">
@@ -38,6 +38,12 @@
hide-details
:label="$t('recipe.import-original-keywords-as-tags')"
/>
<v-checkbox
v-model="importCategories"
color="primary"
hide-details
:label="$t('recipe.import-original-categories')"
/>
<v-checkbox
v-model="stayInEditMode"
color="primary"
@@ -148,6 +154,7 @@ export default defineNuxtComponent({
const {
importKeywordsAsTags,
importCategories,
stayInEditMode,
parseRecipe,
navigateToRecipe,
@@ -219,7 +226,7 @@ export default defineNuxtComponent({
router.replace({ query: undefined }).then(() => router.push(to));
});
async function createByUrl(url: string | null, importKeywordsAsTags: boolean) {
async function createByUrl(url: string | null, importKeywordsAsTags: boolean, importCategories: boolean) {
if (url === null) {
return;
}
@@ -229,7 +236,7 @@ export default defineNuxtComponent({
return;
}
state.loading = true;
const { response } = await api.recipes.createOneByUrl(url, importKeywordsAsTags);
const { response } = await api.recipes.createOneByUrl(url, importKeywordsAsTags, importCategories);
handleResponse(response, importKeywordsAsTags);
}
@@ -238,6 +245,7 @@ export default defineNuxtComponent({
htmlOrJsonImporterTarget,
recipeUrl,
importKeywordsAsTags,
importCategories: importCategories,
stayInEditMode,
parseRecipe,
domUrlForm,