var keystone = require('keystone');
var greeter = require('keystone-greeter');
// add the greeter in your routes file
keystone.set('routes', function(app) {
/**
* set the 2nd parameter true to add statics without using keystone.set('static').
* You must do this to run .init in Keystone's route setup.
*
* Set to false if you set init right sfter Keystone.init
* if false we grab the statics with `keystone.get('static')`
* convert it to an Array and push our static routes on.
*
* DEFAULT: false
*
* **/
greeter.init({ keystone: keystone }, true);
greeter.add('/greeter');
// change the first login field
greeter.setField('login', 'text', 'A-username', {
label: 'username',
field: 'username',
//regex: ["^[^\\s@]+@[^\\s@]+\\.[^\\s@]+
The locales file will be created on first run. You can create additional locales without them being overwritten. Copy the en.json file and replace the values.
greeter.set('greeter style',true), // include default css
greeter.set('keystone style',true), // include /styles/site.min.css
greeter.set('custom style','/styles/custom.css'), // include custom css
The default is to include default greeter css first and /styles/site.min.css second so that your css automatically overrides the greeter out of the box. Custom styles is false unless explicitly set.
Registration
User registration can be toggled before calling greeter.add:
//these are the default values
greeter.set('allow register', true),
greeter.set('new user can admin', false),
greeter.set('message valid credentials', 'a valid username and password are required');
greeter.set('message welcome', 'Welcome back {user}. ');
greeter.set('message welcome login', 'Welcome back. Please signin');
greeter.set('message registration closed', 'registration is currently closed');
greeter.set('message current user', 'You are currently signed in. Do you want to <a href="/keystone/signout">sign out</a>? ');
greeter.set('message bad token', 'bad request token. <a href="javascript:location.reload()">refresh</a>');
greeter.set('message username taken', 'the username requested is not available');
greeter.set('message failed register', 'there was a problem creating your new account.');
greeter.set('message register all fields', 'please fill in username, password and password again...');
This will overwrite the built in i18n locales text. To continue using locales do something similiar:
var Text = i18n.__;
i18n.configure({
locales:['en'],
directory: __dirname + '/locales'
});
greeter.set('message valid credentials', Text('a valid username and password are required'));