diff --git a/vue3/src/apps/tandoor/main.ts b/vue3/src/apps/tandoor/main.ts
index 07c2780c0..944ca7dec 100644
--- a/vue3/src/apps/tandoor/main.ts
+++ b/vue3/src/apps/tandoor/main.ts
@@ -33,6 +33,7 @@ import BookViewPage from "@/pages/BookViewPage.vue";
const routes = [
{path: '/', component: StartPage, name: 'view_home'},
+ {path: '/search', redirect: 'view_home'},
{path: '/test', component: TestPage, name: 'view_test'},
{
path: '/settings', component: SettingsPage, name: 'view_settings', redirect: '/settings/account',
@@ -48,7 +49,7 @@ const routes = [
]
},
//{path: '/settings/:page', component: SettingsPage, name: 'view_settings_page', props: true},
- {path: '/search', component: SearchPage, name: 'view_search'},
+ {path: '/advanced-search', component: SearchPage, name: 'view_search'},
{path: '/shopping', component: ShoppingListPage, name: 'view_shopping'},
{path: '/mealplan', component: MealPlanPage, name: 'view_mealplan'},
{path: '/books', component: BooksPage, name: 'BooksPage'},
diff --git a/vue3/src/pages/SearchPage.vue b/vue3/src/pages/SearchPage.vue
index 04a7873d7..392cdecbd 100644
--- a/vue3/src/pages/SearchPage.vue
+++ b/vue3/src/pages/SearchPage.vue
@@ -8,12 +8,12 @@
-
+
-
-
-
-
+
+
+
+
@@ -21,14 +21,14 @@
-
+
{{ $t('Reset') }}
- {{ $t('Search') }}
+ {{ $t('Search') }}
@@ -38,11 +38,12 @@
@@ -77,12 +78,12 @@ import {VDateInput} from 'vuetify/labs/VDateInput'
import RecipeContextMenu from "@/components/inputs/RecipeContextMenu.vue";
import {useRouter} from "vue-router";
import KeywordsBar from "@/components/display/KeywordsBar.vue";
+import {VDataTableUpdateOptions} from "@/vuetify";
const {t} = useI18n()
const router = useRouter()
const urlSearchParams = useUrlSearchParams('history', {})
-const searchParameters = ref({} as ApiRecipeListRequest)
const loading = ref(false)
const tableHeaders = [
@@ -96,24 +97,25 @@ const tableItemCount = ref(0)
const recipes = ref([] as RecipeOverview[])
-watch(() => searchParameters.value.page, () => {
- searchRecipes()
-})
-
-watch(() => searchParameters.value.pageSize, () => {
- searchRecipes()
-})
-
onMounted(() => {
- if (urlSearchParams.query && typeof urlSearchParams.query === "string") {
- searchParameters.value.query = urlSearchParams.query
- }
+ urlSearchParams.page = 1
})
-function searchRecipes() {
+function searchRecipes(options: VDataTableUpdateOptions) {
let api = new ApiApi()
loading.value = true
- api.apiRecipeList(searchParameters.value).then((r) => {
+
+ urlSearchParams.page = options.page
+ if(options.itemsPerPage){
+ urlSearchParams.pageSize = options.itemsPerPage
+ }
+
+ let searchParameters = {} as ApiRecipeListRequest
+ Object.keys(urlSearchParams).forEach(key => {
+ searchParameters[key] = urlSearchParams[key]
+ })
+
+ api.apiRecipeList(searchParameters).then((r) => {
recipes.value = r.results
tableItemCount.value = r.count
}).catch(err => {
@@ -124,7 +126,9 @@ function searchRecipes() {
}
function reset() {
- searchParameters.value = {} as ApiRecipeListRequest
+ Object.keys(urlSearchParams).forEach(key => {
+ delete urlSearchParams[key]
+ })
recipes.value = []
}