Amazing @boston85719, my OCD for this sort of thing kicked in out of nowhere literally 2 days ago at the exact same time. Must be something in the air. That being said, I developed a similar but different method I think might be easier for others to implement.
Step 1 - Filter by URL
On the repeating group with type “project”, I do a “search for projects” as the datasource, and I set the constraints as a filter of the option sets in the URL. My option set here is “Type” (ignore “Status” for now)
Step 2 - Create URL
To create the url I have checkboxes which trigger workflows that update the url.
- In my workflow I navigate to a “new” page (it’s the same page).
- In data to send, I return an empty search so as to avoid bringing up a specific project.
- I also send the current page parameters, so I don’t lose other param search values.
- Lastly, I create a string of words in my param “type” that I can search through for the filtering process in step 1.
Workflow for changing url
Step 3 - Dynamically set checkboxes from URL
And that’s it!
Just one workflow per checkbox, no custom states, and the url is sharable and will return the same search. Also, it will automatically sync with the search input forms when the page loads.
So obviously my example options where all one word, using your method of slug creation makes sense. It might also be possible to do that by running a “:find&replace” on the option’s name where you simply find the spaces and replace them by “-”.
Additionally, there weren’t “+” between options in the url. For my needs, it doesn’t matter, but it would be easy enough to do during step 2 if I wanted to make the url look nicer.