Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix code to allow configurable application logo #13

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,6 @@ jspm_packages

# IntelliJ files
.iml

# Visual Studio Code
.vscode
2 changes: 2 additions & 0 deletions frame-server/config.example
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ const config = {
$meta: 'This file configures the plot device.',
projectName: '{{projectName}}',
appUrl: '{{appUrl}}',
appLogoPath: '{{appLogoPath}}',
appIconPath: '{{appIconPath}}',
port: {
web: {
$filter: 'env',
Expand Down
1 change: 1 addition & 0 deletions frame-server/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,5 @@ Composer((err, server) => {

console.log('Started the plot device on port ' + server.info.port);
});

});
3 changes: 3 additions & 0 deletions frame-server/server/api/contact.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ internals.applyRoutes = function (server, next) {
};
const template = 'contact';

// add project name to the payload so it can be used in the email template
request.payload.projectName = Config.get('/projectName');

mailer.sendEmail(emailOptions, template, request.payload, (err, info) => {

if (err) {
Expand Down
5 changes: 3 additions & 2 deletions frame-server/server/api/index.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
'use strict';

const Config = require('../config/config');

exports.register = function (server, options, next) {

server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {

reply({ message: 'Welcome to BYO-CAT!' });
reply({ message: 'Welcome to ' + Config.getAppTitle() + '!' });
}
});


next();
};

Expand Down
9 changes: 4 additions & 5 deletions frame-server/server/api/invite.js
Original file line number Diff line number Diff line change
Expand Up @@ -214,16 +214,15 @@ internals.applyRoutes = function (server, next) {
dynamicQuestions: dynamicSignupQuestions,
configUrl: Config.SERVER_URL,
emailToFill: invite.email,
favicon: Config.getAppName() + "/logo.png",
logoname: Config.getProfileLogo()
favicon: Config.getAppIcon(),
logoname: Config.getAppLogo()
});
}else{
return reply.view('invite_expired', {
title: Config.getAppTitle(),
configUrl: Config.SERVER_URL,
favicon: Config.getAppName() + "/logo.png",
logoname: Config.getProfileLogo()

favicon: Config.getAppIcon(),
logoname: Config.getAppLogo()
});
}
});
Expand Down
3 changes: 2 additions & 1 deletion frame-server/server/api/login.js
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,8 @@ internals.applyRoutes = function (server, next) {
};
const template = 'forgot-password';
const context = {
key: results.keyHash.key
key: results.keyHash.key,
projectName: Config.get('/projectName')
};

mailer.sendEmail(emailOptions, template, context, done);
Expand Down
6 changes: 6 additions & 0 deletions frame-server/server/api/signup.js
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,9 @@ internals.applyRoutes = function (server, next) {
};
const template = 'welcome';

// add project name to the payload so it can be used in the email template
request.payload.projectName = Config.get('/projectName');

mailer.sendEmail(emailOptions, template, request.payload, (err) => {

if (err) {
Expand Down Expand Up @@ -385,6 +388,9 @@ internals.applyRoutes = function (server, next) {
};
const template = 'welcome';

// add project name to the payload so it can be used in the email template
request.payload.projectName = Config.get('/projectName');

mailer.sendEmail(emailOptions, template, request.payload, (err) => {

if (err) {
Expand Down
4 changes: 2 additions & 2 deletions frame-server/server/api/surveys.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ internals.applyRoutes = function (server, next) {
configUrl: Config.SERVER_URL,
questions: demographicJSON,
createdSurveyId: createdSurvey._id,
logoname: "/logo.png",
favicon: "/logo.png",
logoname: Config.getAppLogo(),
favicon: Config.getAppIcon(),
name: isAccount ? request.auth.credentials.user.roles.account.name : request.auth.credentials.user.roles.admin.name

});
Expand Down
104 changes: 44 additions & 60 deletions frame-server/server/api/userRegSystem.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ const Boom = require('boom');
const FeatureToggles = require('../config/feature-toggles.js');
const contactJSON = require(Config.getProfilePath() + "/contact_info.json");
const helpJSON = require(Config.getProfilePath() + "/help_text.json");
let logoName = "logo.png";
let logoName = Config.getAppLogo();
let iconName = Config.getAppIcon();
const dynamicSignupQuestions = require(Config.getProfilePath() + "/signup_dynamic_questions.json");
const Joi = require('joi');

Expand Down Expand Up @@ -71,7 +72,7 @@ internals.applyRoutes = function (server, next) {
configUrl: Config.SERVER_URL,
loggedIn: true,
isClinician: true,
favicon: logoName,
favicon: iconName,
logoname: logoName,
studies: {},
name: request.auth.credentials.user.roles.admin.name
Expand All @@ -87,7 +88,7 @@ internals.applyRoutes = function (server, next) {
instructions: instructions,
helpTextOn: FeatureToggles.TOGGLE_HELP_TEXT,
configUrl: Config.SERVER_URL,
favicon: logoName,
favicon: iconName,
logoname: logoName,
loggedIn: true,
isClinician: false,
Expand All @@ -105,7 +106,7 @@ internals.applyRoutes = function (server, next) {
instructions: instructions,
helpTextOn: FeatureToggles.TOGGLE_HELP_TEXT,
configUrl: Config.SERVER_URL,
favicon: logoName,
favicon: iconName,
logoname: logoName,
loggedIn: false,
isClinician: false,
Expand All @@ -131,7 +132,7 @@ internals.applyRoutes = function (server, next) {
{
title: 'Create a clinician',
configUrl: Config.SERVER_URL,
favicon: logoName,
favicon: iconName,
logoname: logoName,
loggedIn: true,
isClinician: true,
Expand Down Expand Up @@ -209,7 +210,7 @@ internals.applyRoutes = function (server, next) {
return reply.view('login_accessible', {
title: Config.getAppTitle(),
configUrl: Config.SERVER_URL,
favicon: logoName,
favicon: iconName,
logoname: logoName
});
}
Expand All @@ -230,7 +231,7 @@ internals.applyRoutes = function (server, next) {
title: Config.getAppTitle(),
dynamicQuestions: dynamicSignupQuestions,
configUrl: Config.SERVER_URL,
favicon: logoName,
favicon: iconName,
logoname: logoName
});
}
Expand All @@ -242,7 +243,7 @@ internals.applyRoutes = function (server, next) {
handler: function (request, reply) {
return reply.view('forgot_accessible', {
title: Config.getAppTitle(),
favicon: logoName,
favicon: iconName,
configUrl: Config.SERVER_URL,
logoname: logoName
});
Expand All @@ -259,59 +260,42 @@ internals.applyRoutes = function (server, next) {
}
},
handler: function (request, reply) {
let context = {
title: Config.getAppTitle(),
officePhone: contactJSON["office_phone"],
directPhone: contactJSON["direct_phone"],
contactName: contactJSON["name"] ? contactJSON["name"] : "",
email: contactJSON["email"],
favicon: iconName,
logoname: logoName,
configUrl: Config.SERVER_URL,
googleMapUrl: contactJSON["googleMapUrl"],

// the following will be overwritten depending on the state
loggedIn: false,
isClinician: false,
name: ''
};

let officePhone = contactJSON["office_phone"];
let directPhone = contactJSON["direct_phone"];
let email = contactJSON["email"];
let name = contactJSON["email"] ? contactJSON["email"] : "";
if (request.auth.isAuthenticated) {
context.loggedIn = true;

let isAccount = request.auth.credentials.user.roles.account ? true : false;
if (!isAccount) {
return reply.view('contact_accessible', {
title: Config.getAppTitle(),
officePhone: officePhone,
directPhone: directPhone,
email: email,
favicon: logoName,
configUrl: Config.SERVER_URL,
logoname: Config.getProfileLogo(),
loggedIn: true,
isClinician: true,
contactName: name,
name: request.auth.credentials.user.roles.admin.name,

});

context.isClinician = true;
context.name = request.auth.credentials.user.roles.admin.name;
} else {
return reply.view('contact_accessible', {
title: Config.getAppTitle(),
officePhone: officePhone,
directPhone: directPhone,
email: email,
favicon: logoName,
configUrl: Config.SERVER_URL,
logoname: Config.getProfileLogo(),
loggedIn: true,
isClinician: false,
contactName: name,
name: request.auth.credentials.user.roles.account.name,
});
context.isClinician = false;
context.name = request.auth.credentials.user.roles.account.name;
}
}
else {
return reply.view('contact_accessible', {
title: Config.getAppTitle(),
officePhone: officePhone,
directPhone: directPhone,
email: email,
favicon: logoName,
configUrl: Config.SERVER_URL,
loggedIn: false,
logoname: Config.getProfileLogo(),
isClinician: false,
name: ''
});
context.loggedIn = false;
context.isClinician = false;
context.name = '';
}

return reply.view('contact_accessible', context);
}
});

Expand All @@ -321,9 +305,9 @@ internals.applyRoutes = function (server, next) {
handler: function (request, reply) {
return reply.view('reset_accessible', {
title: Config.getAppTitle(),
favicon: logoName,
favicon: iconName,
configUrl: Config.SERVER_URL,
logoname: Config.getProfileLogo()
logoname: logoName
});
}
});
Expand All @@ -342,8 +326,8 @@ internals.applyRoutes = function (server, next) {

return reply.view('userSurveyDetails_temp', {
title: Config.getAppTitle(),
favicon: logoName,
logoname: Config.getProfileLogo(),
favicon: iconName,
logoname: logoName,
configUrl: Config.SERVER_URL,
meanScore: Config.meanScoreValue,
loggedIn: request.auth.isAuthenticated,
Expand Down Expand Up @@ -389,9 +373,9 @@ internals.applyRoutes = function (server, next) {
configUrl: Config.SERVER_URL,
name: isAccount ? request.auth.credentials.user.roles.account.name : request.auth.credentials.user.roles.admin.name,
isClinician: true,
logoname: Config.getProfileLogo(),
logoname: logoName,
loggedIn: true,
favicon: logoName,
favicon: iconName,
username: request.auth.credentials.user.username
});
}
Expand Down Expand Up @@ -434,11 +418,11 @@ internals.applyRoutes = function (server, next) {
configUrl: Config.SERVER_URL,
name: isAccount ? request.auth.credentials.user.roles.account.name : request.auth.credentials.user.roles.admin.name,
isClinician: true,
favicon: logoName,
favicon: iconName,
username: request.auth.credentials.user.username,
studies: result,
id: request.auth.credentials.user._id,
logoname: Config.getProfileLogo()
logoname: logoName
});
});
}
Expand Down
2 changes: 1 addition & 1 deletion frame-server/server/auth.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ internals.applyStrategy = function (server, next) {

server.auth.strategy('session', 'cookie', {
password: Config.get('/cookieSecret'),
cookie: 'sid-BYO-CAT',
cookie: 'sid-' + Config.get('/projectName').replace(' ', '-'),
isSecure: false,
validateFunc: function (request, data, callback) {

Expand Down
8 changes: 8 additions & 0 deletions frame-server/server/config/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,14 @@ var Config = {

getAppName: function () {
return appConfig.get('/projectName');
},

getAppLogo: function () {
return appConfig.get('/appLogoPath');
},

getAppIcon: function () {
return appConfig.get('/appIconPath');
}

};
Expand Down
2 changes: 1 addition & 1 deletion frame-server/server/emails/contact.hbs.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
| Email: | {{email}} |
| Message: | {{message}} |

The BYO-CAT Team
The {{projectName}} Team
2 changes: 1 addition & 1 deletion frame-server/server/emails/forgot-password.hbs.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ need this key to do it.
__Key:__
{{key}}

The BYO-CAT Team
The {{projectName}} Team
4 changes: 2 additions & 2 deletions frame-server/server/emails/signup-invitation.hbs.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
### Signup Invitation

You have been invited to create an account at BYO-CAT. Please click the following link to proceed: {{url}}
You have been invited to create an account at {{projectName}}. Please click the following link to proceed: {{url}}

The BYO-CAT Team
The {{projectName}} Team
2 changes: 1 addition & 1 deletion frame-server/server/emails/welcome.hbs.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ Here are your login credentials:
| ---------:|:------------ |
| Username: | {{username}} |

The BYO-CAT Team
The {{projectName}} Team
6 changes: 5 additions & 1 deletion frame-server/server/profile/contact_info.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
{
"omit" : "ommiting any of the field below will disable them from being displayed on the Contact page",
"direct_phone": "XXX-XXX-XXXX",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you intend this to be an extra field? Seems like a comment @BlairCooper

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is a comment but there isn't any other way to comment a JSON file.

"office_phone": "XXX-XXX-XXXX",
"email": "[email protected]"
"email": "[email protected]",
"name": "Contact Name",
"googleMapUrl": "https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d2948.662352514737!2d-71.106583!3d42.3497216!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89e379f0c4e57a97%3A0xf082dcc3e210c53c!2sBU+Hariri+Institute+for+Computing!5e0!3m2!1sen!2sus!4v1492773318343"
}


Expand Down
2 changes: 1 addition & 1 deletion frame-server/server/profile/homepage_text.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"major_text": "BYO-CAT stands for Build Your Own CAT. CAT is a Computer Adaptive test, which is an extremely customisable survey platform having customisable question banks, evaluation metrics and result structures. The Cat version of the BYO-CAT Profile assesses your likes, dislikes and preferences towards cats.",
"major_text": "BYO-CAT stands for Build Your Own CAT. CAT is a Computer Adaptive test, which is an extremely customisable survey platform having customisable question banks, evaluation metrics and result structures. The example implementation assesses your likes, dislikes and preferences towards cats.",
"minor_text": "An adaptive survey platform for CAT lovers",
"instructions": [
{
Expand Down
Loading