From: Steve Hackbarth Date: Mon, 15 Sep 2014 17:49:57 +0000 (-0400) Subject: support user-requested filtering of extensions. resolves #1844 X-Git-Tag: v4.7.0-beta.2~17^2 X-Git-Url: http://git.roojs.org/?p=xtuple;a=commitdiff_plain;h=9636dfc8e05164376b4383c51645502734fd082d support user-requested filtering of extensions. resolves #1844 --- diff --git a/node-datasource/routes/app.js b/node-datasource/routes/app.js index e083ee824..4ddcdd67c 100644 --- a/node-datasource/routes/app.js +++ b/node-datasource/routes/app.js @@ -103,6 +103,15 @@ var async = require("async"), }, fetchSuccess = function (model, result) { var sendExtensions = function (res, extensions) { + var filteredExtensions; + if (req.query.extensions) { + // the user is requesting to only see a certain set of extensions + filteredExtensions = JSON.parse(req.query.extensions); + extensions = extensions.filter(function (ext) { + return _.contains(filteredExtensions, ext.name); + }); + } + extensions.sort(function (ext1, ext2) { if (ext1.loadOrder !== ext2.loadOrder) { return ext1.loadOrder - ext2.loadOrder; diff --git a/node-datasource/routes/auth.js b/node-datasource/routes/auth.js index 28e550429..fea2dc7bd 100644 --- a/node-datasource/routes/auth.js +++ b/node-datasource/routes/auth.js @@ -21,6 +21,9 @@ regexp:true, undef:true, strict:true, trailing:true, white:true */ function (req, res, next) { var pathName = "/app"; if (req && req.session && !req.session.oauth2 && req.session.passport && req.session.passport.user && req.session.passport.user.organization) { + if (req.body.extensions) { + pathName = pathName + "?extensions=" + req.body.extensions; + } if (req.body.hash && req.body.hash.charAt(0) === "#") { pathName = pathName + req.body.hash; }