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 = [] }