diff --git a/config.json.example b/config.json.example
index 6897f72b78..9749bb914e 100644
--- a/config.json.example
+++ b/config.json.example
@@ -92,5 +92,10 @@
"FLAGGING_FOOTER_LINK": "https://habitrpg.github.io/flag-o-rama/",
"SUBSCRIPTIONS_URL": "https://hooks.slack.com/services/id/id/id"
},
- "ITUNES_SHARED_SECRET": "aaaabbbbccccddddeeeeffff00001111"
+ "ITUNES_SHARED_SECRET": "aaaabbbbccccddddeeeeffff00001111",
+ "EMAILS" : {
+ "COMMUNITY_MANAGER_EMAIL" : "community@example.com",
+ "TECH_ASSISTANCE_EMAIL" : "tech@example.com",
+ "PRESS_ENQUIRY_EMAIL" : "press@example.com"
+ }
}
diff --git a/test/api/v3/integration/user/auth/POST-login-local.test.js b/test/api/v3/integration/user/auth/POST-login-local.test.js
index 718aed3a6f..dc47eead78 100644
--- a/test/api/v3/integration/user/auth/POST-login-local.test.js
+++ b/test/api/v3/integration/user/auth/POST-login-local.test.js
@@ -9,6 +9,8 @@ import {
sha1Encrypt as sha1EncryptPassword,
} from '../../../../../../website/server/libs/password';
+import nconf from 'nconf';
+
describe('POST /user/auth/local/login', () => {
let api;
let user;
@@ -43,7 +45,7 @@ describe('POST /user/auth/local/login', () => {
})).to.eventually.be.rejected.and.eql({
code: 401,
error: 'NotAuthorized',
- message: t('accountSuspended', { userId: user._id }),
+ message: t('accountSuspended', { communityManagerEmail: nconf.get('EMAILS:COMMUNITY_MANAGER_EMAIL'), userId: user._id }),
});
});
diff --git a/test/api/v3/integration/user/auth/PUT-user_update_email.test.js b/test/api/v3/integration/user/auth/PUT-user_update_email.test.js
index bc842f292d..d893f5ac80 100644
--- a/test/api/v3/integration/user/auth/PUT-user_update_email.test.js
+++ b/test/api/v3/integration/user/auth/PUT-user_update_email.test.js
@@ -8,6 +8,8 @@ import {
sha1Encrypt as sha1EncryptPassword,
} from '../../../../../../website/server/libs/password';
+import nconf from 'nconf';
+
const ENDPOINT = '/user/auth/update-email';
describe('PUT /user/auth/update-email', () => {
@@ -68,7 +70,7 @@ describe('PUT /user/auth/update-email', () => {
})).to.eventually.be.rejected.and.eql({
code: 401,
error: 'NotAuthorized',
- message: t('cannotFulfillReq'),
+ message: t('cannotFulfillReq', { techAssistanceEmail: nconf.get('EMAILS:TECH_ASSISTANCE_EMAIL') }),
});
});
diff --git a/website/common/locales/en/character.json b/website/common/locales/en/character.json
index 246d4ff7ed..fae8c6e43b 100644
--- a/website/common/locales/en/character.json
+++ b/website/common/locales/en/character.json
@@ -1,5 +1,5 @@
{
- "communityGuidelinesWarning": "Please keep in mind that your Display Name, profile photo, and blurb must comply with the Community Guidelines (e.g. no profanity, no adult topics, no insults, etc). If you have any questions about whether or not something is appropriate, feel free to email leslie@habitica.com!",
+ "communityGuidelinesWarning": "Please keep in mind that your Display Name, profile photo, and blurb must comply with the Community Guidelines (e.g. no profanity, no adult topics, no insults, etc). If you have any questions about whether or not something is appropriate, feel free to email <%= hrefBlankCommunityManagerEmail %>!",
"profile": "Profile",
"avatar": "Customize Avatar",
"other": "Other",
diff --git a/website/common/locales/en/communityGuidelines.json b/website/common/locales/en/communityGuidelines.json
index f9e5635b71..23415d68f5 100644
--- a/website/common/locales/en/communityGuidelines.json
+++ b/website/common/locales/en/communityGuidelines.json
@@ -27,7 +27,7 @@
"commGuidePara011b": "on GitHub/Wikia",
"commGuidePara011c": "on Wikia",
"commGuidePara011d": "on GitHub",
- "commGuidePara012": "If you have an issue or concern about a particular Mod, please send an email to Lemoness (leslie@habitica.com).",
+ "commGuidePara012": "If you have an issue or concern about a particular Mod, please send an email to Lemoness (<%= hrefCommunityManagerEmail %>).",
"commGuidePara013": "In a community as big as Habitica, users come and go, and sometimes a moderator needs to lay down their noble mantle and relax. The following are Moderators Emeritus. They no longer act with the power of a Moderator, but we would still like to honor their work!",
"commGuidePara014": "Moderators Emeritus:",
"commGuideHeadingPublicSpaces": "Public Spaces In Habitica",
@@ -42,7 +42,7 @@
"commGuideList02E": "Avoid extended discussions of divisive topics outside of the Back Corner. If you feel that someone has said something rude or hurtful, do not engage them. A single, polite comment, such as \"That joke makes me feel uncomfortable,\" is fine, but being harsh or unkind in response to harsh or unkind comments heightens tensions and makes Habitica a more negative space. Kindness and politeness helps others understand where you are coming from.",
"commGuideList02F": "Comply immediately with any Mod request to cease a discussion or move it to the Back Corner. Last words, parting shots and conclusive zingers should all be delivered (courteously) at your \"table\" in the Back Corner, if allowed.",
"commGuideList02G": "Take time to reflect instead of responding in anger if someone tells you that something you said or did made them uncomfortable. There is great strength in being able to sincerely apologize to someone. If you feel that the way they responded to you was inappropriate, contact a mod rather than calling them out on it publicly.",
- "commGuideList02H": "Divisive/contentious conversations should be reported to mods. If you feel that a conversation is getting heated, overly emotional, or hurtful, cease to engage. Instead, email leslie@habitica.com to let us know about it. It's our job to keep you safe.",
+ "commGuideList02H": "Divisive/contentious conversations should be reported to mods. If you feel that a conversation is getting heated, overly emotional, or hurtful, cease to engage. Instead, email <%= hrefCommunityManagerEmail %> to let us know about it. It's our job to keep you safe.",
"commGuideList02I": "Do not spam. Spamming may include, but is not limited to: posting the same comment or query in multiple places, posting links without explanation or context, posting nonsensical messages, or posting many messages in a row. Asking for gems or a subscription in any of the chat spaces or via Private Message is also considered spamming.",
"commGuidePara019": "In private spaces, users have more freedom to discuss whatever topics they would like, but they still may not violate the Terms and Conditions, including posting any discriminatory, violent, or threatening content. Note that, because Challenge names appear in the winner's public profile, ALL Challenge names must obey the public space guidelines, even if they appear in a private space.",
@@ -58,7 +58,7 @@
"commGuideHeadingPublicGuilds": "Public Guilds",
"commGuidePara029": "Public guilds are much like the Tavern, except that instead of being centered around general conversation, they have a focused theme. Public guild chat should focus on this theme. For example, members of the Wordsmiths guild might be cross if they found the conversation suddenly focusing on gardening instead of writing, and a Dragon-Fanciers guild might not have any interest in deciphering ancient runes. Some guilds are more lax about this than others, but in general, try to stay on topic!",
"commGuidePara031": "Some public guilds will contain sensitive topics such as depression, religion, politics, etc. This is fine as long as the conversations therein do not violate any of the Terms and Conditions or Public Space Rules, and as long as they stay on topic.",
- "commGuidePara033": "Public Guilds may NOT contain 18+ content. If they plan to regularly discuss sensitive content, they should say so in the Guild title. This is to keep Habitica safe and comfortable for everyone. If the guild in question has different kinds of sensitive issues, it is respectful to your fellow Habiticans to place your comment behind a warning (ex. \"Warning: references self-harm\"). Additionally, the sensitive material should be topical -- bringing up self-harm in a guild focused on fighting depression may make sense, but may be less appropriate in a music guild. If you see someone who is repeatedly violating this guideline, even after several requests, please email leslie@habitica.com with screenshots.",
+ "commGuidePara033": "Public Guilds may NOT contain 18+ content. If they plan to regularly discuss sensitive content, they should say so in the Guild title. This is to keep Habitica safe and comfortable for everyone. If the guild in question has different kinds of sensitive issues, it is respectful to your fellow Habiticans to place your comment behind a warning (ex. \"Warning: references self-harm\"). Additionally, the sensitive material should be topical -- bringing up self-harm in a guild focused on fighting depression may make sense, but may be less appropriate in a music guild. If you see someone who is repeatedly violating this guideline, even after several requests, please email <%= hrefCommunityManagerEmail %> with screenshots.",
"commGuidePara035": "No Guilds, Public or Private, should be created for the purpose of attacking any group or individual. Creating such a Guild is grounds for an instant ban. Fight bad habits, not your fellow adventurers!",
"commGuidePara037": "All Tavern Challenges and Public Guild Challenges must comply with these rules as well.",
"commGuideHeadingBackCorner": "The Back Corner",
@@ -108,7 +108,7 @@
"commGuideHeadingModerateInfractions": "Moderate Infractions",
"commGuidePara054": "Moderate infractions do not make our community unsafe, but they do make it unpleasant. These infractions will have moderate consequences. When in conjunction with multiple infractions, the consequences may grow more severe.",
"commGuidePara055": "The following are some examples of Moderate Infractions. This is not a comprehensive list.",
- "commGuideList06A": "Ignoring or Disrespecting a Mod. This includes publicly complaining about moderators or other users/publicly glorifying or defending banned users. If you are concerned about one of the rules or Mods, please contact Lemoness via email (leslie@habitica.com).",
+ "commGuideList06A": "Ignoring or Disrespecting a Mod. This includes publicly complaining about moderators or other users/publicly glorifying or defending banned users. If you are concerned about one of the rules or Mods, please contact Lemoness via email (<%= hrefCommunityManagerEmail %>).",
"commGuideList06B": "Backseat Modding. To quickly clarify a relevant point: A friendly mention of the rules is fine. Backseat modding consists of telling, demanding, and/or strongly implying that someone must take an action that you describe to correct a mistake. You can alert someone to the fact that they have committed a transgression, but please do not demand an action-for example, saying, \"Just so you know, profanity is discouraged in the Tavern, so you may want to delete that,\" would be better than saying, \"I'm going to have to ask you to delete that post.\"",
"commGuideList06C": "Repeated Violation of Public Space Guidelines",
"commGuideList06D": "Repeated Minor Infractions",
@@ -161,7 +161,7 @@
"commGuideList13C": "Tiers don't \"start over\" in each field. When scaling the difficulty, we look at all your contributions, so that people who do a little bit of art, then fix a small bug, then dabble a bit in the wiki, do not proceed faster than people who are working hard at a single task. This helps keep things fair!",
"commGuideList13D": "Users on probation cannot be promoted to the next tier. Mods have the right to freeze user advancement due to infractions. If this happens, the user will always be informed of the decision, and how to correct it. Tiers may also be removed as a result of infractions or probation.",
"commGuideHeadingFinal": "The Final Section",
- "commGuidePara067": "So there you have it, brave Habitican -- the Community Guidelines! Wipe that sweat off of your brow and give yourself some XP for reading it all. If you have any questions or concerns about these Community Guidelines, please email Lemoness (leslie@habitica.com) and she will be happy to help clarify things.",
+ "commGuidePara067": "So there you have it, brave Habitican -- the Community Guidelines! Wipe that sweat off of your brow and give yourself some XP for reading it all. If you have any questions or concerns about these Community Guidelines, please email Lemoness (<%= hrefCommunityManagerEmail %>) and she will be happy to help clarify things.",
"commGuidePara068": "Now go forth, brave adventurer, and slay some Dailies!",
"commGuideHeadingLinks": "Useful Links",
"commGuidePara069": "The following talented artists contributed to these illustrations:",
diff --git a/website/common/locales/en/contrib.json b/website/common/locales/en/contrib.json
index 19bfc1b2b6..4ab9d923d4 100644
--- a/website/common/locales/en/contrib.json
+++ b/website/common/locales/en/contrib.json
@@ -62,7 +62,7 @@
"surveysMultiple": "Helped Habitica grow on <%= count %> occasions, either by filling out a survey or helping with a major testing effort. Thank you!",
"currentSurvey": "Current Survey",
"surveyWhen": "The badge will be awarded to all participants when surveys have been processed, in late March.",
- "blurbInbox": "This is where your private messages are stored! You can send someone a message by clicking on the envelope icon next to their name in Tavern, Party, or Guild Chat. If you've received an inappropriate PM, you should email a screenshot of it to Lemoness (leslie@habitica.com)",
+ "blurbInbox": "This is where your private messages are stored! You can send someone a message by clicking on the envelope icon next to their name in Tavern, Party, or Guild Chat. If you've received an inappropriate PM, you should email a screenshot of it to Lemoness (<%= hrefCommunityManagerEmail %>)",
"blurbGuildsPage": "Guilds are common-interest chat groups created by the players, for players. Browse through the list and join the Guilds that interest you!",
"blurbChallenges": "Challenges are created by your fellow players. Joining a Challenge will add its tasks to your task dashboard, and winning a Challenge will give you an achievement and often a gem prize!",
"blurbHallPatrons": "This is the Hall of Patrons, where we honor the noble adventurers who backed Habitica's original Kickstarter. We thank them for helping us bring Habitica to life!",
diff --git a/website/common/locales/en/faq.json b/website/common/locales/en/faq.json
index ca9f2bd5dd..3f0eca9f11 100644
--- a/website/common/locales/en/faq.json
+++ b/website/common/locales/en/faq.json
@@ -59,7 +59,7 @@
"faqQuestion11": "How do I report a bug or request a feature?",
"iosFaqAnswer11": "You can report a bug, request a feature, or send feedback under Menu > Report a Bug and Menu > Send Feedback! We'll do everything we can to assist you.",
"androidFaqAnswer11": "You can report a bug, request a feature, or send feedback under About > Report a Bug and About > Send us Feedback! We'll do everything we can to assist you.",
- "webFaqAnswer11": "To report a bug, go to [Help > Report a Bug](https://habitica.com/#/options/groups/guilds/a29da26b-37de-4a71-b0c6-48e72a900dac) and read the points above the chat box. If you're unable to log in to Habitica, send your login details (not your password!) to [admin@habitica.com](mailto:admin@habitica.com). Don't worry, we'll get you fixed up soon!\n
\n Feature requests are collected on Trello. Go to [Help > Request a Feature](https://trello.com/c/odmhIqyW/440-read-first-table-of-contents) and follow the instructions. Ta-da!",
+ "webFaqAnswer11": "To report a bug, go to [Help > Report a Bug](https://habitica.com/#/options/groups/guilds/a29da26b-37de-4a71-b0c6-48e72a900dac) and read the points above the chat box. If you're unable to log in to Habitica, send your login details (not your password!) to [<%= techAssistanceEmail %>](<%= wikiTechAssistanceEmail %>). Don't worry, we'll get you fixed up soon!\n
\n Feature requests are collected on Trello. Go to [Help > Request a Feature](https://trello.com/c/odmhIqyW/440-read-first-table-of-contents) and follow the instructions. Ta-da!",
"faqQuestion12": "How do I battle a World Boss?",
"iosFaqAnswer12": "World Bosses are special monsters that appear in the Tavern. All active users are automatically battling the Boss, and their tasks and skills will damage the Boss as usual.\n\n You can also be in a normal Quest at the same time. Your tasks and skills will count towards both the World Boss and the Boss/Collection Quest in your party.\n\n A World Boss will never hurt you or your account in any way. Instead, it has a Rage Bar that fills when users skip Dailies. If its Rage bar fills, it will attack one of the Non-Player Characters around the site and their image will change.\n\n You can read more about [past World Bosses](http://habitica.wikia.com/wiki/World_Bosses) on the wiki.",
diff --git a/website/common/locales/en/front.json b/website/common/locales/en/front.json
index fd63b19fed..d038801f3f 100644
--- a/website/common/locales/en/front.json
+++ b/website/common/locales/en/front.json
@@ -134,7 +134,7 @@
"playButtonFull": "Enter Habitica",
"presskit": "Press Kit",
"presskitDownload": "Download all images:",
- "presskitText": "Thanks for your interest in Habitica! The following images can be used for articles or videos about Habitica. For more information, please contact Siena Leslie at leslie@habitica.com.",
+ "presskitText": "Thanks for your interest in Habitica! The following images can be used for articles or videos about Habitica. For more information, please contact Siena Leslie at <%= pressEnquiryEmail %>.",
"pkVideo": "Video",
"pkPromo": "Promos",
"pkLogo": "Logos",
@@ -259,7 +259,7 @@
"passwordResetEmailHtml": "If you requested a password reset for <%= username %> on Habitica, \">click here to set a new one. The link will expire after 24 hours.
If you haven't requested a password reset, please ignore this email.",
"invalidLoginCredentialsLong": "Uh-oh - your username or password is incorrect.\n- Make sure your username or email is typed correctly.\n- You may have signed up with Facebook, not email. Double-check by trying Facebook login.\n- If you forgot your password, click \"Forgot Password\".",
"invalidCredentials": "There is no account that uses those credentials.",
- "accountSuspended": "Account has been suspended, please contact leslie@habitica.com with your User ID \"<%= userId %>\" for assistance.",
+ "accountSuspended": "Account has been suspended, please contact <%= communityManagerEmail %> with your User ID \"<%= userId %>\" for assistance.",
"unsupportedNetwork": "This network is not currently supported.",
"cantDetachSocial": "Account lacks another authentication method; can't detach this authentication method.",
"onlySocialAttachLocal": "Local authentication can be added to only a social account.",
diff --git a/website/common/locales/en/maintenance.json b/website/common/locales/en/maintenance.json
index 20b3410de2..8678d61654 100644
--- a/website/common/locales/en/maintenance.json
+++ b/website/common/locales/en/maintenance.json
@@ -16,7 +16,7 @@
"maintenanceInfoTechDetails": "Want more details on the technical side of the process? Visit The Forge, our dev blog.",
"maintenanceInfoMore": "More Information",
"maintenanceInfoAccountChanges": "What changes will I see to my account after the rewrite is complete?",
- "maintenanceInfoAccountChangesText": "At first, there won’t be any notable changes aside from performance improvements for features such as Challenges. If you notice any changes that shouldn’t be there, email us at admin@habitica.com and we will investigate them for you!",
+ "maintenanceInfoAccountChangesText": "At first, there won’t be any notable changes aside from performance improvements for features such as Challenges. If you notice any changes that shouldn’t be there, email us at <%= hrefTechAssistanceEmail %> and we will investigate them for you!",
"maintenanceInfoAddFeatures": "What kind of features will this allow Habitica to add?",
"maintenanceInfoAddFeaturesText": "Completing this rewrite will allow us to start building out improved chat and Guilds, plans for organizations and families, and additional productivity features like Monthlies and the ability to record yesterday’s activity! Those are all involved features on their own, so it will take time to build them, but until we were finished with this rewrite, there was no way we could start them.",
"maintenanceInfoHowLong": "How long will the maintenance take?",
diff --git a/website/common/locales/en/settings.json b/website/common/locales/en/settings.json
index 236b884be1..8dbf8c8408 100644
--- a/website/common/locales/en/settings.json
+++ b/website/common/locales/en/settings.json
@@ -68,7 +68,7 @@
"APIv3": "API v3",
"APIText": "Copy these for use in third party applications. However, think of your API Token like a password, and do not share it publicly. You may occasionally be asked for your User ID, but never post your API Token where others can see it, including on Github.",
"APIToken": "API Token (this is a password - see warning above!)",
- "APITokenWarning": "If you need a new API Token (e.g., if you accidentally shared it), email admin@habitica.com with your User ID and current Token. Once it is reset you will need to re-authorize everything by logging out of the website and mobile app and by providing the new Token to any other Habitica tools that you use.",
+ "APITokenWarning": "If you need a new API Token (e.g., if you accidentally shared it), email <%= hrefTechAssistanceEmail %> with your User ID and current Token. Once it is reset you will need to re-authorize everything by logging out of the website and mobile app and by providing the new Token to any other Habitica tools that you use.",
"thirdPartyApps": "Third Party Apps",
"dataToolDesc": "A webpage that shows you certain information from your Habitica account, such as statistics about your tasks, equipment, and skills.",
"beeminder": "Beeminder",
diff --git a/website/common/script/content/faq.js b/website/common/script/content/faq.js
index 511e60a434..91870abea9 100644
--- a/website/common/script/content/faq.js
+++ b/website/common/script/content/faq.js
@@ -14,7 +14,11 @@ for (let i = 0; i <= NUMBER_OF_QUESTIONS; i++) {
let question = {
question: t(`faqQuestion${i}`),
ios: t(`iosFaqAnswer${i}`),
- web: t(`webFaqAnswer${i}`),
+ web: t(`webFaqAnswer${i}`, {
+ // TODO: Need to pull these values from nconf
+ techAssistanceEmail: 'admin@habitica.com',
+ wikiTechAssistanceEmail: 'mailto:admin@habitica.com',
+ }),
};
faq.questions.push(question);
diff --git a/website/server/controllers/api-v3/auth.js b/website/server/controllers/api-v3/auth.js
index 9bcdedef78..478f0502b2 100644
--- a/website/server/controllers/api-v3/auth.js
+++ b/website/server/controllers/api-v3/auth.js
@@ -22,6 +22,8 @@ import pusher from '../../libs/pusher';
import common from '../../../common';
const BASE_URL = nconf.get('BASE_URL');
+const TECH_ASSISTANCE_EMAIL = nconf.get('EMAILS:TECH_ASSISTANCE_EMAIL');
+const COMMUNITY_MANAGER_EMAIL = nconf.get('EMAILS:COMMUNITY_MANAGER_EMAIL');
let api = {};
@@ -183,7 +185,7 @@ api.registerLocal = {
};
function _loginRes (user, req, res) {
- if (user.auth.blocked) throw new NotAuthorized(res.t('accountSuspended', {userId: user._id}));
+ if (user.auth.blocked) throw new NotAuthorized(res.t('accountSuspended', {communityManagerEmail: COMMUNITY_MANAGER_EMAIL, userId: user._id}));
return res.respond(200, {id: user._id, apiToken: user.apiToken, newUser: user.newUser || false});
}
@@ -610,7 +612,7 @@ api.updateEmail = {
'auth.local.email': req.body.newEmail,
}).select({_id: 1}).lean().exec();
- if (emailAlreadyInUse) throw new NotAuthorized(res.t('cannotFulfillReq'));
+ if (emailAlreadyInUse) throw new NotAuthorized(res.t('cannotFulfillReq', { techAssistanceEmail: TECH_ASSISTANCE_EMAIL }));
let password = req.body.password;
let isValidPassword = await passwordUtils.compare(user, password);
diff --git a/website/server/middlewares/auth.js b/website/server/middlewares/auth.js
index 136159132a..9c1321425a 100644
--- a/website/server/middlewares/auth.js
+++ b/website/server/middlewares/auth.js
@@ -4,6 +4,9 @@ import {
import {
model as User,
} from '../models/user';
+import nconf from 'nconf';
+
+const COMMUNITY_MANAGER_EMAIL = nconf.get('EMAILS:COMMUNITY_MANAGER_EMAIL');
// Strins won't be translated here because getUserLanguage has not run yet
@@ -26,7 +29,7 @@ export function authWithHeaders (optional = false) {
.exec()
.then((user) => {
if (!user) throw new NotAuthorized(res.t('invalidCredentials'));
- if (user.auth.blocked) throw new NotAuthorized(res.t('accountSuspended', {userId: user._id}));
+ if (user.auth.blocked) throw new NotAuthorized(res.t('accountSuspended', {communityManagerEmail: COMMUNITY_MANAGER_EMAIL, userId: user._id}));
res.locals.user = user;
diff --git a/website/server/middlewares/locals.js b/website/server/middlewares/locals.js
index 7f2a4b3955..6fa1cf062e 100644
--- a/website/server/middlewares/locals.js
+++ b/website/server/middlewares/locals.js
@@ -28,6 +28,11 @@ let env = {
SELLER_ID: nconf.get('AMAZON_PAYMENTS:SELLER_ID'),
CLIENT_ID: nconf.get('AMAZON_PAYMENTS:CLIENT_ID'),
},
+ EMAILS: {
+ COMMUNITY_MANAGER_EMAIL: nconf.get('EMAILS:COMMUNITY_MANAGER_EMAIL'),
+ TECH_ASSISTANCE_EMAIL: nconf.get('EMAILS:TECH_ASSISTANCE_EMAIL'),
+ PRESS_ENQUIRY_EMAIL: nconf.get('EMAILS:PRESS_ENQUIRY_EMAIL'),
+ },
};
'NODE_ENV BASE_URL GA_ID STRIPE_PUB_KEY FACEBOOK_KEY GOOGLE_CLIENT_ID AMPLITUDE_KEY PUSHER:KEY PUSHER:ENABLED'
diff --git a/website/views/options/social/index.jade b/website/views/options/social/index.jade
index 18ff56524b..9256e4e491 100644
--- a/website/views/options/social/index.jade
+++ b/website/views/options/social/index.jade
@@ -12,7 +12,7 @@ include ./groups/create-group
script(type='text/ng-template', id='partials/options.social.inbox.html')
.options-blurbmenu
- small.muted!=env.t('blurbInbox')
+ small.muted!=env.t('blurbInbox', { hrefCommunityManagerEmail : '' + env.EMAILS.COMMUNITY_MANAGER_EMAIL + '' })
.container-fluid
.row
diff --git a/website/views/static/community-guidelines.jade b/website/views/static/community-guidelines.jade
index bcbe51a0b0..f4edbd8439 100644
--- a/website/views/static/community-guidelines.jade
+++ b/website/views/static/community-guidelines.jade
@@ -108,7 +108,7 @@ block content
strong Megan
li
strong Daniel the Bard
- p!=env.t('commGuidePara012')
+ p!=env.t('commGuidePara012', { hrefCommunityManagerEmail : '' + env.EMAILS.COMMUNITY_MANAGER_EMAIL + '' })
p=env.t('commGuidePara013')
p=env.t('commGuidePara014')
|
@@ -127,7 +127,7 @@ block content
li!=env.t('commGuideList02E')
li!=env.t('commGuideList02F')
li!=env.t('commGuideList02G')
- li!=env.t('commGuideList02H')
+ li!=env.t('commGuideList02H', { hrefCommunityManagerEmail : '' + env.EMAILS.COMMUNITY_MANAGER_EMAIL +'' })
li!=env.t('commGuideList02I')
p!=env.t('commGuidePara019')
p=env.t('commGuidePara020')
@@ -148,7 +148,7 @@ block content
img.pull-right(src='/community-guidelines-images/publicGuilds.png', alt='')
p!=env.t('commGuidePara029')
p!=env.t('commGuidePara031')
- p!=env.t('commGuidePara033')
+ p!=env.t('commGuidePara033', { hrefCommunityManagerEmail : '' + env.EMAILS.COMMUNITY_MANAGER_EMAIL + '' })
p!=env.t('commGuidePara035')
p
strong=env.t('commGuidePara037')
@@ -251,7 +251,7 @@ block content
p=env.t('commGuidePara054')
p=env.t('commGuidePara055')
ul
- li!=env.t('commGuideList06A')
+ li!=env.t('commGuideList06A', { hrefCommunityManagerEmail : '' + env.EMAILS.COMMUNITY_MANAGER_EMAIL + '' })
li=env.t('commGuideList06B')
li=env.t('commGuideList06C')
li=env.t('commGuideList06D')
@@ -322,7 +322,7 @@ block content
li!=env.t('commGuideList13D')
h2#final=env.t('commGuideHeadingFinal')
- p!=env.t('commGuidePara067')
+ p!=env.t('commGuidePara067', { hrefCommunityManagerEmail : '' + env.EMAILS.COMMUNITY_MANAGER_EMAIL + '' })
p=env.t('commGuidePara068')
h2#links=env.t('commGuideHeadingLinks')
diff --git a/website/views/static/faq.jade b/website/views/static/faq.jade
index 9a7873967a..3982a5cb90 100644
--- a/website/views/static/faq.jade
+++ b/website/views/static/faq.jade
@@ -19,10 +19,11 @@ block content
| 5, 2016
- var headings = ['overview', 'set-up-tasks', 'sample-tasks', 'task-color', 'health', 'party-with-friends', 'pets-mounts', 'character-classes', 'blue-mana-bar', 'monsters-quests', 'gems', 'bugs-features', 'world-boss']
+ - var replacements = { techAssistanceEmail: env.EMAILS.TECH_ASSISTANCE_EMAIL, wikiTechAssistanceEmail: `mailto:${env.EMAILS.TECH_ASSISTANCE_EMAIL}`,}
- for heading, index in headings
a.h2.accordion.collapsed(ng-href='#' + heading, data-toggle='collapse')=env.t('faqQuestion' + index)
.clearfix.collapse(id=heading)
- !=md.unsafeHTMLRender(env.t('webFaqAnswer' + index))
+ !=md.unsafeHTMLRender(env.t('webFaqAnswer' + index, replacements))
hr
diff --git a/website/views/static/maintenance-info.jade b/website/views/static/maintenance-info.jade
index 241aafde3a..2fcbe07dd2 100644
--- a/website/views/static/maintenance-info.jade
+++ b/website/views/static/maintenance-info.jade
@@ -18,7 +18,7 @@ body
p!=t('maintenanceInfoTechDetails')
h2=t('maintenanceInfoMore')
h3=t('maintenanceInfoAccountChanges')
- p!=t('maintenanceInfoAccountChangesText')
+ p!=t('maintenanceInfoAccountChangesText', { hrefTechAssistanceEmail : '' + env.EMAILS.TECH_ASSISTANCE_EMAIL + ''})
h3=t('maintenanceInfoAddFeatures')
p=t('maintenanceInfoAddFeaturesText')
h3=t('maintenanceInfoHowLong')
diff --git a/website/views/static/press-kit.jade b/website/views/static/press-kit.jade
index e9d4c541de..fa8f284dbc 100644
--- a/website/views/static/press-kit.jade
+++ b/website/views/static/press-kit.jade
@@ -18,7 +18,7 @@ block extraHead
block content
div.jumbotron
h1= env.t('presskit')
- p= env.t('presskitText')
+ p= env.t('presskitText', { pressEnquiryEmail : env.EMAILS.PRESS_ENQUIRY_EMAIL })
p
a.btn.btn-lg.btn-success(href='/presskit/presskit.zip') presskit.zip