- Patch for through relationship efficiency with associations with belongs_to
- Disable Turbo link prefetch for advanced inline UI
- Patch for new through relationship efficiency to handle nested relations and scope procs correctly
- Feature Release - Adds ability to tell refine to handle join tables more efficiently
- Adds ability for user to force an index for a through relationship
- Advanced Condition Select: Fixes card styling to truncate automatically
- Category Picker - smooths out category picker and makes search mutually exclusive
- Feature Release - Advanced Condition Select: Fully releases a new option for condition selects built for more complex filters
- Fixes a bug with 2.11.12 where a is_one_of and is_not_one_of clause would break the old UI
- Trims inputs in old and new UIs for values to remove leading and trailing whitespace
- WIP Feature - Advanced Condition Select: Adding stimulus controller for modal. Hides search bar if attributes tab is not active
- WIP Feature - Advanced Condition Select: Adds the saved filters tab to select stored filters. Also tweaks some default styling
- WIP Feature - Advanced Condition Select: First pass that presents a shoelace modal component. Falls back to normal popup for clause and value selection
- Removes previous flags for show_modal, fill_modal, show_save, and stack since they are not preserved through the full flow. Instead users should rely on CSS to show/hide as needed
- Simplifies the icon implementation to only impact the advanced flow
- Bugfix - fixing an issue where params being passed for fill_modal wouldn't process correctly
- WIP Feature - Adds initial framework to support a Shoelace modal component for condition selection.
- New Feature - Adds the ability to delete OR groupings which merge them as AND conjunctions
- Inline UI - adds support for stimulus tooltip plugins
- Inline UI - tweaks to responsive behavior of the toolbar
- Inline UI - Fixing bug with popup edit modals so clicking outside properly closes them
- Inline UI - configurable wrapping settings
- Inline UI - facelift for the styling of the toolbar
- Inline UI - Stretching toolbar to full width and floating save filter control container to the right, adds clear button
- New Feature - Allow icons to be used in condition dropdowns and give configurable control over rendering of the condition item. Note - this only impacts the Inline UI
- Fix - addressed an issue where if no uncategorized conditions existed, an empty optgroup would appear
- New Feature - Recommended Conditions: allows prepending condition list with recommended conditions
- New Feature - Allow a filter to specify the order of categories with
def category_order
- Inline UI - tweaking ui for condition limits to better tell user why they cannot add more.
- OptionCondition selection now has a title attribute on each selection in case of overflow. Users can hover over the items to see the full text
- Inline UI - fixed bug with turbo-streams loading a stored filter
- Inline UI - Reordering elements in popup form to flow better
- Inline UI - Improved inline-ui styling from feedback
- Inline UI - edge case cleanup for conditions with only st and nst clauses allowed
- Inline UI styling cleanup
- Refinements now work with dropdown UI
- Enhance inline option conditions
- Fix a bug where inline filters were not loading clause-appropriate forms
- Migrated gem to RubyGems.org for hosting and future updates
- Inline filters now display the user-configured list of clauses instead of all possible clauses
- DateCondition now has a validation to ensue a between range date1 is not greater than date2
- DateCondition human_readable now returns the same messaging as EQUALS or DOESNT_EQUAL when BETWEEN or NOT_BETWEEN respectively when the two dates input are the same date
- Removed the redundant refine_refine_ from the routes for refine_blueprints. It is now simply refine_blueprints
- clickOutside handler on inline popups no longer block click events when the popup is closed
- Inline filters condition list sorting ignores case
- Truncate long value names to fix a display issue
- Improvements to condition list UI in inline query builder
- Removes the Hammerstone naming convention from codebase
- Changes default StoredFilter table name to be "refine_stored_filters"
- Allows user to add timezones to human_readable outputs for DateConditions.
- more fixes for inline interface in iframes
- add turbo-stream-link stimulus controller for iframe support
- Fix for inline criteria forms in iframes
- Inline UI now supports embedding inside forms on the page
- Styling and bugfixes for inline UI
- Further improves localization support by having calendars support spanish and fixing hardcoded strings.
- Fixes an issue where if clause options dont exist, the filter form would behave erratically
- Adds additional localization support. See yml file for new supported keys
- Allow filters to determine associated model for validations
- Updated class names for the Inline UI views
- Filters should now define a
#model
method which is used to generate a base scope for evaluating stored filters when they are loaded #124
- Inline filters can now emit a
filter-submit-success
event for use in rich front-end apps #123
- Add configuration option
date_gte_uses_bod
to include a whole day in the range when using a >= comparison - Fix a bug rendering option conditions when options were defined as a Proc
- Add error handling for invalid stored filters
- Add
get_query!
method to raise an error on invalid filters
- Add
default_condition_id
attribute to filter classes.
- Add configuration option
option_condition_ordering
to allow apps to specify a custom ordering of OptionCondition options (e.g. alphabetizing)
- Add configuration option
date_lte_uses_eod
to include a whole day in the range when using a <= comparison - Fix a bug where option condition selections were being forced to the first value
- Prevent users from adding criteria if values for existing criteria are blank
- Fix a potential issue with updating Option Conditions introduced in 2.5.4
- Fixes a rendering error that occurred with multiple OptionConditions in a single filter
- Fixes an error when generating human readable display of OptionConditions that use is set / is not set
- Fix existing error for existing filters that exceed criteria limit
- Bugfix for "and" buttons creating OR groups
- Add criteria limit to filters. The default is 5 and any filters over the limit will raise
Hammerstone::Refine::Conditions::Errors::CriteriaLimitExceededError
when loaded.
- V2 "filter pill" UI and architecture. Not a breaking change, existing filters still work. This introduces an entire new concept of an inline filter.
- features
- Hotfix to allow end user to create custom condition with a left joins
- features
- added generator for creating filters
- bugfix
Clause doesn't equal
andclause not between
were not implemented for Date with time conditions. PR #98- Add in missing has_error classes as specified by Tamik
- Fix raw_attribute bug for text conditions
- Clarified the installation documentation
- Included the StoredFilter class in the gem assuming that the client would override it as necessary
- Default stored filters to false in filter_builder_dropdown
- Add automatically stabilize to the gem because it is always required
- Add the filter pill partial view to the gem (not to docs because CSS is still an issue)
- Set default stabilizers to be URL Encoded in filter.rb
- Update the configuration of stabilizer classes
- Remove loading div from filter_builder_dropdown
- Remove dependency on stimulus reveal stimulus controller
- Refactor of query and builder object. Breaking change for existing implementations. PR #86
- bugfix
- Remove constant refresh from text field
- Use correct blueprint reference in stored filter controller
- bugfix
- Setform in refine_blueprintscontroller
- Cleanup
- Separate stored filter back end (PR #83)
- Dispatch events on filter update (PR #82)
- Possible breaking change
- Remove the constant server refresh PR: #81
- bugfix
- Properly export tailwind and non tailwind css files
- features
- Export stylesheet to npm package
- features
- Allow scoping of stored filters on save
- Remove css from partials and provide file
- Get filter pills to work with remap clause display
- bugfix
- Scope stored filters properly by type and allow end user to add custom scoping
- feature
- Change datepicker to flatpickr and allow user to override
- bugfix
- For negative has many through relationships (i.e give me all contacts that don't have tag 1)add a flag to switch to "give me all contacts not in the set of contacts where tag = 1" to avoid the has many selecting contacts with multiple tags.
- bugfix
- don't send blank condition id
- Fix random blurring during filter input
- Update queries to allow for multiple databases
- bugfix
- Change buttons to divs so upstream forms aren't submitted
- bugfix
- Support turbo frame/index view so customers can load
refine_blueprints
directly without stored filters - Update locales
- Support turbo frame/index view so customers can load
- feature
- Filter pills
- breaking change
- Assign uuids to filter modals
- Switch to turbo streams
- Remove the concept of "idSuffix"
- bugfix
- Fix timezone issue with date condition
- bug-fix
- Add a fallback initial query based on the arel table only to be used for validations
- Add date picker to the gem. Note - this will override the
fields/date_controller
currently being used in client. Styles should already be imported via client, confirm before merge. - bug-fix
- Uncomment out Options Conditions test and fix
set
not-set
conditions
- Uncomment out Options Conditions test and fix
- bug-fix
- show both error messages if neither date is filled in when using "betweens"
- Use turbo streams instead of json in create action #48
- Add rake task so customer can add gem to
tmp/gems
(must be run by customer) to pick up gem styling - Use local partial
- bug-fix
- Allow deletion of single condition to blank filter state
- Load all stored filters when using stored filters view (bug - need to add scoping to filter)
- Remove workspace_record from stored filters. Client will need to override this controller to get custom attributes on stored filters
- bug-fix
- Add back and save to locales file
- bug-fix
- Allow for option condition to have no values #40
- updates
- All filters can be deleted using the delete button - there is no "default" condition
- Load the turbo frame with a "Create a filter" button instead of default condition
- Use @form in
refine_helper
instead of@refine_filter
for consistency - #41
- updates #43
- Add
Filter
button back tofilter_builder_dropdown
partial - Rename and add
search-filter-controller
Stimulus controller as a helper to get up and running fast
- Add
- updates #42
- Use blueprint as source of truth - emit
blueprintStabilized
event as main piece of information coming from Refine - Add stimulus controllers for BT integration ->
stabilize-filter-controller
andsearch-filter-controller
to get and push stableId. Optional controllers customers can use for quick setup.
- Use blueprint as source of truth - emit
- updates
- Update from Stiumulus 2 to Stimulus 3. All updates are on the javascript/npm package side, this release updates package.json to use the new package on Stimulus 3.
- bug-fix
- Move the hammerstone filter application controller helper to controllers/hammerstone so it is accessible via client's application controller if desired.
- bug-fix
- _date_picker.html.erb remove
blur
listener, keep$change
and addchange
to comply with updated bullet-train_fields npm package.
- _date_picker.html.erb remove
- enhancements
- Create app/controllers/concerns/hammerstone_filter.rb that the client can include in their application_controller. This can then be referenced in their controller they want filtered with something like @refine_filter = apply_filter(DevelopersFilter) (If in the developer_controller and want to apply DevelopersFilter) Reference in client application_controller.rb include HammerstoneFilter
- Add the search_filter_controller to the npm package. Note: this is not in the refine folder b/c it's not necessarily required
- Allow client to use ENV or Rails credentials. Need a better solution here.
- Add filter_builder_dropdown to ship with the gem so they can just render the partial. In their index view they can simply -> <%= render partial: 'hammerstone/filter_builder_dropdown' %>
- Add locales
- Add routes