Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Changed
- BREAKING: The
json/jsonb/hstore/xml/markdownform code editors migrate from CodeMirror 5 to CodeMirror 6. Thedata-init="codemirror"textareas are unchanged, but the helper global is nowWallabyCodeMirror(wasCodeMirror), the editor chrome selector is.cm-editor(was.CodeMirror), and thejson/jsonbfields now usedata-mode="json"(wasjavascript). Summernote’s Code View falls back to a plain textarea becausewindow.CodeMirroris no longer provided. - BREAKING: The editors use CodeMirror 6’s default light theme; the CodeMirror 5
mdn-liketheme is no longer bundled. - BREAKING:
WallabyCodeMirror.fromTextArea(element, options)returns onlyview,getValue()andsetValue(). The CodeMirror 5 helperson,getDoc,save,toTextAreaandsetSizeare not provided.
Fixed
- Wallaby’s initialisers (
documentReady) are now bound to theturbolinks:loadevent. Previously.on(handler)bound nothing, so under Turbolinks none of the CodeMirror, Summernote, date/colour/range pickers orauto_selectinitialisers ran.
Security
- Escaped flash messages and validation errors (previously rendered with
raw), preventing script injection through error text. Flash alert type tokens are also sanitized before being placed in the CSS class attribute. - Sanitized
raw-type fields on show/index pages to prevent stored XSS. - Guarded CSV exports against formula injection.
imodalmodal titles/bodies (json/jsonb/hstore/xml cells) are built with escaping helpers instead ofhtml_safestring interpolation.- Auto-select setup moved to an external asset.
belongs_to/has_many/has_and_belongs_to_manyno longer emit inline<script>; the behaviour is initialised fromdata-*attributes byapp/assets/javascripts/wallaby/auto_select_init.js.
8.0.1 - 2026-10-03
Changed
- Require Rails 8.0+ and Ruby 3.3+ (drop EOL Rails 7.1/7.2, Ruby <= 3.2)
- Point README documentation links at the in-repo
docs/site (migrated just-the-docs documentation)
Fixed
- Add missing
csvdependency (csvis no longer a default gem since Ruby 3.4)
TODOs
- Make Wallaby::ResourcesConcern with with general controllers
- Localization support: to be able to use localization for all the model labels (maybe a new gem)
- Move generator to wallaby-core
Move documentation to wallaby-core
- documentation for interface
- documentation for localization
- Data audit (use papertrail) (maybe..)
- Batch data action (maybe..)
7.0.0.beta2 -
7.0.0.beta1 - 2023-09-22
- chore: update keyword syntax to support Ruby 3.0 (#210)
- feat: extract pages into templates for better overwriting (#209)
- chore: pdate rubocop to run on changed files (#207)
- feat: use esbuild and scss-bundle to bundle js and scss (#206)
- chore: setup github action (#205)
- chore: change wallaby:install to call wallaby:engine:install and implement wallaby:engine:partials (#196)
- chore: remove type_renderer and update activestorage partial (#195)
- chore: use max_text_length helper method (#194)
- chore: detect turbolinks instead of configuration (#193)
- chore: upgrade to latest wallaby-core & wallaby-active_record (#192)
6.1.3 - 2020-04-19
- chore: bump to use wallaby-active_record 0.2.6 (#188)
6.1.2 - 2020-04-12
- chore: use wallaby_user instead, will take out current_user in the future (#185)
6.1.1 - 2020-03-24
6.1.0 - 2020-02-19
- chore: upgrade to use latest wallaby-* gems and remove Cell (#162)
6.0.2
- chore(css): get rid of bootstrap deprecation warning (#161)
- fix(js): remove the warning of moment by format the date string properly (#160)
6.0.1
- fix(gemspec): include vendor folder (#159)
6.0.0
- feat: Rails 6 support (#158)
- chore: extract files to separate gems (wallaby-core/wallaby-active_record/wallaby-her) (#156)
- [Chore] Document update for 5.2 (#155)
- [Feature] Make sure Wallaby still works without specifying resources_name in routes (#154)
- [Feature] Namespace (#153)
- [Chore] Change authorizer’s initialize to take away the dependence of context (#152)
- [Feature] wallaby:install generator (#151)
- [Feature] Remove usage of
index_params(#150) - [Feature] Router helper and support singular resourceful route (#149)
- [Feature] Custom mode (#148)
- [Chore] Theme specs (#147)
- [Chore] Remove abstract classes (#146)
- [Feature] options for controller and move servicer’s mass assignment to create/update (#145)
- [Feature] Add ActiveStorage partial and
atcell helper (#144) - [Chore] Defult to exclude model ActiveRecord::SchemaMigration (#143)
- [Feature] Upgrade to bootstrap4 and font-awesome (#142)
- [Chore] Update dropdown html syntax and remove Font Awesome (#141)
- [Chore] Update docs and make sure corresponding helper methods exists (#140)
- [Feature] Add support for single column sorting (#139)
- [Feature] Move error page to proper place so that it can be customized (#138)
- [Feature] Base class and JSON API responder (#137)
- [Chore] Reduce code duplication (#136)
- [Chore] Refactor utils (#135)
- [Feature] Support for cell to improve performance (#134)
- [Chore] HER and auto select (#133)
- [Support] Rails 4.2 and specs (#131)
- [Feature] Permitted parameters for has_many-through associations (#129)
- [Fix] Float form partial options (#128)
- [Feature] Support Pundit 2.0 (#127)
- [Feature] Sort disabled (#126)
- [Feature] Extract frontend partial (#125)
- [Chore] Resolve conflicts (#124)
- [Chore] Remove resources helper methods and update documentation (#123)
- [Feature] Authorizable and resourcable (#122)
- [Feature] Resourcable and paginatable concerns (#120)
- [Feature] Servicable (#119)
- [Feature] Adding link type for links in show and index partials (#118)
- [Feature] Decoratable (#117)
- [Chore] Pagination check for ActiveRecord collection (#116)
- [Chore] Support FontAwesome 5 (#115)
- [Feature] Remove errors layout (#114)
- [Feature] Themeable (#113)
- [Chore] Update engine url/links helper methods (#112)
- [Chore] Create helper methods to use in both controllers and views (#111)
- [Feature] Her adapter and pundit (#98)
5.1.8
- [Fix] Keep filter param for search (#102)
- [Feature] Allow custom csv partials (#103)
- [Chore] Use mapping configuration for servicer class method
model_class(#104) - [Feature] Add url_params for index and export link helper methods (#105)
- [Security] Remove option
html: truefor bootstrap tooltip to prevent XSS attack (#108). Patch for issue (#107)
5.1.7
- [Fix] Routes update for configurable
resources_controller(#99) - [Fix] Update resources router to reflect the resources controller configuration (#100)
5.1.6
- [Chore] upgrade to robucop 0.53 standard (#88)
- [Feature] Configurable global base controller/decorator/paginator/servicer (#91)
- [Feature] Add ‘step’ to float field (partial view) (#89)
- [Chore] Update documentation (#93)
- [Feature] Be able to use default base class of controller/decorator/paginator/servicer (#95)
- [Feature] Add test helper for controller tests (#96)
5.1.5
- [Chore] Simplify ‘resources/show/_image.html.erb’ (#80)
- [Chore] Add more information to the type validation message (#81)
- [Feature] Be able to customize hint in form view (#82)
- [Fix] Link of Strong Parameters (#84)
- [Fix] Restrict font-awesome-sass version to 5 and below (#85)
- [Chore] Reload should be triggered in
to_prepareinstead ofResourcesRouter(#86)
5.1.4
- Chore: Only use resource_params for create and update action (#73)
- Chore: Localization for style helpers (#74)
- Chore: Refactor class mapper to allow descendents (#75)
- Chore: Remove is_origin metadata (#76)
- Support: Manual tested under Rails 4.2 (#77)
- Feature: Ability to customize logout_path, logout_method, email_method (#78)
5.1.3
- Chore: Remove
jquery-turbolinksgem (#66) - Feature: Add html attribute
titleto the links (#67) - Chore: normalize the partials that user could replace/override (#69)
- Fix: Have to make sure that
app/modelsare loaded before Rails eager load (#68) - Chore: index_params should not contain
resources,utf8(#71)
5.1.2
- Chore: prevent the reference to model decorator from being cached (#65)
5.1.1
- Chore: update lookup context wrapper (#59)
- Chore: update application.html (#62)
- Chore: fix deprecated styling (@extend :before) (#63)
- Chore: add manual preload into initializer as well (#64)
5.1.0
- Feature: added support for ActiveRecord Single Table Inheritance (STI) (#27) and navigation for STI (#30)
- Feature: added filters metadata for provide quick access for predefined query (#34)
- Feature: added responder to handle different request formats (#35)
- Feature: export function (#37)
- Feature: UI Re-design, and mobile first (#39)
- Feature: used turbolinks to boost page load and used font-awesome to replace glyphicon (#29)
- Enhancement: colon search is enhanced using parselet (#28)
- Enhancement: typeahead for form partials (has_many/has_and_belongs_to_many/belongs_to) (#40)
- Chore: source code improvement (#26)
- Chore: remove the dependency of devise (#31)
- Chore: refactor map service (#25)
- Chore: refactor to extract/move the code into abstract classes (#33)
- Chore: added rubocop to enforce high coding standard (#32, #38)
- Chore: refactor service object to keep authorizer on initialization (#36)
- Chore: refactor imodal method (#41)
- Bugfix: fix how object is clone (#23)
- Feature: Add partials for type box/circle/line/lseg/path/polygon that are newly supported in Rails 5.0.* (#42)
- Feature: Add dropdown partial (#46)
- Feature: Add file partial (#47)
- Feature: Add markdown partial (#48)
- Feature: Add image partial (#49)
- Feature: Authorization check for relationship partials (#50)
- Feature: Configurable maxlength for partials (#52)
- Feature: Refactor resource new and find and expose permit method to controller (#53)
- Chore: Setup travis to test on rails 5.0/5.1 (#54)
- Feature: Add JSON respond for form/show (#56)
- Feature: Documentation (#57)
- Feature: Make turbolinks optional (#58)
5.0.1
- Bugfix: database migrations fail when decorator invokes form_fields and table does not exist (#4)
- Feature: Add partial to support password field (#9)
- Bugfix: Using the right metadata for index/show/form partials respectively (#12)
5.0.0
- Feature: Support for Rails 5
4.1.6
- Bugfix: database migrations fail when decorator invokes form_fields and table does not exist (#4)
- Feature: Add partial to support password field (#9)
- Bugfix: Using the right metadata for index/show/form partials respectively (#12)
4.1.5
- Support for Devise 4
4.1.4
- Bugfix: rescue NameError for Rails reload
- Bugfix: replace send to public_send
4.1.3
- Bugfix: when it’s belongs-to relationship, it should take foreign_key instead of association_foreign_key as foreign key.
4.1.2
- Moved all helpers into lib folder and included these helpers explicitly in controllers so that they won’t be shared with the main_app
- Resolved an assets issue for summernote by dynamically converting summernote.css into wallaby/summernote.scss
4.1.1
Update view paths precedence from high to low:
- app/views/WALLABY_ENGINE_MOUNT_PATH/RESOURCES_NAME/*
- app/views/CUSTOM_CONTROLLER_PATH/*
- app/view/wallaby/resources/*
WALLABY_ENGINE_MOUNT_PATH is the path where wallaby engine is mounted to. e.g. admin RESOURCES_NAME is the path formed by model class’s plural noun. e.g. order/items CUSTOM_CONTROLLER_PATH is the controller path of the controller that inherits from Wallaby::ResourcesController
- Bugfix: replace @import with require for summernote to avoid error
invalid byte sequence in UTF-8 - Enforce wallaby application controller to use designated layout
wallaby/applicationespecially when it inherits from main app’s application controller. - Rescue pagination entry from throwing error when Kaminari is not used.
4.1.0
- Added concept Mode to allow Wallaby to pick up multiple ORM adaptors apart from ActiveRecord
- Caching improvements:
- Cached compiled ERB template (not for development)
- Most Rails cache implementation for delete_match takes string instead of regex
- Cached Calculations for finding a subclass
- Resolve an issue when a file under
/appfolder is not following Rails convention (e.g. classCSVincsv.rb) or if it is a module declaration underconcernsfolder, it raises load error on booting up Rails server
4.0.1
- Fixed an issue for loading irregular classes/files under /app folder
- Ensure to support mysql and sqlite
4.0.0
- Used model class to dispatch requests to controllers
- Fixed sorting / remove link for custom fields on index page table headers
- Added types email and color for index/show/form
- Ensure all hashes used for fields is instance of ::ActiveSupport::HashWithIndifferentAccess
4.0.0.rc
- Used Rails cache for caching subclasses
- Added support for CanCanCan (authorization)
- Added support for all Postgres types
- Added support for sorting
- Added model servicer to take away the responsibilities (collection/find/initialize) for model decorator and extract all actions for resource controller
0.0.6
- Resolved Autoload issue
0.0.5
- Resolved Autoload (failed)
- Reduced view path set and speeded up page render
- Broke down resources_helper into styling_helper/links_helper/form_helper
- Added partial for type inet
0.0.4
- Basic search for collection
- Kaminari pagination for collection.
- Basic flash message.
- Authentication. It can be configured.
- Basic form errors
0.0.3
- Refactored model decorator and use
fieldsas base information for all fields - Included association fields and exclude those foreign keys for these associations
- Created general templates for show/form
0.0.2
- Moved and refactored core methods from resources controller to core controller.
- Moved prefix builder to core controller.
- Created general templates for resources index action.
- Created a wrapper to speed up view rendering by caching the
find_templateresult.