- added; new
localFile
field type, thanks Alan Shaw - added;
hidden: true
option for lists - fixed; uploading works again for
cloudinaryImages
fields
- fixed; "moment not defined" error in S3File field type, thanks Olivier Vaillancourt
- added; ability to define attachments to emails via Mandrill, thanks Tom Walker
- improved; log formatting and error output
- fixed; default 404 handling, thanks Lepi
- added; new
keystone.import(path)
method for recusrively requiring all.js
/.coffee
files in a path relative to the project root, e.g.keystone.import('models')
. Similar to but simpler thankeystone.importer()
. - improved; the default 404 and 500 error handlers have been cleaned up, and have a simple HTML template
- added; filtering now implemented for location fields
- improved; the list download > csv feature in the Admin UI now respects the current filters
- added; more flexible environment variable defaults for mongo connection strings. It supports
env.MONGO_URI
,env.MONGO_URL
,env.MONGOLAB_URI
andenv.MONGOLAB_URL
, so whatever default you're using, it should be there. - added; the http server is now accessible as
keystone.httpServer
, thanks B. August - added; pre upload queue for s3file field type (set the
pre.upload
option, or call{list}.fields.{s3filefield}.pre('upload', ...)
) - added; initial (create form) support for location fields
- added; initial (create form) support for markdown fields, thanks Jimmy Hillis
- improved; much more flexible support for http server startup options, see #154
A bumper release for the new year! We've moved to v0.2.x because some packages have been updated to new minor versions that may cause compatibility issues, specifically:
KeystoneJS now requires mongoose 3.8.5+. Please test compatibility with your application before deploying this update to production.
This version also requires Jade 1.x, which includes some breaking changes from the 0.x branch, particularly to doctype definition. Updating your app should be simple, but again, be sure to test before deploying to production.
One of the other big changes in this release is the work done by Iulian Meghea breaking up all the field templates into individual files, in preparation for introducing field type plugins in the future.
- lots of website, readme and documentation improvements
- fixed; potential issue with flash errors erroring with TypeError: Cannot read property 'flash' of undefined, thanks James Allen
- improved; Add options to s3file field type to support allowedTypes, thanks James Allen
- added; host option to specify the ip address to listen on, thanks Jose Carvajal
- improved; better error handling, see #144
- fixed; placeholder for items without a name when creating a relationship in the admin UI, see #117
- fixed; keystone error on blank date / date time fields, thanks Mark Bayfield
- fixed; columns filter button position in development env, thanks Mike Causer
- added; mongo connection defaults, see #124
- improved; sign-out page text
- fixed; hard-to-debug errors in schemaPlugins when callbacks are omitted
- fixed; compatibility for location auto-improve w/ mongoose 3.8.2+
- added; gravatar functionality for email fields, including gravatar display in the Admin UI's list and edit views, and a
gravatarUrl
underscore method, thanks Mike Causer - fixed; try/catch for missing Pre-route middleware, thanks Mark Bayfield
- fixed; .env defaults for s3 config, see #143
- fixed; check for cloudinary config when
CloudinaryImage
fields are initialised, see #28 - added; current KeystoneJS version displayed in footer of Admin UI, see #130
- updated; marked v0.3.0
- updated; mongoose v0.8.5
- updated; keystone-utils v0.1.5
- updated; jade v1.1.5
- updated; async v0.2.10
- updated; moment v2.5.1
- updated; less-middleware v0.1.15
- fixed; incompatibility with mongoose 3.8.2+ for location fields has been resolved, thanks jbalde
- fixed; compatibibility issues with Jade 1.0.0, preparing for update
- improved; nicer default .env keys for mandrill and embedly api key config, falls back to legacy / heroku default key names
- fixed; problem with the new options implementation when cloudinary is not used
- fixed; correctly escaping HTML entities in names through the API
- updated; keystone-utils to 0.1.4
- fixed; better implementation of cloudinary config, fixes #69
- improved; more robust / consistent initialisation of options with process.env variables
- added; new
custom engine
option for using view engines not natively supported byexpress
, thanks JeremyFouriaux
- improved; the updateHandler will now allow required fields to be omitted from input data when an item already has a value for the field
- improved; relationship fields now support custom labels and notes, thanks mbayfield
- fixed; support for
heading
as a field path, thanks mbayfield
- fixed; res.apiError was broken (when using
keystone.initAPI
) - fixed; minor tweaks to the Email class and default template
- updated; keystone-utils to 0.1.3
- added;
moment
andparse
underscore methods for thedate
anddatetime
fields - fixed; bugs searching lists with name fields in the admin ui
- fixed; sorting by name fields in the admin ui was not working correctly
- added; you can now provide a
paths
option to theUpdateHander
to map custom field names to item field paths for processing - improved; default email templates have been redesigned, with new theme options and defaults, thanks jossmackison
- improved; s3file fields expose a direct
uploadFile
underscore method, for use outside of anupdateHandler
, thanks bladey - fixed; support for extended characters in utils.pathToLabel (via
keystone-utils
), thanks itzaks
- added; new
s3file
field, thanks bladey
- added; new
list.getUniqueValue(path, generator, limit, callback)
method - added; lots of new documentation in the website
- fixed; updating relationship fields from arrays
- improved; updates to the Email class, adding default email templates (based on VIRB Ink, currently very basic)
- removed; br() method from Email template locals (vendor prefixes not necessary in modern browsers anymore)
If you are currently using the br
method in your email templates, make sure it is removed or your templates will break.
Note: To run the docs website locally, go to /docs
and run node web
. It will start up at http://localhost:8080
- misc bug fixes
- added; new
markdown
field type - improved; massive enhancements to the
cloudinaryimage(s)
fields, thanks bladey
- added;
keystone.content
class and the start of a page-content management framework - added; new functionality for integrating front-end editing
- fixed; minor issues with the list controls in the admin UI
- fixed; passing populateRelated string as 3rd argument of View.query
- improved; support for detecting presence of
req.body
/req.query
keys onView.on('post' || 'get')
- added; support for callbacks in the
keystone.View
class. available callbacks areerr
(when the first argument returned by the query callback is not null, takes a single argument which is the error),none
(when the results array is empty or the results argument is null),then
(called unlesserr
ornone
is present and called, takes three arguments:err
,results
,next
)- e.g.
view.query(as, query, { err: errorHandlerCallback, none: noResultsCallback })
or view.query(as, query).none(noResultsCallback).then(defaultCallback)
- e.g.
- added; autokey now supports a
unique
option- set to
true
for unique keys within the whole collection, or a filters object for unique keys within a specific set of documents
- set to
- improved; document id is now hidden in favour of the autokey (if there is one)
- press
alt
to see the document id
- press
- added; you can now navigate to the linked document in a relationship field (only updated on load, for now)
- improved; the
utils
library has been moved to its own npm package,keystone-utils
- changed; default date format changed from
YYYY-MM-DD
toDo MMM YYYY
, it's friendlier- the
format
option forDate
andDatetime
fields can be used to override this setting on a per-field basis
- the
- added; ability to use dependsOn with headers, thanks itzaks
- new syntax is
{ heading: 'Heading with dependency', dependsOn: { field: 'value'} }
- new syntax is
- added; url parameter for the admin list view that updates all items in a list, optionally with data
/keystone/list?update
/keystone/list?update={"field":"value"}
- added; ability to override
changedOn
value when using thestandard meta
fields - fixed; cell overflow is now hidden in the admin list view
- added; support for additional cloudinary transformations
- added; support for passing options to cloudinary transformation shortcut underscore methods
- fixed; the default field validator now trims strings before testing for length when determining validity
- changed; mongoose >3.6.20 is now required, allowing usage of 3.8 +
- improved; added webp and progressive jpeg options to
cloudinaryimage
field - improved; added ability to pass options to
cloudinaryimage
underscore shortcuts (limit
,fill
, etc.) - fixed; underscoreMethods for fields that implement their own addToSchema method (were missing .format, etc)
- improved;
format
function forlocation
fields now supports a list of fields to include
- added; new embedly field type
- added; client-side deleting of items in the list view
- added; ability to use custom validation methods with updatehandlers
- improved; autokeys can now build a key from multiple paths, and support format strings
- improved; autokeys now understand virtual paths (and will always regenerate if one is detected)
- improved; default format settings for uneditable date fields
- fixed; incorrect path in public underscore.map file
- site; minor updates
- changed; switched to bcrypt-nodejs module becase of build issues on windows, thanks sullivanpt
- improved; added intelliJ project files to .gitignore, thanks sullivanpt
- fixed; utils.htmlToText was removing without adding a space
- added; coffeescript file support in the importer, thanks itzaks