Skip to content

Releases: cfwheels/cfwheels

CFWheels Version 1.4.6

01 Oct 11:00
Compare
Choose a tag to compare

Bug Fixes

  • Made humanize() keep spaces in input.
  • Added spatial datatypes for MySQL.
  • Scope variable to avoid object being returned as NULL.
  • Include "MariaDB" in database check connection string.
  • Fixes MySQL attempts to insert nulls for blank strings.

CFWheels Version 2.0.0

30 Sep 15:16
Compare
Choose a tag to compare

Bug Fixes

  • Support passing in encode="attributes" to submitTag(), buttonTag(), paginationLinks(), checkBoxTag(), and checkBox() - #816 [Per Djurner, Tom King]
  • Support passing in encode="attributes" to date helpers - #818 [Per Djurner]

CFWheels Version 2.0.0 RC 1

21 Aug 14:04
Compare
Choose a tag to compare
Pre-release

Model Enhancements

  • Added global setting (createMigratorTable) for creating migrations table - #796 [Adam Chapman, Per Djurner]

View Enhancements

  • Use association to create automatic property labels on belongsTo() - #618 [Andy Bellenie, Chris Peters]
  • The output of all view helpers is now encoded by default - #777 [Per Djurner]

Controller Enhancements

  • Added global setting (allowCorsRequests) for allowing CORS requests to go through - #623 [Chris Peters, David Belanger, Per Djurner, Tom King]

Bug Fixes

  • Support CSRF in buttonTo() - #808 [Per Djurner, Tom King]
  • Fix encoding on buttonTo() - #798 [Per Djurner]
  • Fix error when creating default table for migrations - #791 [Adam Chapman, Per Djurner]
  • Fix so calling usesLayout() in Controller.cfc does not affect layout of internal CFWheels pages - #793 [Adam Chapman, Per Djurner]
  • Fix slow performance of findAll - #806 [Andy Bellenie]

Breaking Changes

  • Minimum version when running Lucee 5 is now 5.2.1.9 (can be disabled with the disableEngineCheck setting).
  • Minimum version when running ACF 2016 is now 2016,0,04,302561 (can be disabled with the disableEngineCheck setting).
  • includePartial() now requires the partial and query arguments to be set (if using a query)

CFWheels Version 2.0.0 Beta 1

31 May 14:56
Compare
Choose a tag to compare
Pre-release

Model Enhancements

  • Support for passing in select=false to property() to not include a calculated property by default in SELECT clauses - #122 [Adam Chapman, Per Djurner]
  • Support for setting calculated properties to a specific data type - [Per Djurner]
  • Support for returnIncludedAs and returnIncluded arguments to properties() for returning nested properties - [Adam Chapman]
  • Support for calling updateProperty() with dynamic argument, e.g. updateProperty(firstName="Per") - [Per Djurner]
  • Support for using boolean transaction argument, e.g. update(transaction=false) - #654 [Adam Chapman]
  • Support for MariaDB - #563 [AlexeiCF, Adam Chapman]
  • Model instance isPersisted() and propertyIsBlank() methods - #559 [Chris Peters]
  • Database Migrations (dbmigrate) now available in the core - #664 [Adam Chapman, Tom King, Mike Grogan]
  • Databases can now be automatically migrated to the latest version on application start - #766 [Tom King]
  • New timeStampMode setting ("utc", "local" or "epoch") for the createdAt and updatedAt columns - [Andy Bellenie]
  • Allow nested transactions - #732 [Andy Bellenie]
  • The handle argument to finders now set the variable name for the query so it's easier to find in the debug output - [Per Djurner]
  • Support added for HAVING when using aggregate functions in the where argument - #483 [Per Djurner]
  • Added support for the JSON data type in the MySQL adapter - #759 [Joel Stobart]
  • Corrected mapping for text types in the MySQL adapter - #759 [Joel Stobart]
  • Added global setting, lowerCaseTableNames, to always lower case table names in SQL statements - [Per Djurner]

View Enhancements

  • flashMessages() are now in default layout.cfm - #650 [Tom King]
  • Added ability to override value in textField(), passwordField() and hiddenField() - #633 [Per Djurner, Chris Peters]
  • Support for the method argument in buttonTo() helper - #761 [Adam Chapman]

Controller Enhancements

  • Support for HTTP verbs, scopes, namespaces, and resources in routes (ColdRoute) [Don Humphreys, James Gibson, Tom King]
  • Support for passing in ram:// resources to sendFile() - #566 [Tom King]
  • Extended sendMail() so that it can return the text and/or html content of the email - #122 [Adam Chapman]
  • renderWith() can now set http status codes in header with the status argument - #549 [Tom King]
  • Cross-Site Request Forgery (CSRF) protection - #613 [Chris Peters]
  • Parse JSON body and add to params struct - [Tom King, Per Djurner]

Bug Fixes

  • Fixes skipped model instantiation due to Linux file case sensitivity - #643 [Adam Chapman, Tom King]
  • Added spatial datatypes for MySQL - #660 [Normal Cesar]
  • Made humanize() keep spaces in input - #663 [Per Djurner, Chris Peters]
  • Avoid double redirect error when doing delayed redirects from a verification handler function - [Per Djurner]
  • Fixes attempts to insert nulls for blank strings - #654 [Andy Bellenie, Per Djurner]
  • Fix for using validatePresenceOf() with default on update - [Andy Bellenie]
  • Fixes so paginated finder calls with no records include column names - #722 [Per Djurner]
  • Fixes "invalid data" error when using unsigned integers in MySQL - #768 [Per Djurner]

Plugins

  • Plugins now distributed via forgebox.io [Tom King]
  • Update to the plugin system to allow overriding of the same framework method multiple times - #681 [James Gibson, Tom King]
  • Added ability to turn off incompatible plugin warnings from showing - [Danny Beard]
  • Plugins now have any java lib/class files automatically mapped onApplicationStart 731 [Andy Bellenie, Tom King]
  • Plugins now read version number off their box.json files and are displayed in debug area #68 [Tom King]
  • Plugin meta data as set in box.json now available in application.wheels.pluginMeta scope #68 [Tom King]

Miscellaneous

  • Redirect away after a reload request - [Chris Peters]
  • Support checking IP in http_x_forwarded_for when doing maintenance mode exclusions - [Per Djurner]
  • Support checking user agent string when doing maintenance mode exclusions - [Per Djurner]
  • Added JUnit and JSON format test results - [Adam Chapman]
  • Added empty application test directories - [Chris Peters, Adam Chapman]
  • Added default urlrewrite.xml to support Tuckey URL rewriting with Commandbox #649 - [Tom King]
  • Added beforeAll(), afterAll(), packageSetup(), packageTeardown() methods to test framework #651 - [Adam Chapman]
  • Added errorEmailFromAddress and errorEmailToAddress config settings - #95 [Andy Bellenie, Tony Petruzzi, Per Djurner]
  • Support for passing in any "truthy" value to assert() in tests - [Per Djurner]
  • Added /app/ mapping pointing to the root of the application - [Per Djurner]
  • Added a processRequest() function that simplifies testing controllers - [Per Djurner]
  • Added new embedded documentation viewer/generator for JavaDoc - #734 [Tom King]
  • Removes all references to Railo - #656 (Adam Chapman)
  • Made uncountable and irregular words configurable - #739 [Per Djurner]
  • Removed design mode - [Per Djurner]
  • Removed cacheRoutes setting - [Per Djurner]
  • The cacheFileChecking and cacheImages settings are now turned off in development mode - [Per Djurner]
  • Added includeErrorInEmailSubject setting - [Per Djurner]
  • Environment switching via URL can now be turned off via allowEnvironmentSwitchViaUrl - #766 [Tom King]

Breaking Changes

  • Minimum Lucee version is now 4.5.5.006.
  • Minimum ACF version is now 10.0.23 / 11.0.12.
  • Support for Railo has been dropped.
  • Rewrite and config files for IIS and Apache have been removed and has to be added manually instead.
  • The events/functions.cfm file has been moved to global/functions.cfm.
  • The models/Model.cfc file should extend wheels.Model instead of Wheels (models/Wheels.cfc can be deleted).
  • The controllers/Controller.cfc file should extend wheels.Controller instead of Wheels (controllers/Wheels.cfc can be deleted).
  • The init function of controllers and models should now be named config instead.
  • The global setting modelRequireInit has been renamed to modelRequireConfig.
  • The global setting cacheControllerInitialization has been renamed to cacheControllerConfig.
  • The global setting cacheModelInitialization has been renamed to cacheModelConfig.
  • The global setting clearServerCache has been renamed to clearTemplateCache.
  • The updateProperties() method has been removed, use update() instead.
  • Form labels automatically generated based on foreign key properties will drop the "Id" from the end (e.g., the label for the "userId" property will be "User", not "User Id").
  • Routes need to be updated to use the new routing system by calling mapper().
  • JavaScript arguments like confirm and disable have been removed from the link and form helper functions (use the JS Confirm and JS Disable plugins to reinstate the old behaviour).
  • Timestamping (createdAt, updatedAt) is now in UTC by default (set the global timeStampMode setting to local to reinstate the old behaviour).
  • Blank strings in SQL are now converted to null checks (e.g. where="x=''" becomes where="x IS NULL").
  • Tags are now closed in HTML5 style (e.g. <img src="x"> instead of <img src="x" />).
  • The encode argument to mailTo now encodes tag content and attributes instead of outputting JavaScript.
  • Class output is now dasherized (e.g. field-with-errors instead of fieldWithErrors).
  • The renderPage function has been renamed to renderView.

CFWheels Version 1.4.5

30 Mar 10:21
Compare
Choose a tag to compare

Bug Fixes

  • Display URL correctly in error email when on HTTPS.
  • Added the datetimeoffset data type to the Microsoft SQL Server adapter.
  • Fix for test link display in debug footer.
  • Don't include query string when looking for image on file through imageTag().
  • Format numbers in paginationLinks().
  • Correct plugin filename case on application startup.
  • Clear out cached queries on reload.

CFWheels Version 1.4.4

10 Dec 12:03
Compare
Choose a tag to compare

Bug Fixes

  • Check global "cacheActions" setting.
  • Fixed parsing for SQL IN parameters.
  • Pass through all arguments properly when using findOrCreateBy.
  • Make it possible to disable session management on a per request basis.
  • Allow mailParams to be passed through to sendEmail().
  • Fixed inconsistency in form helpers for nested properties.
  • Fixed issue with grouping on associated models.
  • Made the pagination() function available globally.

CFWheels Version 1.4.3

16 Oct 10:11
Compare
Choose a tag to compare

Bug Fixes

  • Fix for using cfscript operators in condition and unless arguments.
  • Added try / catch on getting host name since CreateObject("java") can be unavailable for security reasons.
  • Fixed bug with cache keys always changing even though the input was the same.
  • Remove white space character in output.
  • Use correct path info in error email and debug area.
  • Fixed plugin injection issue on start-up.
  • Skip calculated properties that are aggregate SQL functions in the GROUP BY clause.
  • Fixed error when trying to validate uniqueness on blank numeric properties.

CFWheels Version 1.4.2

31 Aug 13:34
Compare
Choose a tag to compare

Bug Fixes

  • Fix for selecting distinct with calculated property.
  • Fixed so default values are applied to non persistent properties.
  • Fixed missing var scope causing error on Lucee.
  • Don't show debug info on AJAX requests.
  • Fixed permissions issue with imageTag() when running on shared hosting.
  • Removed use of ExpandPath() in debug file since it was causing file permission issues.
  • Skip setting object property when NULL is passed in.
  • Fixed edge case issue with calling dynamic association methods.
  • Fixed lock name in onSessionEnd event.
  • Ignore white space in the "where" argument to finders.
  • Ignore spaces in the "keys" argument to hasManyCheckBox() and hasManyRadioButton().
  • Skip running callbacks when validating uniqueness and similar situations.
  • Avoid plugin directory exception during first application load.
  • Fix for using cfscript operators in "condition" and "unless" argument on ACF 8.
  • Fix for rolling back nested properties.
  • Ability to pass in list to "includeBlank" argument on dateSelect() and similar functions.
  • Ability to set attributes on the input element created by buttonTo().
  • Added missing "onlyPath" argument to imageTag().
  • Corrected output of property labels in error messages.

CFWheels Version 1.4.1

30 May 13:03
Compare
Choose a tag to compare

Bug Fixes

  • Skip callbacks when running calculation methods.
  • Fixed rewrite rules so base URL is rewritten correctly on Apache.
  • Removed incorrect path info information set by Apache
  • Fixed routing bug when running from a sub folder on Adobe ColdFusion 10.
  • Made sure error emails never depend on application variables being set.

Miscellaneous

  • Removed tests folder.
  • Updates to framework utility pages - Update logo, Fix links on congrats page to point to new documentation site.

CFWheels Version 1.4

08 May 11:21
Compare
Choose a tag to compare

Model Enhancements

  • Allow spaces in list passed in to the include argument on finders.
  • Added findOrCreateBy[Property](), findAllKeys(), findFirst() and findLast() finder methods.
  • Add support for GROUP BY in sum(), average() etc.
  • Made exists() check for any record when key and where is not passed in.
  • Added clearChangeInformation() for clearing knowledge of object changes.
  • Evaluate validation error messages at runtime.

View Enhancements

  • Respect blank text argument in linkTo().
  • Allow styleSheetLinkTag() and JavaScriptIncludeTag() to reference files starting from the root.
  • Added monthNames and monthAbbreviations arguments to form helpers for easy localization.

Controller Enhancements

  • Ability to prepend functions to the filter chain instead of appending.
  • Pass in appendToKey to caches() to cache content separately.
  • Allow external attachments with sendEmail().
  • Ability to redirect to a specific URL.
  • Option to correct JSON output by passing in x="string" or x="integer" to renderWith().

Bug Fixes

  • Fix for blank path_info in CGI scope.
  • Fix for accessing request scope key that does not exist from session.
  • Removed validate property that was incorrectly set when calling create().
  • Pass through parameterize in exists().
  • Do not remove AS when it's in the SQL for a calculated property.
  • Obfuscate parameters in named route patterns when URL rewriting is off.
  • Pass through includeSoftDeletes argument correctly.

Miscellaneous

  • Support for the Lucee server.
  • Made development the default environment mode.
  • Removed deprecation work-around for the if argument on validation helpers.
  • Removed deprecation work-around for the class argument on association initialization methods.
  • Removed the lib folder.
  • Removed the h() function, use XMLFormat() instead.