[New Feature] Multiselect dropdown & tags

I have just tested select2 multi-select boxes example and it works on mobile safari https://select2.github.io/examples.html but bubble multi dropdown only displays the list but selection doesn’t work.

+1 for having the space not adding a new entry.
The “hold the alt key” solution does not work for me, it opens some menu in Firefox…

4 Likes

Hi Ryan,

I’m using Chrome under Windows and when I hold Alt (left or right) it does not work. Alt-space opens a Windows menu. How should a user type an option that has spaces as part of its text?

Thank you,

Alex

Ahh, my mistake then. I’ve switched over to using a normal text field and having an Add button to add tags to the list instead of using the multiselect dropdown.

Best thing would be having the option to make spaces not confirm an entry. @emmanuel Please?

There are some possible hacky ways around it though, if you want to discuss those.

2 Likes

When the multiselect dropdown options box opens, it mixes the scrolldown with the page… for example, when we scroll the options and it ends, the page start scrolling and it gets very confusing. Any ideas how to fix that? It does work normally, just a matter of user experience on the page…

@pauljamess have you figured this out? Im having the same issue… when I use merge, is shows all option that have condition 1 OR condition 2… I’d like to show all options that have condition 1 AND condition 2. The best approach would be using INTERSECT WITH, which works fine, but when the user only filter condition1, it intersect with an empty search (as condition2 has not yer been defined).

It wud be something like a conditional for a constrait, but is doesnt have this option yet.

Any ideas? @romanmg?

If I’m understanding, you should be able to use one search with all constraints in the same place. Not a merging of searches.

Search for X with Constraint 1, Constraint 2, Constraint 3 = List of X that meets all 3 constraints

Search for X with Constraint 1 merged with Search for X with Constraint 2 = List of X that either meets 1 or 2 (not necessarily both)

You are correct @romanmg. The problem is that when the page is loaded the RG shows all values (the data source has no constraints). It has a conditional that once one of the filters as used, it changes the data source for the one with all constraints.

The problem is that when filter1 is actived, filter2 is empty. So the constraint2 (for filter2) makes the search to be empty.

For example:

  • I have a RG with all cashflow in my bank account, and each one of them has a Category and a Subcategory
  • I want to filter the RG with Category (filter1) AND Subcategory (filter2)
  • both filters are multidropdowns, and the default value is empty
  • The data source of the RG is Do a search for all cashflows, with no constraints
  • I have a condition on the RG that if filter1:count>0 or filter2:count>0, changes the data source to Do a search for all cashflows with constraints
  • constraints are: category is in filter1’s value and subcategory is in filter2

This way, RG shows all values. When I filter a category in filter1, is shows nothing, as the filter2 is empty (subcategory is not in filter2).

Got my problem? Im going round and round with this and need some external vision to put me out of this hole… gosh! :expressionless:

Ah, I see. So, create a condition for every scenario:

When filter 1 is active and filter 2 is active > Search with all constraints

When filter 1 is active and filter 2 is not active > Search with constraint 1

When filter 1 is not active and filter 2 is active > Search with constraint 2

When filter 1 is not active and filter 2 is not active > no condition here… just use the default search with no constraint

Yeah, I thought that way. But with 2 constraints its ok… what about 10 constraints? That is my case… I have data filters, value filters and several other attributes (account, cost center, user who created it, etc). Than this solution became exponentially impossible (literally).

In my mind it wud be as simple as giving a condition for the constraint (category is in filter1 if filter1 is active). Bam! Problem solved. But there isnt this path, and I didnt figure out how to mimic that logic.

@romanmg

So what I’ve done with super extensive filtering like this is to take it to workflows and use “display list” for each filter. I actually create a custom event with a display list action for each of filters. The custom events also trigger the next custom event in the chain, so that you can ensure each filter is being applied to an already filtered list. And you place a condition on the action so that it only runs if the filter is active - if not active, it just triggers the next filter.

Each display list action would be something like “repeating group’s list of Cashflows:filtered” (with just that event’s filter)

1 Like

hummm… you’ll try this approach… if I get stuck I’ll get back to you :slight_smile: Thanks for the attention

btw, using filters will make thing significantly slower right? as it is client side… its frustrating, the solution is so simple (conditional constraints)…

@romanmg got it! and didnt need to use :filtered, so doing everything on server side! Not sure how identical to your suggestion, but you inspired a solution and it worked! what I did:

  • created a single custom state called FILTER inside the RG (custom state type the same as the RG, and a list)
  • created a button called FILTER (instead of real-time filtering)
  • once the button is clicked, a series of workflows is triggered
  • first workflow: set state RG’s FILTER, value = Do a search for Cashflows (without any constraints, to give the full list)
  • 2nd flow: set state RG’s FILTER, value = RG’s FILTER intersect with Do a search for Cashflows (with constraint1), only when filter1:count > 0
  • 3nd flow: set state RG’s FILTER, value = RG’s FILTER intersect with Do a search for Cashflows (with constraint2), only when filter2:count > 0
  • Nth flow: set state RG’s FILTER, value = RG’s FILTER intersect with Do a search for Cashflows (with constraintN), only when filterN:count > 0
  • Display list in the RG, value = RG’s FILTER

Cawabanga! Intersection with unlimited filters without having exponential conditions and 100% server side.

Thanks a lot, @romanmg!!! Made my day (i’ve been stuck here the past few days).

5 Likes

Hi there!

First off, this multiselct dropdown is amazing! It works great for letting users add tags to a text field defined as a list.

Before I found this post, I could not figure out how to add multiple word tags when typing them into the field as if you hit a space, it adds your multi-word tag as individual tags.

example of me not knowing… ha: https://cl.ly/mR2W

So, I found that if I hold down the alt key, it allows me to add multi-word tags…
in this example, it works great holding down the alt key as i space… https://cl.ly/mQmi

By doing this is very akward and i end up accidentally hitting the space before I’m done, ha. I have seen other multi-select input fields that let you use the space and then by hitting the enter, it adds the multi-word tag.

Is there a way to set the input trigger to either a space or enter based on how we want the field to work?

Thanks again for this plug-in, it is really useful! and so quick to implement!

Best Regards,
Carey

3 Likes

Great idea!

That link is no longer in good use. Someone messed up pretty bad :slight_smile:

This is a great suggestion. @emmanuel any chance something like this might make the next round of updates?

1 Like

It would be great to be able to enter multiple words into a tag without having to hit anything other than the space bar. Is it as simple as disabling the fact that a tag is added when the spacebar is clicked?

1 Like

Does anyone know how I could use this to be able to allow my users to Search.
Example: A user selects two choices from the multi dropdown, it would show all users that contain the choices that the user selected. Right now, I’m using the following and it only works if someone only selects one option in the Multi Dropdown.

image

1 Like

This should work (assuming there is only one grade on user)

image