Filtering Repeating Group where Data Source is an Option Set

I have a Repeating Group where the Data Source is a list of Option Sets (Called Tags). I have added a Text Input Element to the page so that I am able to filter the (Option Set)'s Tags in the Repeating Group. My filter works, however, it is case-sensitive. The Option Set items (Tags) in the Database are Capitilised, so the Input Text’s, input text must also be capitalized otherwise it won’t filter the Tag.

The filter Constraint used on the Repeating Group doesn’t give me the option to filter with “contains keyword”, only “contains”.

To get to this filter, go to the home page, click on “View Tags” button, you will see the filter input and the repeating group of tags.
Images below indcate the following, Filter Constraint on repeating group, and behaviour of filter.



1 Like

I’m not sure you’d use option sets for this use case, but let’s say you do.

To have a filter that works with or without capitals, you can use the : lowercase expression. Unfortunately Bubble does not allow Constraint: This OS's display:lowercase is Input Search ... Value's :lowercase. So we need to use a custom state for this.

Create 2 custom states on page level. 1 is called “SearchValue” and 1 “FilterActive” for example. The first is of type Text, the latter is a Boolean (yes/no).

When a user types a value into the input field and presses search, you set the value of “SearchValue” to input Search...:lowercase and you set the value of “FilterActive” to Yes.

The data source of your RG would be All OS:filtered:constraint:Page's FilterActive is No or This OS's display:lowercase is Page's SearchValue.
=> This ensures you load all Option Sets when no filter is active.

Of course you need to reset the FilterValue. So when a user presses “Clear” or Input Search Value has changed AND this input's value is empty you set the state to No again.

I hope this helps!

1 Like

Hi Olivier,

Thank you so much for your feedback. I managed to get it right on the Constraint.

1 Like

This is an excellent solution! Thank you very much. I was also looking for a way to do this! Brilliant.