- Bug fixes for AMD environments
- Bug fix for broken build, companion dependency was incorrect.
- added lazy loading callback handlers
- support for xhr timeouts
- added a code of conduct
- update to backbone 1.2.1 and all it's goodness, older versions of lodash will break with this change set. lodash.mixin should allow for a fix
- add x-http-method-override to allow for the 'emulateHTTP' property in backbone.
- bug fix for require js race condition when rendering views
- lazy loading now takes fetch_options to set any of the fetchOptions, same object as in the controller
- lazy loading now takes fetch_spec to allow for multiple models / collections to be loaded for a view on the client-side, this spec is the same as a controllers fetch spec.
- Routes can specify custom headers
- Allows for a custom layout filename
- Bugfix: Case where some views were rendered twice
- Allow for custom template finder, option for the app
- allows readFromCache to be set to true / false in the fetch spec
- Pass a templateEngine to the template adapter, at the application level.
- Dependency updates
- Bug fix for Require.js Needs to statically analyze the include in shared/app.js for the router.
- Fixes / Updates to make Rendr work with require.js
- added ability to pass in template adapter instance
- move towards pulling the view layer out
- allows watchify / browserify to rebuild single files rather than the entire package
- upgrade dependencies
- express
- underscore
- rendr-handlebars
- chai
- sinon-chai
- fix a few cases where
window.$was being accessed instead ofBackbone.$ - fix for collection store when lazy-loading a collection (two collections were in the store, now only one)
- fix for restAdapter that was putting
?when req.query was an empty object
- upgrade to express 4.11.0
- added
errorhandlerinstead of using the express.errorHandler that is deprecated
- added
- breaking dropped node 0.8 support
- breaking dropped express 3.x support
- added support for node 0.12
- removed noop definition in favor of _.noop
- breaking removed postInitialization callbacks
- fixed issue with collection where a re-fetch call will override parameters with an empty object
- v8 runtime optimizations
- fixed the way view keeps track of it's childViews
- updated all devDependencies
- updated request to use latest version - security fix
- added .jshint
- moved from
qstoqs2to supportq[]=1&q[]=2parameters for arrays by default - breaking removed
matchfunction from the server - breaking removed
checkFresh- changed to useexpireSecondsfor the store so the store can check instead
- parseModelAndCollection optionally parses sub-models / sub-collections
- fix for the re-rendering the view on a
refreshevent when the view is hydrated - upgrade to dev dependency for rendr-handlebars to 0.2.2
- parse collections into an instance of a collection if it isn't already
- Changed how views are attached to the document, now calls the
rendermethod when given the appropriate flag. - Added tests around base/view.js
- Added a
clearmethod to the model and collection stores - Fixed model collection from the store, will no longer create new instances of the model
- Added the ability to pass a JSON object to
fetch_paramswhen lazy loading views. This way we can pass multiple parameters to those models / collections. - Upgraded
qsdependency - Fixed query string attribute when loading collections, now will properly send data on client and server.
- Fix in the view's parse options to not override the model / collection attribute after they've been re-inflated.
- Added fix for the
parsemethod to allow for sub-models / sub-collections - Upgrade to Backbone 1.1.2
- Added support for nested params in ServerRouter
- [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.