Releases: cfwheels/cfwheels
Releases · cfwheels/cfwheels
CFWheels Version 1.4.6
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
CFWheels Version 2.0.0 RC 1
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()
inController.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
andquery
arguments to be set (if using a query)
CFWheels Version 2.0.0 Beta 1
Model Enhancements
- Support for passing in
select=false
toproperty()
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
andreturnIncluded
arguments toproperties()
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()
andpropertyIsBlank()
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 thecreatedAt
andupdatedAt
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()
andhiddenField()
- #633 [Per Djurner, Chris Peters] - Support for the
method
argument inbuttonTo()
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 tosendFile()
- #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 thestatus
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 inapplication.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
anderrorEmailToAddress
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
andcacheImages
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 toglobal/functions.cfm
. - The
models/Model.cfc
file should extendwheels.Model
instead ofWheels
(models/Wheels.cfc
can be deleted). - The
controllers/Controller.cfc
file should extendwheels.Controller
instead ofWheels
(controllers/Wheels.cfc
can be deleted). - The
init
function of controllers and models should now be namedconfig
instead. - The global setting
modelRequireInit
has been renamed tomodelRequireConfig
. - The global setting
cacheControllerInitialization
has been renamed tocacheControllerConfig
. - The global setting
cacheModelInitialization
has been renamed tocacheModelConfig
. - The global setting
clearServerCache
has been renamed toclearTemplateCache
. - The
updateProperties()
method has been removed, useupdate()
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
anddisable
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 globaltimeStampMode
setting tolocal
to reinstate the old behaviour). - Blank strings in SQL are now converted to null checks (e.g.
where="x=''"
becomeswhere="x IS NULL"
). - Tags are now closed in HTML5 style (e.g.
<img src="x">
instead of<img src="x" />
). - The
encode
argument tomailTo
now encodes tag content and attributes instead of outputting JavaScript. - Class output is now dasherized (e.g.
field-with-errors
instead offieldWithErrors
). - The
renderPage
function has been renamed torenderView
.
CFWheels Version 1.4.5
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
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
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
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
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
Model Enhancements
- Allow spaces in list passed in to the
include
argument on finders. - Added
findOrCreateBy[Property]()
,findAllKeys()
,findFirst()
andfindLast()
finder methods. - Add support for
GROUP BY
insum()
,average()
etc. - Made
exists()
check for any record whenkey
andwhere
is not passed in. - Added
clearChangeInformation()
for clearing knowledge of object changes. - Evaluate validation error messages at runtime.
View Enhancements
- Respect blank
text
argument inlinkTo()
. - Allow
styleSheetLinkTag()
andJavaScriptIncludeTag()
to reference files starting from the root. - Added
monthNames
andmonthAbbreviations
arguments to form helpers for easy localization.
Controller Enhancements
- Ability to prepend functions to the filter chain instead of appending.
- Pass in
appendToKey
tocaches()
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"
orx="integer"
torenderWith()
.
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 callingcreate()
. - Pass through
parameterize
inexists()
. - 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, useXMLFormat()
instead.