mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-11-03 20:45:58 +01:00 
			
		
		
		
	cleaning up readme file and fixing bugs in editing of posts ("asdf" anyone?)
This commit is contained in:
		
							
								
								
									
										43
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								README.md
									
									
									
									
									
								
							@@ -38,45 +38,4 @@ Lastly, we run the forum.
 | 
			
		||||
 | 
			
		||||
*(Optional)* Some server configurations may install the node binary as `nodejs` instead of `node`. You can re-map it (so as to not break compatibility with `node-supervisor`) by running the following command:
 | 
			
		||||
 | 
			
		||||
    # update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10
 | 
			
		||||
 | 
			
		||||
## Server Configuration
 | 
			
		||||
 | 
			
		||||
The server configuration file (located at `/config.js`) contains default options required for the running of NodeBB. The following options are available:
 | 
			
		||||
 | 
			
		||||
<table>
 | 
			
		||||
	<tr>
 | 
			
		||||
		<th>Option</th>
 | 
			
		||||
		<th>Description</th>
 | 
			
		||||
	</tr>
 | 
			
		||||
	<tr>
 | 
			
		||||
		<td><b>base_url</b></td>
 | 
			
		||||
		<td><i>(Default: 'http://localhost')</i> A web-accessible URL to your app, without the port</td>
 | 
			
		||||
	</tr>
 | 
			
		||||
	<tr>
 | 
			
		||||
		<td><b>upload_path</b></td>
 | 
			
		||||
		<td><i>(Default: '/public/uploads')</i> A relative path (relative to the application's web root) to the uploads folder. Please ensure that Node.js can write to this folder</td>
 | 
			
		||||
	</tr>
 | 
			
		||||
	<tr>
 | 
			
		||||
		<td><b>use_port</b></td>
 | 
			
		||||
		<td><i>(Default: true)</i> Whether or not to include the port number when constructing the url for use in NodeBB. If you are serving NodeBB via a proxy (i.e. nginx), switch this off.
 | 
			
		||||
	<tr>
 | 
			
		||||
		<td><b>port</b></td>
 | 
			
		||||
		<td><i>(Default: 4567)</i> The default port that NodeBB runs on. Even if you are running NodeBB behind a proxy server, this port must be set.</td>
 | 
			
		||||
	</tr>
 | 
			
		||||
	<tr>
 | 
			
		||||
		<td><b>mailer</b></td>
 | 
			
		||||
		<td>
 | 
			
		||||
			<i>(Default: {<br />
 | 
			
		||||
				    host: 'localhost',<br />
 | 
			
		||||
				    port: '25',<br />
 | 
			
		||||
				    from: 'mailer@localhost.lan'<br />
 | 
			
		||||
			})</i><br />
 | 
			
		||||
			Settings for the outgoing mailer (for emails involving user registration/password resets)
 | 
			
		||||
		</td>
 | 
			
		||||
	</tr>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
## Client Configuration
 | 
			
		||||
 | 
			
		||||
As the client will utilise web sockets to connect to the server, you'll need to customise the client configuration file (located at `/public/config.json`) to point to your server's publically accessible IP. The port will be identical to the port specified in the server-side configuration (defaulted to `4567`).
 | 
			
		||||
    # update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10
 | 
			
		||||
@@ -58,6 +58,10 @@ define(function() {
 | 
			
		||||
			composer.load(uuid);
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		socket.on('api:composer.editCheck', function(editCheck) {
 | 
			
		||||
			if (editCheck.titleEditable === true) composer.postContainer.querySelector('input').readOnly = false;
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		// Posts bar events
 | 
			
		||||
		$(composer.btnContainer).on('click', 'li', function() {
 | 
			
		||||
			var uuid = this.getAttribute('data-uuid');
 | 
			
		||||
@@ -168,11 +172,11 @@ define(function() {
 | 
			
		||||
		composer.postContainer.setAttribute('data-uuid', post_uuid);
 | 
			
		||||
		if (parseInt(post_data.tid) > 0) {
 | 
			
		||||
			titleEl.value = 'Replying to: ' + post_data.title;
 | 
			
		||||
			titleEl.readonly = true;
 | 
			
		||||
			titleEl.readOnly = true;
 | 
			
		||||
		} else if (parseInt(post_data.pid) > 0) {
 | 
			
		||||
			console.log(post_data);
 | 
			
		||||
			titleEl.value = 'Editing: ' + post_data.title;
 | 
			
		||||
			titleEl.readonly = true;
 | 
			
		||||
			titleEl.value = post_data.title;
 | 
			
		||||
			titleEl.readOnly = true;
 | 
			
		||||
			socket.emit('api:composer.editCheck', post_data.pid);
 | 
			
		||||
		} else {
 | 
			
		||||
			titleEl.value = post_data.title;
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,12 @@ marked.setOptions({
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
(function(PostTools) {
 | 
			
		||||
	PostTools.isMain = function(pid, tid, callback) {
 | 
			
		||||
		RDB.lrange('tid:' + tid + ':posts', 0, 0, function(err, pids) {
 | 
			
		||||
			if (pids[0] === pid) callback(true);
 | 
			
		||||
			else callback(false);
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	PostTools.privileges = function(pid, uid, callback) {
 | 
			
		||||
		//todo: break early if one condition is true 
 | 
			
		||||
@@ -48,17 +54,19 @@ marked.setOptions({
 | 
			
		||||
 | 
			
		||||
	PostTools.edit = function(uid, pid, title, content) {
 | 
			
		||||
		var	success = function() {
 | 
			
		||||
 | 
			
		||||
				RDB.set('pid:' + pid + ':content', content);
 | 
			
		||||
				RDB.set('pid:' + pid + ':edited', new Date().getTime());
 | 
			
		||||
				RDB.set('pid:' + pid + ':editor', uid);
 | 
			
		||||
 | 
			
		||||
				posts.get_tid_by_pid(pid, function(tid) {
 | 
			
		||||
					RDB.set('tid:' + tid + ':title', title);
 | 
			
		||||
					io.sockets.in('topic_' + tid).emit('event:post_edited', {
 | 
			
		||||
						pid: pid,
 | 
			
		||||
						title: title,
 | 
			
		||||
						content: marked(content || '')
 | 
			
		||||
					PostTools.isMain(pid, tid, function(isMainPost) {
 | 
			
		||||
						if (isMainPost) RDB.set('tid:' + tid + ':title', title);
 | 
			
		||||
 | 
			
		||||
						io.sockets.in('topic_' + tid).emit('event:post_edited', {
 | 
			
		||||
							pid: pid,
 | 
			
		||||
							title: title,
 | 
			
		||||
							content: marked(content || '')
 | 
			
		||||
						});
 | 
			
		||||
					});
 | 
			
		||||
				});
 | 
			
		||||
			};
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,6 @@ marked.setOptions({
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
(function(Posts) {
 | 
			
		||||
 | 
			
		||||
	Posts.getPostsByTid = function(tid, current_user, start, end, callback) {
 | 
			
		||||
		RDB.lrange('tid:' + tid + ':posts', start, end, function(err, pids) {
 | 
			
		||||
			RDB.handle(err);
 | 
			
		||||
 
 | 
			
		||||
@@ -194,6 +194,12 @@ marked.setOptions({
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	Topics.getTitle = function(tid, callback) {
 | 
			
		||||
		RDB.get('tid:' + tid + ':title', function(err, title) {
 | 
			
		||||
			callback(title);
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	Topics.markAsRead = function(tid, uid) {
 | 
			
		||||
		// there is an issue with this fn. if you read a topic that is previously read you will mark the category as read anyways - there is no check
 | 
			
		||||
		RDB.sadd(schema.topics(tid).read_by_uid, uid);
 | 
			
		||||
 
 | 
			
		||||
@@ -323,15 +323,36 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
 | 
			
		||||
					});
 | 
			
		||||
				});
 | 
			
		||||
			} else if (parseInt(data.pid) > 0) {
 | 
			
		||||
				posts.getRawContent(data.pid, function(raw) {
 | 
			
		||||
				async.parallel([
 | 
			
		||||
					function(next) {
 | 
			
		||||
						posts.getRawContent(data.pid, function(raw) {
 | 
			
		||||
							next(null, raw);
 | 
			
		||||
						});
 | 
			
		||||
					},
 | 
			
		||||
					function(next) {
 | 
			
		||||
						topics.getTitle(data.pid, function(title) {
 | 
			
		||||
							next(null, title);
 | 
			
		||||
						});
 | 
			
		||||
					}
 | 
			
		||||
				], function(err, results) {
 | 
			
		||||
					socket.emit('api:composer.push', {
 | 
			
		||||
						title: 'asdf',
 | 
			
		||||
						title: results[1],
 | 
			
		||||
						pid: data.pid,
 | 
			
		||||
						body: raw
 | 
			
		||||
						body: results[0]
 | 
			
		||||
					});
 | 
			
		||||
				});
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		socket.on('api:composer.editCheck', function(pid) {
 | 
			
		||||
			posts.get_tid_by_pid(pid, function(tid) {
 | 
			
		||||
				postTools.isMain(pid, tid, function(isMain) {
 | 
			
		||||
					socket.emit('api:composer.editCheck', {
 | 
			
		||||
						titleEditable: isMain
 | 
			
		||||
					});
 | 
			
		||||
				})
 | 
			
		||||
			})
 | 
			
		||||
		});
 | 
			
		||||
	});
 | 
			
		||||
	
 | 
			
		||||
}(SocketIO));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user