mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 19:15:58 +01:00 
			
		
		
		
	user selectable pagination
This commit is contained in:
		| @@ -7,7 +7,10 @@ define(['forum/accountheader'], function(header) { | |||||||
| 		$('#submitBtn').on('click', function() { | 		$('#submitBtn').on('click', function() { | ||||||
|  |  | ||||||
| 			var settings = { | 			var settings = { | ||||||
| 				showemail: $('#showemailCheckBox').is(':checked') ? 1 : 0 | 				showemail: $('#showemailCheckBox').is(':checked') ? 1 : 0, | ||||||
|  | 				usePagination: $('#usePaginationCheckBox').is(':checked') ? 1 : 0, | ||||||
|  | 				topicsPerPage: $('#topicsPerPage').val(), | ||||||
|  | 				postsPerPage: $('#postsPerPage').val() | ||||||
| 			}; | 			}; | ||||||
|  |  | ||||||
| 			socket.emit('user.saveSettings', settings, function(err) { | 			socket.emit('user.saveSettings', settings, function(err) { | ||||||
|   | |||||||
| @@ -6,16 +6,31 @@ | |||||||
|  |  | ||||||
| 	<div class="row"> | 	<div class="row"> | ||||||
| 		<div class="col-md-6"> | 		<div class="col-md-6"> | ||||||
|  | 			<div class="panel panel-default"> | ||||||
|  | 				<div class="panel-body"> | ||||||
| 					<h4>privacy</h4> | 					<h4>privacy</h4> | ||||||
| 					<div class="checkbox"> | 					<div class="checkbox"> | ||||||
| 						<label> | 						<label> | ||||||
| 	      			<input id="showemailCheckBox" type="checkbox" {showemail}> [[user:show_email]] | 							<input id="showemailCheckBox" type="checkbox" <!-- IF settings.showemail -->checked<!-- ENDIF settings.showemail --> > [[user:show_email]] | ||||||
| 						</label> | 						</label> | ||||||
| 					</div> | 					</div> | ||||||
| 				</div> | 				</div> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  |  | ||||||
| 		<div class="col-md-6"> | 		<div class="col-md-6"> | ||||||
|  | 			<div class="panel panel-default"> | ||||||
|  | 				<div class="panel-body"> | ||||||
|  | 					<div class="checkbox"> | ||||||
|  | 						<label> | ||||||
|  | 							<input id="usePaginationCheckBox" type="checkbox" <!-- IF settings.usePagination -->checked<!-- ENDIF settings.usePagination -->> <strong>Paginate topics and posts instead of using infinite scroll.</strong> | ||||||
|  | 						</label> | ||||||
|  | 					</div> | ||||||
|  |  | ||||||
|  | 					<strong>Topics per Page</strong><br /> <input id="topicsPerPage" type="text" class="form-control" value="{settings.topicsPerPage}"><br /> | ||||||
|  | 					<strong>Posts per Page</strong><br /> <input id="postsPerPage" type="text" class="form-control" value="{settings.postsPerPage}"><br /> | ||||||
|  | 				</div> | ||||||
|  | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| 	<div class="form-actions"> | 	<div class="form-actions"> | ||||||
|   | |||||||
| @@ -77,7 +77,7 @@ var db = require('./database'), | |||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		function getPageCount(next) { | 		function getPageCount(next) { | ||||||
| 			Categories.getPageCount(category_id, next); | 			Categories.getPageCount(category_id, current_user, next); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		async.parallel({ | 		async.parallel({ | ||||||
| @@ -146,16 +146,19 @@ var db = require('./database'), | |||||||
| 		db.getSortedSetRevRange('categories:' + cid + ':tid', start, stop, callback); | 		db.getSortedSetRevRange('categories:' + cid + ':tid', start, stop, callback); | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	Categories.getPageCount = function(cid, callback) { | 	Categories.getPageCount = function(cid, uid, callback) { | ||||||
| 		db.sortedSetCard('categories:' + cid + ':tid', function(err, topicCount) { | 		db.sortedSetCard('categories:' + cid + ':tid', function(err, topicCount) { | ||||||
| 			if(err) { | 			if(err) { | ||||||
| 				return callback(err); | 				return callback(err); | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			var topicsPerPage = parseInt(meta.config.topicsPerPage, 10); | 			user.getSettings(uid, function(err, settings) { | ||||||
| 			topicsPerPage = topicsPerPage ? topicsPerPage : 20; | 				if(err) { | ||||||
|  | 					return callback(err); | ||||||
|  | 				} | ||||||
|  |  | ||||||
| 			callback(null, Math.ceil(parseInt(topicCount, 10) / topicsPerPage)); | 				callback(null, Math.ceil(parseInt(topicCount, 10) / settings.topicsPerPage)); | ||||||
|  | 			}); | ||||||
| 		}); | 		}); | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -52,8 +52,23 @@ var path = require('path'), | |||||||
| 				config.defaultLang = meta.config.defaultLang || 'en_GB'; | 				config.defaultLang = meta.config.defaultLang || 'en_GB'; | ||||||
| 				config.environment = process.env.NODE_ENV; | 				config.environment = process.env.NODE_ENV; | ||||||
|  |  | ||||||
|  | 				if (!req.user) { | ||||||
|  | 					return res.json(200, config); | ||||||
|  | 				} | ||||||
|  |  | ||||||
|  | 				if(req.user) { | ||||||
|  | 					user.getSettings(req.user.uid, function(err, settings) { | ||||||
|  | 						if(err) { | ||||||
|  | 							return next(err); | ||||||
|  | 						} | ||||||
|  |  | ||||||
|  | 						config.usePagination = settings.usePagination; | ||||||
|  | 						config.topicsPerPage = settings.topicsPerPage; | ||||||
|  | 						config.postsPerPage = settings.postsPerPage; | ||||||
| 						res.json(200, config); | 						res.json(200, config); | ||||||
| 					}); | 					}); | ||||||
|  | 				} | ||||||
|  | 			}); | ||||||
|  |  | ||||||
| 			app.get('/home', function (req, res) { | 			app.get('/home', function (req, res) { | ||||||
| 				var uid = (req.user) ? req.user.uid : 0; | 				var uid = (req.user) ? req.user.uid : 0; | ||||||
| @@ -189,9 +204,13 @@ var path = require('path'), | |||||||
| 					return res.send(404); | 					return res.send(404); | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				var postsPerPage = parseInt(meta.config.postsPerPage ? meta.config.postsPerPage : 20, 10); | 				user.getSettings(uid, function(err, settings) { | ||||||
| 				var start = (page - 1) * postsPerPage; | 					if(err) { | ||||||
| 				var end = start + postsPerPage - 1; | 						return next(err); | ||||||
|  | 					} | ||||||
|  |  | ||||||
|  | 					var start = (page - 1) * settings.postsPerPage; | ||||||
|  | 					var end = start + settings.postsPerPage - 1; | ||||||
|  |  | ||||||
| 					ThreadTools.privileges(req.params.id, uid, function(err, privileges) { | 					ThreadTools.privileges(req.params.id, uid, function(err, privileges) { | ||||||
| 						if (privileges.read) { | 						if (privileges.read) { | ||||||
| @@ -218,6 +237,7 @@ var path = require('path'), | |||||||
| 						} | 						} | ||||||
| 					}); | 					}); | ||||||
| 				}); | 				}); | ||||||
|  | 			}); | ||||||
|  |  | ||||||
| 			app.get('/category/:id/:slug?', function (req, res, next) { | 			app.get('/category/:id/:slug?', function (req, res, next) { | ||||||
| 				var uid = (req.user) ? req.user.uid : 0; | 				var uid = (req.user) ? req.user.uid : 0; | ||||||
| @@ -230,11 +250,14 @@ var path = require('path'), | |||||||
| 					return res.send(404); | 					return res.send(404); | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				var topicsPerPage = parseInt(meta.config.topicsPerPage ? meta.config.topicsPerPage : 20, 10); | 				user.getSettings(uid, function(err, settings) { | ||||||
| 				var start = (page - 1) * topicsPerPage; | 					if(err) { | ||||||
| 				var end = start + topicsPerPage - 1; | 						return next(err); | ||||||
|  | 					} | ||||||
|  |  | ||||||
|  | 					var start = (page - 1) * settings.topicsPerPage; | ||||||
|  | 					var end = start + settings.topicsPerPage - 1; | ||||||
|  |  | ||||||
| 				// Category Whitelisting |  | ||||||
| 					categoryTools.privileges(req.params.id, uid, function(err, privileges) { | 					categoryTools.privileges(req.params.id, uid, function(err, privileges) { | ||||||
| 						if (!err && privileges.read) { | 						if (!err && privileges.read) { | ||||||
| 							categories.getCategoryById(req.params.id, start, end, uid, function (err, data) { | 							categories.getCategoryById(req.params.id, start, end, uid, function (err, data) { | ||||||
| @@ -256,6 +279,7 @@ var path = require('path'), | |||||||
| 						} | 						} | ||||||
| 					}); | 					}); | ||||||
| 				}); | 				}); | ||||||
|  | 			}); | ||||||
|  |  | ||||||
| 			app.get('/recent/:term?', function (req, res, next) { | 			app.get('/recent/:term?', function (req, res, next) { | ||||||
| 				var uid = (req.user) ? req.user.uid : 0; | 				var uid = (req.user) ? req.user.uid : 0; | ||||||
|   | |||||||
| @@ -270,40 +270,43 @@ var fs = require('fs'), | |||||||
| 			var callerUID = req.user ? req.user.uid : '0'; | 			var callerUID = req.user ? req.user.uid : '0'; | ||||||
|  |  | ||||||
| 			user.getUidByUserslug(req.params.userslug, function (err, uid) { | 			user.getUidByUserslug(req.params.userslug, function (err, uid) { | ||||||
|  | 				if (err) { | ||||||
|  | 					return next(err); | ||||||
|  | 				} | ||||||
|  |  | ||||||
| 				if (!uid) { | 				if (!uid) { | ||||||
| 					res.json(404, { | 					return res.json(404, { | ||||||
| 						error: 'User not found!' | 						error: 'User not found!' | ||||||
| 					}); | 					}); | ||||||
| 					return; |  | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				if (uid != callerUID || callerUID == '0') { | 				if (uid != callerUID || callerUID == '0') { | ||||||
| 					res.json(403, { | 					return res.json(403, { | ||||||
| 						error: 'Not allowed!' | 						error: 'Not allowed!' | ||||||
| 					}); | 					}); | ||||||
| 					return; |  | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
|  | 				user.getUserFields(uid, ['username', 'userslug'], function (err, userData) { | ||||||
| 				user.getUserFields(uid, ['username', 'userslug', 'showemail'], function (err, userData) { | 					if (err) { | ||||||
| 					if (err) |  | ||||||
| 						return next(err); | 						return next(err); | ||||||
|  | 					} | ||||||
|  |  | ||||||
| 					if (userData) { | 					if(!userData) { | ||||||
| 						if (userData.showemail && parseInt(userData.showemail, 10) === 1) { | 						return res.json(404, { | ||||||
| 							userData.showemail = "checked"; | 							error: 'User not found!' | ||||||
| 						} else { | 						}); | ||||||
| 							userData.showemail = ""; | 					} | ||||||
|  |  | ||||||
|  | 					user.getSettings(uid, function(err, settings) { | ||||||
|  | 						if(err) { | ||||||
|  | 							return next(err); | ||||||
| 						} | 						} | ||||||
|  |  | ||||||
| 						userData.theirid = uid; | 						userData.theirid = uid; | ||||||
| 						userData.yourid = callerUID; | 						userData.yourid = callerUID; | ||||||
|  | 						userData.settings = settings; | ||||||
| 						res.json(userData); | 						res.json(userData); | ||||||
| 					} else { |  | ||||||
| 						res.json(404, { |  | ||||||
| 							error: 'User not found!' |  | ||||||
| 					}); | 					}); | ||||||
| 					} |  | ||||||
| 				}); | 				}); | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| @@ -313,17 +316,15 @@ var fs = require('fs'), | |||||||
|  |  | ||||||
| 			user.getUidByUserslug(req.params.userslug, function (err, uid) { | 			user.getUidByUserslug(req.params.userslug, function (err, uid) { | ||||||
| 				if (!uid) { | 				if (!uid) { | ||||||
| 					res.json(404, { | 					return res.json(404, { | ||||||
| 						error: 'User not found!' | 						error: 'User not found!' | ||||||
| 					}); | 					}); | ||||||
| 					return; |  | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				if (uid != callerUID || callerUID == '0') { | 				if (uid != callerUID || callerUID == '0') { | ||||||
| 					res.json(403, { | 					return res.json(403, { | ||||||
| 						error: 'Not allowed!' | 						error: 'Not allowed!' | ||||||
| 					}); | 					}); | ||||||
| 					return; |  | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				user.getUserFields(uid, ['username', 'userslug'], function (err, userData) { | 				user.getUserFields(uid, ['username', 'userslug'], function (err, userData) { | ||||||
| @@ -331,7 +332,12 @@ var fs = require('fs'), | |||||||
| 						return next(err); | 						return next(err); | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
| 					if (userData) { | 					if (!userData) { | ||||||
|  | 						return res.json(404, { | ||||||
|  | 							error: 'User not found!' | ||||||
|  | 						}); | ||||||
|  | 					} | ||||||
|  |  | ||||||
| 					posts.getFavourites(uid, 0, 9, function (err, favourites) { | 					posts.getFavourites(uid, 0, 9, function (err, favourites) { | ||||||
| 						if (err) { | 						if (err) { | ||||||
| 							return next(err); | 							return next(err); | ||||||
| @@ -344,11 +350,6 @@ var fs = require('fs'), | |||||||
|  |  | ||||||
| 						res.json(userData); | 						res.json(userData); | ||||||
| 					}); | 					}); | ||||||
| 					} else { |  | ||||||
| 						res.json(404, { |  | ||||||
| 							error: 'User not found!' |  | ||||||
| 						}); |  | ||||||
| 					} |  | ||||||
| 				}); | 				}); | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
| @@ -358,10 +359,9 @@ var fs = require('fs'), | |||||||
|  |  | ||||||
| 			user.getUidByUserslug(req.params.userslug, function (err, uid) { | 			user.getUidByUserslug(req.params.userslug, function (err, uid) { | ||||||
| 				if (!uid) { | 				if (!uid) { | ||||||
| 					res.json(404, { | 					return res.json(404, { | ||||||
| 						error: 'User not found!' | 						error: 'User not found!' | ||||||
| 					}); | 					}); | ||||||
| 					return; |  | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				user.getUserFields(uid, ['username', 'userslug'], function (err, userData) { | 				user.getUserFields(uid, ['username', 'userslug'], function (err, userData) { | ||||||
| @@ -369,7 +369,12 @@ var fs = require('fs'), | |||||||
| 						return next(err); | 						return next(err); | ||||||
| 					} | 					} | ||||||
|  |  | ||||||
| 					if (userData) { | 					if (!userData) { | ||||||
|  | 						return res.json(404, { | ||||||
|  | 							error: 'User not found!' | ||||||
|  | 						}); | ||||||
|  | 					} | ||||||
|  |  | ||||||
| 					posts.getPostsByUid(callerUID, uid, 0, 19, function (err, userPosts) { | 					posts.getPostsByUid(callerUID, uid, 0, 19, function (err, userPosts) { | ||||||
| 						if (err) { | 						if (err) { | ||||||
| 							return next(err); | 							return next(err); | ||||||
| @@ -382,11 +387,6 @@ var fs = require('fs'), | |||||||
|  |  | ||||||
| 						res.json(userData); | 						res.json(userData); | ||||||
| 					}); | 					}); | ||||||
| 					} else { |  | ||||||
| 						res.json(404, { |  | ||||||
| 							error: 'User not found!' |  | ||||||
| 						}); |  | ||||||
| 					} |  | ||||||
| 				}); | 				}); | ||||||
| 			}); | 			}); | ||||||
| 		}); | 		}); | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| var	categories = require('../categories'), | var	categories = require('../categories'), | ||||||
| 	meta = require('./../meta'), | 	meta = require('./../meta'), | ||||||
|  | 	user = require('./../user'), | ||||||
|  |  | ||||||
| 	SocketCategories = {}; | 	SocketCategories = {}; | ||||||
|  |  | ||||||
| @@ -16,16 +17,17 @@ SocketCategories.loadMore = function(socket, data, callback) { | |||||||
| 		return callback(new Error('invalid data')); | 		return callback(new Error('invalid data')); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	var topicsPerPage = parseInt(meta.config.topicsPerPage, 10) || 20; | 	user.getSettings(socket.uid, function(err, settings) { | ||||||
|  |  | ||||||
| 		var start = parseInt(data.after, 10), | 		var start = parseInt(data.after, 10), | ||||||
| 		end = start + topicsPerPage - 1; | 		end = start + settings.topicsPerPage - 1; | ||||||
|  |  | ||||||
| 		categories.getCategoryTopics(data.cid, start, end, socket.uid, callback); | 		categories.getCategoryTopics(data.cid, start, end, socket.uid, callback); | ||||||
|  | 	}); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| SocketCategories.getPageCount = function(socket, cid, callback) { | SocketCategories.getPageCount = function(socket, cid, callback) { | ||||||
| 	categories.getPageCount(cid, callback); | 	categories.getPageCount(cid, socket.uid, callback); | ||||||
| } | }; | ||||||
|  |  | ||||||
| module.exports = SocketCategories; | module.exports = SocketCategories; | ||||||
| @@ -1,6 +1,7 @@ | |||||||
| var topics = require('../topics'), | var topics = require('../topics'), | ||||||
| 	threadTools = require('../threadTools'), | 	threadTools = require('../threadTools'), | ||||||
| 	index = require('./index'), | 	index = require('./index'), | ||||||
|  | 	user = require('../user'), | ||||||
|  |  | ||||||
| 	async = require('async'), | 	async = require('async'), | ||||||
|  |  | ||||||
| @@ -233,11 +234,10 @@ SocketTopics.loadMore = function(socket, data, callback) { | |||||||
| 		return callback(new Error('invalid data')); | 		return callback(new Error('invalid data')); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	var postsPerPage = parseInt(meta.config.postsPerPage, 10); | 	user.getSettings(socket.uid, function(err, settings) { | ||||||
| 	postsPerPage = postsPerPage ? postsPerPage : 20; |  | ||||||
|  |  | ||||||
| 		var start = parseInt(data.after, 10), | 		var start = parseInt(data.after, 10), | ||||||
| 		end = start + postsPerPage - 1; | 			end = start + settings.postsPerPage - 1; | ||||||
|  |  | ||||||
| 		async.parallel({ | 		async.parallel({ | ||||||
| 			posts: function(next) { | 			posts: function(next) { | ||||||
| @@ -249,6 +249,7 @@ SocketTopics.loadMore = function(socket, data, callback) { | |||||||
| 		}, function(err, results) { | 		}, function(err, results) { | ||||||
| 			callback(err, results); | 			callback(err, results); | ||||||
| 		}); | 		}); | ||||||
|  | 	}); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| SocketTopics.loadMoreRecentTopics = function(socket, data, callback) { | SocketTopics.loadMoreRecentTopics = function(socket, data, callback) { | ||||||
| @@ -286,7 +287,7 @@ SocketTopics.loadMoreFromSet = function(socket, data, callback) { | |||||||
|  |  | ||||||
|  |  | ||||||
| SocketTopics.getPageCount = function(socket, tid, callback) { | SocketTopics.getPageCount = function(socket, tid, callback) { | ||||||
| 	topics.getPageCount(tid, callback); | 	topics.getPageCount(tid, socket.uid, callback); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| module.exports = SocketTopics; | module.exports = SocketTopics; | ||||||
| @@ -135,9 +135,7 @@ SocketUser.unfollow = function(socket, data, callback) { | |||||||
|  |  | ||||||
| SocketUser.saveSettings = function(socket, data, callback) { | SocketUser.saveSettings = function(socket, data, callback) { | ||||||
| 	if (socket.uid && data) { | 	if (socket.uid && data) { | ||||||
| 		user.setUserFields(socket.uid, { | 		user.saveSettings(socket.uid, data, callback); | ||||||
| 			showemail: data.showemail |  | ||||||
| 		}, callback); |  | ||||||
| 	} | 	} | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -391,16 +391,19 @@ var async = require('async'), | |||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	Topics.getPageCount = function(tid, callback) { | 	Topics.getPageCount = function(tid, uid, callback) { | ||||||
| 		db.sortedSetCard('tid:' + tid + ':posts', function(err, postCount) { | 		db.sortedSetCard('tid:' + tid + ':posts', function(err, postCount) { | ||||||
| 			if(err) { | 			if(err) { | ||||||
| 				return callback(err); | 				return callback(err); | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			var postsPerPage = parseInt(meta.config.postsPerPage, 10); | 			user.getSettings(uid, function(err, settings) { | ||||||
| 			postsPerPage = postsPerPage ? postsPerPage : 20; | 				if(err) { | ||||||
|  | 					return callback(err); | ||||||
|  | 				} | ||||||
|  |  | ||||||
| 			callback(null, Math.ceil(parseInt(postCount, 10) / postsPerPage)); | 				callback(null, Math.ceil(parseInt(postCount, 10) / settings.postsPerPage)); | ||||||
|  | 			}); | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -808,7 +811,7 @@ var async = require('async'), | |||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			function getPageCount(next) { | 			function getPageCount(next) { | ||||||
| 				Topics.getPageCount(tid, next); | 				Topics.getPageCount(tid, current_user, next); | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			async.parallel([getTopicData, getTopicPosts, getPrivileges, getCategoryData, getPageCount], function(err, results) { | 			async.parallel([getTopicData, getTopicPosts, getPrivileges, getCategoryData, getPageCount], function(err, results) { | ||||||
|   | |||||||
							
								
								
									
										41
									
								
								src/user.js
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								src/user.js
									
									
									
									
									
								
							| @@ -184,6 +184,47 @@ var bcrypt = require('bcryptjs'), | |||||||
| 		}); | 		}); | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | 	User.getSettings = function(uid, callback) { | ||||||
|  | 		function sendDefaultSettings() { | ||||||
|  | 			callback(null, { | ||||||
|  | 				showemail: false, | ||||||
|  | 				usePagination: parseInt(meta.config.usePagination, 10) !== 0, | ||||||
|  | 				topicsPerPage: parseInt(meta.config.topicsPerPage, 10) || 20, | ||||||
|  | 				postsPerPage: parseInt(meta.config.postsPerPage, 10) || 10 | ||||||
|  | 			}); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		if(!parseInt(uid, 10)) { | ||||||
|  | 			return sendDefaultSettings(); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		db.getObject('user:' + uid + ':settings', function(err, settings) { | ||||||
|  | 			if(err) { | ||||||
|  | 				return callback(err); | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			if(!settings) { | ||||||
|  | 				return sendDefaultSettings(); | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			settings.showemail = parseInt(settings.showemail, 10) !== 0; | ||||||
|  | 			settings.usePagination = parseInt(settings.usePagination, 10) !== 0; | ||||||
|  | 			settings.topicsPerPage = parseInt(settings.topicsPerPage, 10); | ||||||
|  | 			settings.postsPerPage = parseInt(settings.postsPerPage, 10); | ||||||
|  |  | ||||||
|  | 			callback(null, settings); | ||||||
|  | 		}); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	User.saveSettings = function(uid, data, callback) { | ||||||
|  | 		db.setObject('user:' + uid + ':settings', { | ||||||
|  | 			showemail: data.showemail || 0, | ||||||
|  | 			usePagination: data.usePagination || 0, | ||||||
|  | 			topicsPerPage: data.topicsPerPage || 20, | ||||||
|  | 			postsPerPage: data.postsPerPage || 10 | ||||||
|  | 		}, callback); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	User.updateProfile = function(uid, data, callback) { | 	User.updateProfile = function(uid, data, callback) { | ||||||
|  |  | ||||||
| 		var fields = ['username', 'email', 'fullname', 'website', 'location', 'birthday', 'signature']; | 		var fields = ['username', 'email', 'fullname', 'website', 'location', 'birthday', 'signature']; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user