summaryrefslogtreecommitdiff
path: root/app/node_modules/okadminview/index.js
diff options
context:
space:
mode:
authorSean Fridman <fridman@mail.sfsu.edu>2015-04-09 20:58:32 -0400
committerSean Fridman <fridman@mail.sfsu.edu>2015-04-09 20:58:32 -0400
commit00fd19b33ead56842daeb6f6a24735a8687f7744 (patch)
treec9602a4cdfbd6f4a5f595c14d54504b6f8593be1 /app/node_modules/okadminview/index.js
parent669d6aec9f812e4151bffbaa4f8830cf5764ee1e (diff)
Implement flash messaging for admin success/error stuff
Diffstat (limited to 'app/node_modules/okadminview/index.js')
-rw-r--r--app/node_modules/okadminview/index.js25
1 files changed, 23 insertions, 2 deletions
diff --git a/app/node_modules/okadminview/index.js b/app/node_modules/okadminview/index.js
index 05e2251..9e9aacf 100644
--- a/app/node_modules/okadminview/index.js
+++ b/app/node_modules/okadminview/index.js
@@ -2,6 +2,8 @@ var assign = require('object-assign');
var cloneDeep = require('lodash.clonedeep');
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
+var session = require('express-session');
+var flash = require('connect-flash');
var Q = require('q');
var pluralize = require('pluralize');
var OKQuery = require('okquery');
@@ -75,6 +77,14 @@ function OKAdminView(options) {
strict: app.get('strict routing')
});
+ // Enable basic sessions for flash messages
+ router.use(session({
+ secret: 'okadmin',
+ resave: false,
+ saveUninitialized: false
+ }));
+ // Enable flash messaging
+ router.use(flash());
// Parse form data
router.use(bodyParser.urlencoded({extended: true}));
// HTML forms only support POST and GET methods
@@ -91,7 +101,10 @@ function OKAdminView(options) {
router.get('/', function readIndex(req, res, next) {
fetchIndexTemplateData(meta, indexQueries).then(function(data) {
- view.renderIndex(req, res, data);
+ view.renderIndex(req, res, assign(data, {
+ success: req.flash('success'),
+ errors: req.flash('errors')
+ }));
}).fail(errorHandler(req, res));
});
@@ -103,6 +116,8 @@ function OKAdminView(options) {
} else {
meta.get().then(function(metadata) {
view.renderResourceNew(req, res, {
+ success: req.flash('success'),
+ errors: req.flash('errors'),
meta: metadata,
resource: {
type: resource.type,
@@ -129,7 +144,10 @@ function OKAdminView(options) {
if (!data) {
resourceMissingHandler(req, res)()
} else {
- view.renderResource(req, res, data);
+ view.renderResource(req, res, assign(data, {
+ success: req.flash('success'),
+ errors: req.flash('errors')
+ }));
}
}).fail(errorHandler(req, res));
}
@@ -147,6 +165,7 @@ function OKAdminView(options) {
try {
resource.assertValid(data);
resource.create(data).then(function(created) {
+ req.flash('success', 'Created ' + type);
res.redirect(303, data[resource.idField]);
}).fail(errorHandler(req, res));
} catch (errors) {
@@ -170,6 +189,7 @@ function OKAdminView(options) {
try {
resource.assertValid(data);
resource.update(id, data).then(function(updated) {
+ req.flash('success', 'Updated ' + type);
res.redirect(303, '../' + updated[resource.idField]);
}).fail(errorHandler(req, res));
} catch (errors) {
@@ -189,6 +209,7 @@ function OKAdminView(options) {
} else {
meta.get().then(function(metadata) {
resource.destroy(id).then(function() {
+ req.flash('success', 'Deleted ' + type);
res.redirect(303, '../..');
}).fail(errorHandler(req, res));
}).fail(errorHandler(req, res));