diff --git a/frontend/assets/css/main.css b/frontend/assets/css/main.css index c89c6620d66..74257bd4ae0 100644 --- a/frontend/assets/css/main.css +++ b/frontend/assets/css/main.css @@ -48,3 +48,11 @@ .v-card__title { word-break: normal !important; } + +.text-hide-overflow { + display: inline-block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 100%; +} diff --git a/frontend/components/Domain/QueryFilterBuilder.vue b/frontend/components/Domain/QueryFilterBuilder.vue index a0edf50fa5c..b87fb24618e 100644 --- a/frontend/components/Domain/QueryFilterBuilder.vue +++ b/frontend/components/Domain/QueryFilterBuilder.vue @@ -253,7 +253,7 @@ - + { + const part: QueryFilterJSONPart = { + attributeName: field.name, + leftParenthesis: field.leftParenthesis, + rightParenthesis: field.rightParenthesis, + logicalOperator: field.logicalOperator?.value, + relationalOperator: field.relationalOperatorValue?.value, + }; + + if (field.fieldOptions?.length || isOrganizerType(field.type)) { + part.value = field.values.map((value) => value.toString()); + } else if (field.type === "boolean") { + part.value = field.value ? "true" : "false"; + } else { + part.value = (field.value || "").toString(); + } + + return part; + }); + + const qfJSON = { parts } as QueryFilterJSON; + console.debug(`Built query filter JSON: ${JSON.stringify(qfJSON)}`); + return qfJSON; + } + const attrs = computed(() => { const baseColMaxWidth = 55; diff --git a/frontend/components/Domain/Recipe/RecipeSuggestion.vue b/frontend/components/Domain/Recipe/RecipeSuggestion.vue new file mode 100644 index 00000000000..b6b1008773d --- /dev/null +++ b/frontend/components/Domain/Recipe/RecipeSuggestion.vue @@ -0,0 +1,118 @@ + + + diff --git a/frontend/components/Layout/DefaultLayout.vue b/frontend/components/Layout/DefaultLayout.vue index 5e1ea6ecadc..ffba96ca40e 100644 --- a/frontend/components/Layout/DefaultLayout.vue +++ b/frontend/components/Layout/DefaultLayout.vue @@ -221,7 +221,13 @@ export default defineComponent({ icon: $globals.icons.silverwareForkKnife, to: `/g/${groupSlug.value}`, title: i18n.tc("general.recipes"), - restricted: true, + restricted: false, + }, + { + icon: $globals.icons.search, + to: `/g/${groupSlug.value}/recipes/finder`, + title: i18n.tc("recipe-finder.recipe-finder"), + restricted: false, }, { icon: $globals.icons.calendarMultiselect, diff --git a/frontend/components/global/BaseDialog.vue b/frontend/components/global/BaseDialog.vue index 9fe32100963..1a8e77ff2a1 100644 --- a/frontend/components/global/BaseDialog.vue +++ b/frontend/components/global/BaseDialog.vue @@ -45,11 +45,13 @@ + - - + {{ submitText }}