summaryrefslogtreecommitdiff
path: root/app/node_modules/okadminview/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/node_modules/okadminview/index.js')
-rw-r--r--app/node_modules/okadminview/index.js96
1 files changed, 40 insertions, 56 deletions
diff --git a/app/node_modules/okadminview/index.js b/app/node_modules/okadminview/index.js
index 161a195..82f364d 100644
--- a/app/node_modules/okadminview/index.js
+++ b/app/node_modules/okadminview/index.js
@@ -36,7 +36,7 @@ function OKAdminView(options) {
if (!options.templateProvider)
throw new Error('No templateProvider provided to OKAdminView');
if (!options.meta)
- throw new Error('No meta query provided to OKAdminView');
+ throw new Error('No metadata provided to OKAdminView');
if (!options.errorHandler)
throw new Error('No error handler provided to OKAdminView');
@@ -135,13 +135,11 @@ function OKAdminView(options) {
if (!resource) {
error(req, res, 404)(new Error('No such resource ' + type));
} else {
- meta.get().then(function(metadata) {
- var templateData = transformData(metadata, resource, {});
- view.renderResourceNew(req, res, assign(templateData, {
- success: req.flash('success'),
- errors: req.flash('errors'),
- }));
- }).fail(error(req, res, 500));
+ var templateData = transformData(meta, resource, {});
+ view.renderResourceNew(req, res, assign(templateData, {
+ success: req.flash('success'),
+ errors: req.flash('errors'),
+ }));
}
});
@@ -179,18 +177,16 @@ function OKAdminView(options) {
if (!resource) {
error(req, res, 400)(new Error('No such resource ' + type));
} else {
- meta.get().then(function(metadata) {
- try {
- resource.assertValid(data);
- resource.create(data).then(function(created) {
- req.flash('success', {action: 'create'});
- res.redirect(303, resource.getID(data));
- }).fail(error(req, res, 500));
- } catch (errors) {
- var templateData = transformData(metadata, resource, data);
- view.renderResource(req, res, assign(templateData, {errors: errors}));
- }
- }).fail(error(req, res, 500));;
+ try {
+ resource.assertValid(data);
+ resource.create(data).then(function(created) {
+ req.flash('success', {action: 'create'});
+ res.redirect(303, resource.getID(data));
+ }).fail(error(req, res, 500));
+ } catch (errors) {
+ var templateData = transformData(meta, resource, data);
+ view.renderResource(req, res, assign(templateData, {errors: errors}));
+ }
}
});
@@ -215,11 +211,7 @@ function OKAdminView(options) {
error(req, res, 500)(new Error('Resource batch contains invalid JSON'));
return;
}
- Q.all([
- meta.get(),
- resource.updateBatch(ids, resourcesParsed),
- ]).then(function(results) {
- var metadata = results.shift();
+ resource.updateBatch(ids, resourcesParsed).then(function(results) {
req.flash('success', {action: 'batch_update'});
res.redirect(303, '../..');
}).fail(error(req, res, 500));
@@ -234,19 +226,16 @@ function OKAdminView(options) {
if (!resource) {
error(req, res, 400)(new Error('No such resource ' + type));
} else {
- // TODO Prob should make metadata synchronous...
- meta.get().then(function(metadata) {
- try {
- resource.assertValid(data);
- resource.update(id, data).then(function(updated) {
- req.flash('success', {action: 'update'});
- res.redirect(303, '../' + resource.getID(updated));
- }).fail(error(req, res, 500));
- } catch (errors) {
- var templateData = transformData(metadata, resource, data);
- view.renderResource(req, res, assign(templateData, {errors: errors}));
- }
- }).fail(error(req, res, 500));
+ try {
+ resource.assertValid(data);
+ resource.update(id, data).then(function(updated) {
+ req.flash('success', {action: 'update'});
+ res.redirect(303, '../' + resource.getID(updated));
+ }).fail(error(req, res, 500));
+ } catch (errors) {
+ var templateData = transformData(meta, resource, data);
+ view.renderResource(req, res, assign(templateData, {errors: errors}));
+ }
}
});
@@ -257,11 +246,9 @@ function OKAdminView(options) {
if (!resource) {
error(req, res, 500)(new Error('No such resource ' + type));
} else {
- meta.get().then(function(metadata) {
- resource.destroy(id).then(function() {
- req.flash('success', {action: 'delete'});
- res.redirect(303, '../..');
- }).fail(error(req, res, 500));
+ resource.destroy(id).then(function() {
+ req.flash('success', {action: 'delete'});
+ res.redirect(303, '../..');
}).fail(error(req, res, 500));
}
});
@@ -328,10 +315,9 @@ OKAdminView.prototype.renderResourceNew = function(req, res, data) {
*/
function fetchIndexTemplateData(meta, queries) {
return Q.promise(function(resolve, reject) {
- Q.all([meta.get()].concat(queries.map(function(query) {
+ Q.all(queries.map(function(query) {
return query.get();
- }))).then(function(results) {
- var meta = results.shift();
+ })).then(function(results) {
var resources = results.reduce(function(cache, result, i) {
if (!result)
return cache;
@@ -376,16 +362,14 @@ function fetchIndexTemplateData(meta, queries) {
function fetchResourceTemplateData(meta, query, fn) {
fn = fn || function(m, r, d) { return {meta: m, resource: d}; };
return Q.promise(function(resolve, reject) {
- meta.get().then(function(metadata) {
- query.get().then(function(data) {
- if (!data) {
- reject(new Error('No resource data'));
- } else {
- var resource = query.resource;
- resolve(fn(metadata, resource, data));
- }
- }).fail(reject);
- }).fail(reject)
+ query.get().then(function(data) {
+ if (!data) {
+ reject(new Error('No resource data'));
+ } else {
+ var resource = query.resource;
+ resolve(fn(meta, resource, data));
+ }
+ }).fail(reject);
});
}