diff --git a/lib/views/admin/status.js b/lib/views/admin/status.js index 5638944c..fa7305c2 100644 --- a/lib/views/admin/status.js +++ b/lib/views/admin/status.js @@ -12,6 +12,8 @@ module.exports = function (req, res) { osRelease: os.release(), nodeVersion: process.version, instanceName: config.get('instanceName'), + frontendUrl: config.get('frontendURL'), + backendUrl: config.get('instanceUrl'), instanceUrl: config.get('instanceUrl'), listenPort: config.get('port'), sparqlEndpoint: config.get('triplestore').sparqlEndpoint, diff --git a/lib/views/admin/theme.js b/lib/views/admin/theme.js index 47328e4d..221038fe 100644 --- a/lib/views/admin/theme.js +++ b/lib/views/admin/theme.js @@ -36,6 +36,9 @@ function form (req, res) { var locals = { instanceName: config.get('instanceName'), + frontendURL: config.get('frontendURL'), + backendURL: config.get('instanceUrl'), + uriPrefix: config.get('databasePrefix'), frontPageText: config.get('frontPageText'), firstLaunch: config.get('firstLaunch'), currentTheme: currentTheme, diff --git a/lib/views/setup.js b/lib/views/setup.js index 5333a436..1ea88547 100644 --- a/lib/views/setup.js +++ b/lib/views/setup.js @@ -19,7 +19,8 @@ const settingsSchema = Joi.object({ userName: requiredString('Please enter a username for the initial user account'), userFullName: requiredString('Please enter a full name for the initial user account'), userEmail: requiredString('Please enter a valid e-mail address for the initial user account').email(), - instanceUrl: requiredString('Please enter the URL of your instance'), + frontendURL: requiredString('Please enter the frontend URL of your instance'), + backendURL: requiredString('Please enter the backend URL of your instance'), uriPrefix: requiredString('Please enter the URI prefix of your instance'), frontPageText: requiredString('Please enter some welcome text for your homepage'), userPassword: requiredString('Please enter a password for the initial user account', { trim: false }), @@ -54,7 +55,8 @@ module.exports = function (req, res) { const settings = { instanceName: 'My SynBioHub', - instanceUrl: req.protocol + '://' + req.get('Host') + '/', + frontendURL: req.protocol + '://' + req.get('Host') + '/', + backendURL: req.protocol + '://' + req.get('Host') + '/', uriPrefix: req.protocol + '://' + req.get('Host') + '/', userName: '', affiliation: '', @@ -91,7 +93,8 @@ async function setupPost (req, res, settings) { { ...settings, instanceName: req.body.instanceName, - instanceUrl: req.body.instanceURL, + frontendURL: req.body.frontendURL, + backendURL: req.body.backendURL, uriPrefix: req.body.uriPrefix, userName: req.body.userName, affiliation: req.body.affiliation, @@ -112,8 +115,14 @@ async function setupPost (req, res, settings) { { abortEarly: false } ) - if (updatedSettings.instanceUrl[updatedSettings.instanceUrl.length - 1] !== '/') { - updatedSettings.instanceUrl += '/' + console.log(updatedSettings) + + if (updatedSettings.frontendURL && updatedSettings.frontendURL[updatedSettings.frontendURL.length - 1] !== '/') { + updatedSettings.frontendURL += '/' + } + + if (updatedSettings.backendURL && updatedSettings.backendURL[updatedSettings.backendURL.length - 1] !== '/') { + updatedSettings.backendURL += '/' } if (updatedSettings.uriPrefix[updatedSettings.uriPrefix.length - 1] !== '/') { @@ -140,9 +149,9 @@ async function setupPost (req, res, settings) { config.set('sessionSecret', uuid()) config.set('shareLinkSalt', uuid()) config.set('passwordSalt', uuid()) - config.set('instanceUrl', updatedSettings.instanceUrl) - config.set('webOfRegistries', { [updatedSettings.uriPrefix.slice(0, -1)]: updatedSettings.instanceUrl.slice(0, -1) }) - config.set('databasePrefix', updatedSettings.instanceUrl) + config.set('frontendURL', updatedSettings.frontendURL) + config.set('instanceUrl', updatedSettings.backendURL) + config.set('webOfRegistries', { [updatedSettings.uriPrefix.slice(0, -1)]: updatedSettings.backendURL.slice(0, -1) }) config.set('themeParameters', { default: { baseColor: updatedSettings.color } }) config.set('frontPageText', updatedSettings.frontPageText) config.set('allowPublicSignup', updatedSettings.allowPublicSignup)