diff --git a/install/data/defaults.json b/install/data/defaults.json
index 3274c8ec4e..6d81fdbc82 100644
--- a/install/data/defaults.json
+++ b/install/data/defaults.json
@@ -15,6 +15,7 @@
"allowLocalLogin": 1,
"allowAccountDelete": 1,
"allowFileUploads": 0,
+ "allowUserHomePage": 1,
"maximumFileSize": 2048,
"minimumTitleLength": 3,
"maximumTitleLength": 255,
diff --git a/public/src/client/account/settings.js b/public/src/client/account/settings.js
index bf535d8ec0..840f498259 100644
--- a/public/src/client/account/settings.js
+++ b/public/src/client/account/settings.js
@@ -68,7 +68,20 @@ define('forum/account/settings', ['forum/account/header'], function(header) {
css.attr('href', val);
});
+
+ $('[data-property="homePageRoute"]').on('change', toggleCustomRoute);
+
+ toggleCustomRoute();
};
+ function toggleCustomRoute() {
+ $('[data-property="homePageCustom"]').val('');
+ if ($('[data-property="homePageRoute"]').val() === 'custom') {
+ $('#homePageCustom').show();
+ }else{
+ $('#homePageCustom').hide();
+ }
+ }
+
return AccountSettings;
});
diff --git a/src/controllers/accounts.js b/src/controllers/accounts.js
index 8384b4e9b8..65116b26da 100644
--- a/src/controllers/accounts.js
+++ b/src/controllers/accounts.js
@@ -11,5 +11,4 @@ var accountsController = {
chats: require('./accounts/chats')
};
-
module.exports = accountsController;
diff --git a/src/controllers/api.js b/src/controllers/api.js
index 9a6fbee238..5ccedc5aeb 100644
--- a/src/controllers/api.js
+++ b/src/controllers/api.js
@@ -57,6 +57,7 @@ apiController.getConfig = function(req, res, next) {
config.allowProfileImageUploads = parseInt(meta.config.allowProfileImageUploads) === 1;
config.allowTopicsThumbnail = parseInt(meta.config.allowTopicsThumbnail, 10) === 1;
config.allowAccountDelete = parseInt(meta.config.allowAccountDelete, 10) === 1;
+ config.allowUserHomePage = parseInt(meta.config.allowUserHomePage, 10) === 1;
config.privateUserInfo = parseInt(meta.config.privateUserInfo, 10) === 1;
config.privateTagListing = parseInt(meta.config.privateTagListing, 10) === 1;
config.usePagination = parseInt(meta.config.usePagination, 10) === 1;
diff --git a/src/controllers/index.js b/src/controllers/index.js
index ccb8ece26a..4df1455c89 100644
--- a/src/controllers/index.js
+++ b/src/controllers/index.js
@@ -33,22 +33,27 @@ var Controllers = {
Controllers.home = function(req, res, next) {
- var route = meta.config.homePageRoute || meta.config.homePageCustom || 'categories',
- hook = 'action:homepage.get:' + route;
+ var route = meta.config.homePageRoute || meta.config.homePageCustom || 'categories';
- if (plugins.hasListeners(hook)) {
- plugins.fireHook(hook, {req: req, res: res, next: next});
- } else {
- if (route === 'categories' || route === '/') {
- Controllers.categories.list(req, res, next);
- } else if (route === 'recent') {
- Controllers.recent.get(req, res, next);
- } else if (route === 'popular') {
- Controllers.popular.get(req, res, next);
+ user.getSettings(req.uid, function(err, settings) {
+ if (!err) route = settings.homePageRoute || route;
+
+ var hook = 'action:homepage.get:' + route;
+
+ if (plugins.hasListeners(hook)) {
+ plugins.fireHook(hook, {req: req, res: res, next: next});
} else {
- res.redirect(route);
+ if (route === 'categories' || route === '/') {
+ Controllers.categories.list(req, res, next);
+ } else if (route === 'recent') {
+ Controllers.recent.get(req, res, next);
+ } else if (route === 'popular') {
+ Controllers.popular.get(req, res, next);
+ } else {
+ res.redirect(route);
+ }
}
- }
+ });
};
Controllers.reset = function(req, res, next) {
diff --git a/src/user/settings.js b/src/user/settings.js
index 17e524bcb7..a2d83e89eb 100644
--- a/src/user/settings.js
+++ b/src/user/settings.js
@@ -115,7 +115,8 @@ module.exports = function(User) {
sendPostNotifications: data.sendPostNotifications,
restrictChat: data.restrictChat,
topicSearchEnabled: data.topicSearchEnabled,
- groupTitle: data.groupTitle
+ groupTitle: data.groupTitle,
+ homePageRoute: data.homePageCustom || data.homePageRoute
};
if (data.bootswatchSkin) {
diff --git a/src/views/admin/general/homepage.tpl b/src/views/admin/general/homepage.tpl
index 5148d79da9..bfdc086b11 100644
--- a/src/views/admin/general/homepage.tpl
+++ b/src/views/admin/general/homepage.tpl
@@ -12,11 +12,18 @@
-