diff --git a/cookbook/views/api.py b/cookbook/views/api.py
index 17b328087..70a0d7cdc 100644
--- a/cookbook/views/api.py
+++ b/cookbook/views/api.py
@@ -1807,7 +1807,8 @@ class RecipeUrlImportView(APIView):
if scrape:
response['recipe'] = helper.get_from_scraper(scrape, request)
response['images'] = list(dict.fromkeys(get_images_from_soup(scrape.soup, url)))
- response['duplicates'] = Recipe.objects.filter(space=request.space, source_url=url).values('id', 'name').all()
+ if url and url.strip() != '':
+ response['duplicates'] = Recipe.objects.filter(space=request.space, source_url=url.strip()).values('id', 'name').all()
return Response(RecipeFromSourceResponseSerializer(context={'request': request}).to_representation(response), status=status.HTTP_200_OK)
else:
diff --git a/vue3/src/locales/ar.json b/vue3/src/locales/ar.json
index 74a588684..889063d78 100644
--- a/vue3/src/locales/ar.json
+++ b/vue3/src/locales/ar.json
@@ -324,6 +324,8 @@
"Size": "",
"Social_Authentication": "",
"Sort_by_new": "",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/bg.json b/vue3/src/locales/bg.json
index 9570b72fe..6bafdebe1 100644
--- a/vue3/src/locales/bg.json
+++ b/vue3/src/locales/bg.json
@@ -317,6 +317,8 @@
"Size": "Размер",
"Social_Authentication": "",
"Sort_by_new": "Сортиране по ново",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/ca.json b/vue3/src/locales/ca.json
index 9873c1991..8f39eaa62 100644
--- a/vue3/src/locales/ca.json
+++ b/vue3/src/locales/ca.json
@@ -401,6 +401,8 @@
"Size": "",
"Social_Authentication": "",
"Sort_by_new": "Ordenar a partir del més nou",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/cs.json b/vue3/src/locales/cs.json
index fca3e281c..92c0e23e7 100644
--- a/vue3/src/locales/cs.json
+++ b/vue3/src/locales/cs.json
@@ -397,6 +397,8 @@
"Size": "Velikost",
"Social_Authentication": "Přihlašování pomocí účtů sociálních sítí",
"Sort_by_new": "Seřadit od nejnovějšího",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/da.json b/vue3/src/locales/da.json
index 3e7bed3f5..f1aca7666 100644
--- a/vue3/src/locales/da.json
+++ b/vue3/src/locales/da.json
@@ -376,6 +376,8 @@
"Size": "Størrelse",
"Social_Authentication": "Social authenticering",
"Sort_by_new": "Sorter efter nylige",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/de.json b/vue3/src/locales/de.json
index ff5392721..97f99880d 100644
--- a/vue3/src/locales/de.json
+++ b/vue3/src/locales/de.json
@@ -405,6 +405,8 @@
"Size": "Größe",
"Social_Authentication": "Login über Drittanbieter",
"Sort_by_new": "Nach Neueste sortieren",
+ "SourceImportHelp": "Importiere JSON im schema.org/recipe format oder eine HTML Seite mit json+ld Rezept bzw. microdata.",
+ "SourceImportSubtitle": "Importiere JSON oder HTML manuell.",
"SpaceLimitExceeded": "Dein Space hat ein Limit überschritten, manche Funktionen wurden eingeschränkt.",
"SpaceLimitReached": "Dieser Space hat ein Limit erreicht. Es können keine neuen Objekte von diesem Typ angelegt werden.",
"SpaceMemberHelp": "Füge Benutzer hinzu indem du Einladungen erstellst und Sie an die gewünschte Person sendest.",
diff --git a/vue3/src/locales/el.json b/vue3/src/locales/el.json
index 83f3f76cb..3c4e1fee1 100644
--- a/vue3/src/locales/el.json
+++ b/vue3/src/locales/el.json
@@ -368,6 +368,8 @@
"Size": "Μέγεθος",
"Social_Authentication": "Ταυτοποίηση μέσω κοινωνικών δικτύων",
"Sort_by_new": "Ταξινόμηση κατά νέο",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/en.json b/vue3/src/locales/en.json
index 5f9a94a34..b4a29f821 100644
--- a/vue3/src/locales/en.json
+++ b/vue3/src/locales/en.json
@@ -403,6 +403,8 @@
"Size": "Size",
"Social_Authentication": "Social Authentication",
"Sort_by_new": "Sort by new",
+ "SourceImportHelp": "Import JSON in schema.org/recipe format or html pages with json+ld recipe or microdata.",
+ "SourceImportSubtitle": "Import JSON or HTML manually.",
"SpaceLimitExceeded": "Your space has surpassed one of its limits, some functions might be restricted.",
"SpaceLimitReached": "This Space has reached a limit. No more objects of this type can be created.",
"SpaceMemberHelp": "Add users to your space by creating an Invite Link and sending it to the person you want to add.",
diff --git a/vue3/src/locales/es.json b/vue3/src/locales/es.json
index f89e2f8d7..6dd969486 100644
--- a/vue3/src/locales/es.json
+++ b/vue3/src/locales/es.json
@@ -400,6 +400,8 @@
"Size": "Tamaño",
"Social_Authentication": "Autenticación Social",
"Sort_by_new": "Ordenar por novedades",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/fi.json b/vue3/src/locales/fi.json
index 6c3343efb..23daa2031 100644
--- a/vue3/src/locales/fi.json
+++ b/vue3/src/locales/fi.json
@@ -246,6 +246,8 @@
"Size": "Koko",
"Social_Authentication": "",
"Sort_by_new": "Lajittele uusien mukaan",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/fr.json b/vue3/src/locales/fr.json
index 8838bcb6a..02ab83b3c 100644
--- a/vue3/src/locales/fr.json
+++ b/vue3/src/locales/fr.json
@@ -401,6 +401,8 @@
"Size": "Taille",
"Social_Authentication": "Authentification Sociale",
"Sort_by_new": "Trier par nouveautés",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/he.json b/vue3/src/locales/he.json
index 5baa3f797..cff45c3c9 100644
--- a/vue3/src/locales/he.json
+++ b/vue3/src/locales/he.json
@@ -402,6 +402,8 @@
"Size": "גודל",
"Social_Authentication": "אימות חברתי",
"Sort_by_new": "סדר ע\"י חדש",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/hu.json b/vue3/src/locales/hu.json
index fbb08a457..8dc4d51b4 100644
--- a/vue3/src/locales/hu.json
+++ b/vue3/src/locales/hu.json
@@ -370,6 +370,8 @@
"Size": "Méret",
"Social_Authentication": "",
"Sort_by_new": "Rendezés legújabbak szerint",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/hy.json b/vue3/src/locales/hy.json
index 903311330..f22b9c706 100644
--- a/vue3/src/locales/hy.json
+++ b/vue3/src/locales/hy.json
@@ -187,6 +187,8 @@
"Size": "",
"Social_Authentication": "",
"Sort_by_new": "Տեսակավորել ըստ նորերի",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/id.json b/vue3/src/locales/id.json
index 7c543c4b9..027ac3e6b 100644
--- a/vue3/src/locales/id.json
+++ b/vue3/src/locales/id.json
@@ -346,6 +346,8 @@
"Size": "Ukuran",
"Social_Authentication": "",
"Sort_by_new": "Urutkan berdasarkan baru",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/is.json b/vue3/src/locales/is.json
index 526de7a9f..57104b74c 100644
--- a/vue3/src/locales/is.json
+++ b/vue3/src/locales/is.json
@@ -400,6 +400,8 @@
"Size": "",
"Social_Authentication": "",
"Sort_by_new": "",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/it.json b/vue3/src/locales/it.json
index 53c742262..4ea944e96 100644
--- a/vue3/src/locales/it.json
+++ b/vue3/src/locales/it.json
@@ -354,6 +354,8 @@
"Size": "Dimensione",
"Social_Authentication": "Autenticazione social",
"Sort_by_new": "Prima i nuovi",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/lt.json b/vue3/src/locales/lt.json
index 23c37e1e4..190871cea 100644
--- a/vue3/src/locales/lt.json
+++ b/vue3/src/locales/lt.json
@@ -374,6 +374,8 @@
"Size": "",
"Social_Authentication": "",
"Sort_by_new": "Rūšiuoti pagal naujumą",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/nb_NO.json b/vue3/src/locales/nb_NO.json
index e53338f99..e92815716 100644
--- a/vue3/src/locales/nb_NO.json
+++ b/vue3/src/locales/nb_NO.json
@@ -366,6 +366,8 @@
"Size": "Størrelse",
"Social_Authentication": "",
"Sort_by_new": "Sorter etter nyest",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/nl.json b/vue3/src/locales/nl.json
index 1b1a73b38..12e21d5d4 100644
--- a/vue3/src/locales/nl.json
+++ b/vue3/src/locales/nl.json
@@ -370,6 +370,8 @@
"Size": "Grootte",
"Social_Authentication": "Authenticeren met sociale media-account",
"Sort_by_new": "Sorteer op nieuw",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/pl.json b/vue3/src/locales/pl.json
index 5303c1cf6..919603d7e 100644
--- a/vue3/src/locales/pl.json
+++ b/vue3/src/locales/pl.json
@@ -403,6 +403,8 @@
"Size": "Rozmiar",
"Social_Authentication": "Uwierzytelnianie społecznościowe",
"Sort_by_new": "Sortuj według nowych",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/pt.json b/vue3/src/locales/pt.json
index 4ae576a6c..5711226e6 100644
--- a/vue3/src/locales/pt.json
+++ b/vue3/src/locales/pt.json
@@ -311,6 +311,8 @@
"Size": "Tamanho",
"Social_Authentication": "",
"Sort_by_new": "Ordenar por mais recente",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/pt_BR.json b/vue3/src/locales/pt_BR.json
index 2b34d8066..579c359ca 100644
--- a/vue3/src/locales/pt_BR.json
+++ b/vue3/src/locales/pt_BR.json
@@ -388,6 +388,8 @@
"Size": "Tamanho",
"Social_Authentication": "",
"Sort_by_new": "Ordenar por novos",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/ro.json b/vue3/src/locales/ro.json
index c2e078ffe..3f6fe72f1 100644
--- a/vue3/src/locales/ro.json
+++ b/vue3/src/locales/ro.json
@@ -358,6 +358,8 @@
"Size": "Marime",
"Social_Authentication": "Autentificare socială",
"Sort_by_new": "Sortare după nou",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/ru.json b/vue3/src/locales/ru.json
index cbc6cf522..594c1e48c 100644
--- a/vue3/src/locales/ru.json
+++ b/vue3/src/locales/ru.json
@@ -296,6 +296,8 @@
"Size": "Размер",
"Social_Authentication": "",
"Sort_by_new": "Сортировка по новизне",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/sl.json b/vue3/src/locales/sl.json
index fdeabe50c..2d69a98a6 100644
--- a/vue3/src/locales/sl.json
+++ b/vue3/src/locales/sl.json
@@ -286,6 +286,8 @@
"Size": "Velikost",
"Social_Authentication": "",
"Sort_by_new": "Razvrsti po novih",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/sv.json b/vue3/src/locales/sv.json
index f12739139..a4e8ae4a6 100644
--- a/vue3/src/locales/sv.json
+++ b/vue3/src/locales/sv.json
@@ -403,6 +403,8 @@
"Size": "Storlek",
"Social_Authentication": "Social autentisering",
"Sort_by_new": "Sortera efter ny",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/tr.json b/vue3/src/locales/tr.json
index 8141f1ce6..1dd3d877c 100644
--- a/vue3/src/locales/tr.json
+++ b/vue3/src/locales/tr.json
@@ -402,6 +402,8 @@
"Size": "Boyut",
"Social_Authentication": "Sosyal Kimlik Doğrulama",
"Sort_by_new": "Yeniye göre sırala",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/uk.json b/vue3/src/locales/uk.json
index de032d201..b9d61b4e1 100644
--- a/vue3/src/locales/uk.json
+++ b/vue3/src/locales/uk.json
@@ -332,6 +332,8 @@
"Size": "Розмір",
"Social_Authentication": "",
"Sort_by_new": "",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/zh_Hans.json b/vue3/src/locales/zh_Hans.json
index b9b61b5a0..2af5b71e1 100644
--- a/vue3/src/locales/zh_Hans.json
+++ b/vue3/src/locales/zh_Hans.json
@@ -396,6 +396,8 @@
"Size": "大小",
"Social_Authentication": "社交认证",
"Sort_by_new": "按新旧排序",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/locales/zh_Hant.json b/vue3/src/locales/zh_Hant.json
index c03727f0d..be26bf261 100644
--- a/vue3/src/locales/zh_Hant.json
+++ b/vue3/src/locales/zh_Hant.json
@@ -157,6 +157,8 @@
"Size": "",
"Social_Authentication": "",
"Sort_by_new": "按最新排序",
+ "SourceImportHelp": "",
+ "SourceImportSubtitle": "",
"SpaceLimitExceeded": "",
"SpaceLimitReached": "",
"SpaceMemberHelp": "",
diff --git a/vue3/src/pages/RecipeImportPage.vue b/vue3/src/pages/RecipeImportPage.vue
index c6ce56dbe..78af29674 100644
--- a/vue3/src/pages/RecipeImportPage.vue
+++ b/vue3/src/pages/RecipeImportPage.vue
@@ -10,7 +10,7 @@
-
+
@@ -86,13 +86,24 @@
@click="importType = 'bookmarklet'">
+
+
+
+
- {{ $t('Next') }}
+ {{ $t('Next') }}
{{ $t('Next') }}
{{ $t('Next') }}
@@ -108,12 +119,15 @@
+
+
{{ $t('Back') }}
{{ $t('Load') }}
+ {{ $t('Load') }}
{{ $t('Load') }}
@@ -445,8 +459,10 @@ const importApp = ref('DEFAULT')
const stepper = ref("type")
const dialog = ref(false)
const loading = ref(false)
+
const importUrl = ref("")
+const sourceImportText = ref("")
const appImportFiles = ref([])
const appImportDuplicates = ref(false)
const appImportLog = ref(null)