mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 12:18:45 -05:00
WIP search page
This commit is contained in:
26
vue3/src/components/inputs/RatingField.vue
Normal file
26
vue3/src/components/inputs/RatingField.vue
Normal file
@@ -0,0 +1,26 @@
|
||||
<template>
|
||||
<v-input label="Test" hint="Test hint" persistent-hint>
|
||||
<template #prepend v-if="$slots.prepend">
|
||||
<slot name="prepend">
|
||||
</slot>
|
||||
</template>
|
||||
|
||||
<v-rating v-model="model"></v-rating>
|
||||
|
||||
<template #append v-if="$slots.append">
|
||||
<slot name="append">
|
||||
</slot>
|
||||
</template>
|
||||
</v-input>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
||||
const model = defineModel<boolean>({required: true})
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -1217,6 +1217,8 @@ export interface ApiRecipeListRequest {
|
||||
query?: string;
|
||||
random?: string;
|
||||
rating?: number;
|
||||
ratingGte?: number;
|
||||
ratingLte?: number;
|
||||
timescooked?: number;
|
||||
units?: number;
|
||||
updatedon?: string;
|
||||
@@ -8880,6 +8882,14 @@ export class ApiApi extends runtime.BaseAPI {
|
||||
queryParameters['rating'] = requestParameters['rating'];
|
||||
}
|
||||
|
||||
if (requestParameters['ratingGte'] != null) {
|
||||
queryParameters['rating_gte'] = requestParameters['ratingGte'];
|
||||
}
|
||||
|
||||
if (requestParameters['ratingLte'] != null) {
|
||||
queryParameters['rating_lte'] = requestParameters['ratingLte'];
|
||||
}
|
||||
|
||||
if (requestParameters['timescooked'] != null) {
|
||||
queryParameters['timescooked'] = requestParameters['timescooked'];
|
||||
}
|
||||
|
||||
@@ -154,12 +154,14 @@ import {useUserPreferenceStore} from "@/stores/UserPreferenceStore";
|
||||
import {useRouteQuery} from "@vueuse/router";
|
||||
import {toNumberArray} from "@/utils/utils";
|
||||
import RandomIcon from "@/components/display/RandomIcon.vue";
|
||||
import {VRating, VSelect} from "vuetify/components";
|
||||
import RatingField from "@/components/inputs/RatingField.vue";
|
||||
|
||||
const {t} = useI18n()
|
||||
const router = useRouter()
|
||||
const {mdAndUp} = useDisplay()
|
||||
|
||||
const query = useRouteQuery('query', "",)
|
||||
const query = useRouteQuery('query', "")
|
||||
const page = useRouteQuery('page', 1, {transform: Number})
|
||||
const pageSize = useRouteQuery('pageSize', useUserPreferenceStore().deviceSettings.general_tableItemsPerPage, {transform: Number})
|
||||
|
||||
@@ -323,6 +325,56 @@ const filters = ref({
|
||||
object: false,
|
||||
searchOnLoad: true
|
||||
},
|
||||
units: {
|
||||
value: 'units',
|
||||
label: 'Unit (any)',
|
||||
hint: 'Recipes that contain any of the given units',
|
||||
enabled: false,
|
||||
default: [],
|
||||
is: ModelSelect,
|
||||
model: 'Unit',
|
||||
modelValue: useRouteQuery('units', [], {transform: toNumberArray}),
|
||||
mode: 'tags',
|
||||
object: false,
|
||||
searchOnLoad: true
|
||||
},
|
||||
internal: {
|
||||
value: 'internal',
|
||||
label: 'Hide External',
|
||||
hint: 'Hide external recipes',
|
||||
enabled: false,
|
||||
default: [],
|
||||
is: VSelect,
|
||||
items: [{value: true, title: 'Yes'}, {value: false, title: 'No'}],
|
||||
modelValue: useRouteQuery('internal ', "false"),
|
||||
},
|
||||
rating: {
|
||||
value: 'rating',
|
||||
label: 'Rating (exact)',
|
||||
hint: 'Recipes with the exact rating',
|
||||
enabled: false,
|
||||
default: 0,
|
||||
is: RatingField,
|
||||
modelValue: useRouteQuery('rating ', 0),
|
||||
},
|
||||
rating_gte: {
|
||||
value: 'rating_gte',
|
||||
label: 'Rating (>=)',
|
||||
hint: 'Recipes with the given or a greater rating',
|
||||
enabled: false,
|
||||
default: 0,
|
||||
is: RatingField,
|
||||
modelValue: useRouteQuery('rating_gte ', 0),
|
||||
},
|
||||
rating_lte: {
|
||||
value: 'rating_lte',
|
||||
label: 'Rating (<=)',
|
||||
hint: 'Recipes with the given or a smaller rating',
|
||||
enabled: false,
|
||||
default: 0,
|
||||
is: RatingField,
|
||||
modelValue: useRouteQuery('rating_lte ', 0),
|
||||
},
|
||||
})
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user