Merge remote-tracking branch 'origin/master' into 0.7.0

v1.18.x
barisusakli 11 years ago
commit ddee93beab

@ -253,11 +253,8 @@ app.uid = null;
app.replaceSelfLinks(); app.replaceSelfLinks();
setTimeout(function () { // Scroll back to top of page
if (window.scrollY === 0) { window.scrollTo(0, 0);
window.scrollTo(0, 1); // rehide address bar on mobile after page load completes.
}
}, 100);
}; };
app.showLoginMessage = function () { app.showLoginMessage = function () {

@ -457,6 +457,17 @@ define('settings', function () {
console.log('[settings] Unable to load settings for hash: ', hash); console.log('[settings] Unable to load settings for hash: ', hash);
return callback(err); return callback(err);
} }
// Parse all values. If they are json, return json
for(var key in values) {
if (values.hasOwnProperty(key)) {
try {
values[key] = JSON.parse(values[key]);
} catch (e) {
// Leave the value as is
}
}
}
$(formEl).deserialize(values); $(formEl).deserialize(values);
@ -471,9 +482,16 @@ define('settings', function () {
formEl.find('input[type="checkbox"]').each(function (idx, inputEl) { formEl.find('input[type="checkbox"]').each(function (idx, inputEl) {
inputEl = $(inputEl); inputEl = $(inputEl);
if (!inputEl.is(':checked')) { if (!inputEl.is(':checked')) {
values[inputEl.attr('id')] = 'off'; values[inputEl.attr('name')] = 'off';
} }
}); });
// Normalizing value of multiple selects
formEl.find('select[multiple]').each(function(idx, selectEl) {
selectEl = $(selectEl);
values[selectEl.attr('name')] = JSON.stringify(selectEl.val());
});
socket.emit('admin.settings.set', { socket.emit('admin.settings.set', {
hash: hash, hash: hash,
values: values values: values

@ -139,7 +139,6 @@
left: 282px; left: 282px;
} }
.colorpicker_submit { .colorpicker_submit {
display: none;
position: absolute; position: absolute;
width: 22px; width: 22px;
height: 22px; height: 22px;

@ -32,7 +32,7 @@ groupsController.details = function(req, res, next) {
}, next); }, next);
}, },
posts: function(next) { posts: function(next) {
groups.getLatestMemberPosts(req.params.name, 10, uid, next); groups.getLatestMemberPosts(req.params.slug, 10, uid, next);
} }
}, function(err, results) { }, function(err, results) {
if (err) { if (err) {

@ -48,32 +48,32 @@ usersController.getOnlineUsers = function(req, res, next) {
}; };
usersController.getUsersSortedByPosts = function(req, res, next) { usersController.getUsersSortedByPosts = function(req, res, next) {
getUsers('users:postcount', res, next); usersController.getUsers('users:postcount', 50, res, next);
}; };
usersController.getUsersSortedByReputation = function(req, res, next) { usersController.getUsersSortedByReputation = function(req, res, next) {
getUsers('users:reputation', res, next); usersController.getUsers('users:reputation', 50, res, next);
}; };
usersController.getUsersSortedByJoinDate = function(req, res, next) { usersController.getUsersSortedByJoinDate = function(req, res, next) {
getUsers('users:joindate', res, next); usersController.getUsers('users:joindate', 50, res, next);
}; };
function getUsers(set, res, next) { usersController.getUsers = function(set, count, res, next) {
getUsersAndCount(set, 50, function(err, data) { getUsersAndCount(set, count, function(err, data) {
if (err) { if (err) {
return next(err); return next(err);
} }
var userData = { var userData = {
search_display: 'hidden', search_display: 'hidden',
loadmore_display: data.count > 50 ? 'block' : 'hide', loadmore_display: data.count > count ? 'block' : 'hide',
users: data.users, users: data.users,
show_anon: 'hide' show_anon: 'hide'
}; };
res.render('users', userData); res.render('users', userData);
}); });
} };
function getUsersAndCount(set, count, callback) { function getUsersAndCount(set, count, callback) {
async.parallel({ async.parallel({

@ -758,11 +758,10 @@ var async = require('async'),
}); });
}; };
Groups.getLatestMemberPosts = function(groupName, max, uid, callback) { Groups.getLatestMemberPosts = function(groupSlug, max, uid, callback) {
async.waterfall([ async.waterfall([
function(next) { async.apply(Groups.getGroupNameByGroupSlug, groupSlug),
Groups.getMembers(groupName, next); Groups.getMembers,
},
function(uids, next) { function(uids, next) {
if (!Array.isArray(uids) || !uids.length) { if (!Array.isArray(uids) || !uids.length) {
return callback(null, []); return callback(null, []);

@ -154,11 +154,9 @@ module.exports = function(Topics) {
return callback(); return callback();
} }
tids = tids.filter(Boolean); tids = tids.filter(Boolean);
if (!tids.length) {
var now = Date.now(); return callback();
var scores = tids.map(function(tid) { }
return now;
});
async.parallel({ async.parallel({
topicScores: function(next) { topicScores: function(next) {
@ -180,6 +178,11 @@ module.exports = function(Topics) {
return callback(); return callback();
} }
var now = Date.now();
var scores = tids.map(function(tid) {
return now;
});
async.parallel({ async.parallel({
markRead: function(next) { markRead: function(next) {
db.sortedSetAdd('uid:' + uid + ':tids_read', scores, tids, next); db.sortedSetAdd('uid:' + uid + ':tids_read', scores, tids, next);

@ -688,11 +688,22 @@ Upgrade.upgrade = function(callback) {
updatesMade = true; updatesMade = true;
winston.info('[2015/01/19] Generating group slugs'); winston.info('[2015/01/19] Generating group slugs');
Groups.list({}, function(err, groups) { async.waterfall([
async.apply(db.getSetMembers, 'groups'),
function(groups, next) {
async.filter(groups, function(groupName, next) {
db.getObjectField('group:' + groupName, 'hidden', function(err, hidden) {
next((err || parseInt(hidden, 10)) ? false : true);
});
}, function(groups) {
next(null, groups);
});
}
], function(err, groups) {
var tasks = []; var tasks = [];
groups.forEach(function(groupObj) { groups.forEach(function(groupName) {
tasks.push(async.apply(db.setObjectField, 'group:' + groupObj.name, 'slug', Utils.slugify(groupObj.name))); tasks.push(async.apply(db.setObjectField, 'group:' + groupName, 'slug', Utils.slugify(groupName)));
tasks.push(async.apply(db.setObjectField, 'groupslug:groupname', Utils.slugify(groupObj.name), groupObj.name)); tasks.push(async.apply(db.setObjectField, 'groupslug:groupname', Utils.slugify(groupName), groupName));
}); });
// Administrator group // Administrator group

@ -101,6 +101,7 @@ module.exports = function(User) {
followTopicsOnCreate: data.followTopicsOnCreate, followTopicsOnCreate: data.followTopicsOnCreate,
followTopicsOnReply: data.followTopicsOnReply, followTopicsOnReply: data.followTopicsOnReply,
sendChatNotifications: data.sendChatNotifications, sendChatNotifications: data.sendChatNotifications,
sendPostNotifications: data.sendPostNotifications,
restrictChat: data.restrictChat, restrictChat: data.restrictChat,
topicSearchEnabled: data.topicSearchEnabled topicSearchEnabled: data.topicSearchEnabled
}, next); }, next);

Loading…
Cancel
Save