Multiple selection dropdown menu widget for Reactive Web and Mobile
Example use case for Metadata fields:
Often the data the user makes their selection on (eg. City Names) is different to the date the app actually needs (eg. Entity Ids, Postcodes, Country).
Using the metadata fields allows you to keep the related information with the user selections so when the list of selections is returned to the parent context it does not have to perform another Aggregate etc. to get the data it actually needs.
Many thanks to @Bram Verlinden, @Nuno Rodrigues for testing and feedback, and @Soren Staun for providing feedback and suggesting the count of selected items feature!
Many thanks to @Michael111 for suggesting the user cannot edit item feature!
Please Note: The project's name HAD to be shortened in version v1.6.2 (due to OutSystems changes)
--------------------------------------------------------------------------------
WARNING, IF UPGRADING VERSIONS
Bugs Fixed
Features Added
Changes to demo page
Appendix A - Updating the "Select All" and "Select All Results" checkbox labels
The structure of the "Select All" and "Select All Results" checkbox labels have changed.
Previously:
The labels were comprised of TWO optional parts:Part 1 - Placeholder (eg. "SelectAllCheckboxText" placeholder)
Part 2 - number of items to (de)select, in parenthesis, with a leading space. (eg. "Menu_AddSelectAllNumber" parameter)
This allowed text like "Select All", and with the optional number added, "Select All (500)".
Now:
The labels are comprised of THREE optional parts:
Part 1 - Placeholder (eg. "SelectAllCheckboxText" placeholder)
Part 2 - number of items to (de)select, WITHOUT parenthesis, OR a leading space. (eg. "Menu_AddSelectAllNumber" parameter)
Part 3 - Placeholder (eg. "SelectAllCheckboxText2" placeholder)
Which provides more flexibility.BUT, the upgrade means YOU WILL NEED TO update the values in the placeholders!
Example 1:
If you previously had:
Part 1 = "Select All"Part 2 = " (500)" (i.e. old result of "Menu_AddSelectAllNumber = True")
Label = "Select All (500)"
Now you'll have:
Part 1 = "Select All" (i.e. existing placeholder value)Part 2 = "500" (i.e. new result of "Menu_AddSelectAllNumber = True")Part 3 = ")" (i.e. new placeholder default value)
Label = "Select All500)"Therefore, you would need to update Part 1 to "Select All (" so that:
Example 2:
Part 1 = "Select All"Part 2 = "" (i.e. the result of "Menu_AddSelectAllNumber = False")
Label = "Select All"
Part 1 = "Select All" (i.e. existing placeholder value)Part 2 = "" (i.e. the result of "Menu_AddSelectAllNumber = False")Part 3 = ")" (i.e. new placeholder default value)
Label "Select All)"Therefore, you would need to update Part 3 to "", so that: