- [deprecation] use
initializeinstead ofpostInitialize - Fix serverSide redirectTo with rootPath != default.
- [breaking] Removed use of
options.emulateJSONandoptions.datainclientSync - [breaking] Removed
addApiParamsfromsyncer - Many more tests.
- [breaking] Moved
AppViewtoclient/fromshared/. - [breaking] Added support for AMD (RequireJS), which resulted in many methods
becoming asynchronous instead of synchronous (
Fetcher,BaseView,ModelUtils, etc. - [breaking] Removed global
entryPath; no longer referencingrendras a global. - [breaking] Refactored server code to greatly reduce amount of boilerplate needed to set up a Rendr app. Rendr now owns its own Express app, which can be mounted on existing Express apps as a simple middleware.
- [breaking]
server/server.jsnow exports a class constructor rather than a singleton. - [breaking] Removed unused
ServerRouter#stashError()method. - [breaking]
modelUtilsobject is nowModelUtilsclass. - Added
DataAdapterbase class and fleshed-outRestAdapter, which is the defaultDataAdapterused by a Rendr server. - More flexibility with placement Rendr app files within an Express project. app, and support for multiple Rendr apps in a single Express app.
- Support passing
appAttributestoinitAppmiddleware as either object or function, which takesreqandresas arguments. - Added
viewingproperty toBaseViewfor better introspection of current view state. - Fix bug where collection params weren't properly passed to collections upon view hydration.
- Attach
reqtoAppinstance on the server-side. - Switched default CommonJS packaging to Browserify from Stitch.
- Added
examples/dir, deprecating separaterendr-app-templateproject. - Fix bug where resources fetched by the
Fetcherusing spec keys other thanmodelorcollectionwould be not hydrated properly byBaseView. - Don't intercept clicked links if 'shift' or 'meta' keys pressed.
- Make it easier to use custom
AppViewclass. - Add support for RegExp routes.
- Only attempt to use
pushStateto redirect if the path matches one of the app's routes. - Trigger
action:errorevent inClientRouterif there was an error caught while running a controller's action. - Allow customizing the app's root path.
- Added better support for
options.errorcallback forBackbone.sync()in the client-side. - Automatically add
X-Forwarded-Forheader inapiProxymiddleware. - Support using functions for
BaseView#id,BaseView#className, andBaseView#tagName. - Support passing
options.statustoServerRouter#redirectTo(). - Use
sanitizermodule instead of un-maintainedvalidatormodule for XSS protection. - Update versions of dependencies:
underscore,qs,request. - Much more unit tests.
- Added Istanbul code coverage tool.
- Increment to bump
rendr-handlebarsversion.
- Support multiple layout templates.
- Use
rendr-handlebarsmodule instead ofhandlebarsmodule and utilize newtemplateAdaptersemantics (thanks @hurrymaplelad). - Fix XSS vulnerability in
ServerRouter#escapeParams(). - Fix bug in
ServerRouter#getParams(). - Change
viewEnginemodule to be a class constructorViewEngine. - Make sure to pass
appinstance to collections inFetcher#hydrate().
- Fix for allowing port in absolute model URL.
- Style tweaks for comments, binding to a context in
this.on-type events. - Added
Fetcher.prototype.needsFetchmethod, for custom model caching logic in controllers. - Fix for
syncer.checkFresh(thanks @eleventigers). - Fix for view path on Windows (thanks @vincejl).
- README updates (thanks @jacoblwe20).
- Performance improvment by caching Express router in
ServerRouterinstead of rebuilding it between requests (@jlogsdon).
- Support specifying multiple API hosts for models & controllers (thanks @technicolorenvy!).
- Support subdirectories for views & templates, and allow omitting view path in controllers, in which case view path defaults to ":controller/:action" (thanks @technicolorenvy!).
- Use ES5 native methods instead of Underscore methods:
Array.prototype.map,Function.prototype.bind,Object.create, etc. NOTE: For IE<=8 compatibility, includees5-shimandes5-shamfrom kriskowal/es5-shim as client-side dependencies in your app. - Windows-compatible
postinstallscript. - Customize Handlebars
eachhelper to pass through_app,_view, etc. into the child context, allowing cleaner{{#each}} {{view "my_view"}} {{/each}}semantics. - Allow passing absolute URLs for models and collections, which will bypass the API proxy in the client-side.
- In BaseView::getAttributes(), call toString() on model.id, for better support of Mongoose.
- In BaseView::getAttributes(), support custom this.model.idAttribute.
- Remove reference to
global.isServerin BaseView; easier to standalone test. - Default
replace: falsein ClientRouter::redirectTo().
- Support
redirectoption in routes file.
- Allow accessing
this.parentViewinBaseViewduring rendering.
- Converted all CoffeeScript files to JavaScript.
- No more globals for Backbone, _, Handlebars.
- Updating to handlebars@0.1.10 to get bundled runtime file.
- Ensuring that
ModelStorepassesappto models when instantiating them.
- Added
apiProxymiddleware, pulled fromrendr-app-template.
- Breaking change: Renamed
dataAdapter.makeRequesttodataAdapter.request.
- Removing bundled jQuery. App should provide its own.
- Allow passing
{pushState: false}toClientRouter::redirectTo()to do a full-page redirect.
- Fixed bug where status code of CRUD errors were not properly passed down from
syncer.
- Fixed bug where models within collection wouldn't have
this.appset after view hydration. - Converted
fetcherobject toFetcherclass. Prefer to access it viaapp.fetcher.
- Breaking change: Passing real
reqas first argument todataAdapter.makeRequest. - Fixing bug in ClientRouter when no querystring.
- Also return
@collection.metaand@collection.paramsinBaseView::getTemplateData(). - Support passing three args to
App::fetch().
- ClientRouter params include querystring params, just like ServerRouter.
- Initial release.