Giter Site home page Giter Site logo

nodebb / nodebb Goto Github PK

View Code? Open in Web Editor NEW
13.9K 372.0 2.7K 85.91 MB

Node.js based forum software built for the modern web

Home Page: https://nodebb.org

License: GNU General Public License v3.0

JavaScript 88.23% CSS 0.08% Smarty 10.60% Batchfile 0.01% HTML 0.16% Dockerfile 0.03% Shell 0.04% SCSS 0.86%
nodebb javascript redis forum node mongodb websockets socket-io community nodejs

nodebb's Issues

mobile-websockets enhancement

websockets: anything not "important" (ex. calls to get total # of people, or people logging into a topic) should be disabled on mobile. And most especially stuff that isn't visible anyways. I think it slows down old phones

Use npm commander for parsing argv

As on tin; would also make creation of a --help command much easier and make it a bit easier to determine how to run or configure the application from commandline.

incorrect login messages

When you try to login with incorrect details or non-existant account there is no error/warrning message.

Usability bugs for post composer bar

  1. Opening a new composer window while another is already open causes both window buttons to become active
  2. Restoring/unminimizing a composer window should cause the other buttons to reset to default (inactive) state
  3. Shenanigans when toggling through windows

NodeBB cannot be configured to work with a passworded Redis server

Third-party hosted redis databases usually have passwords.

I needed to add support of a password on Redis as I use an external service.
I added the following two lines to redis.js at line 9 (just after the redis.createClient line):

if( global.config.redis.password ) {
    RedisDB.exports.auth(global.config.redis.password);
}

Move the "chat" button over to somewhere near the user

Hi

I think it would make more sense to move the chat button from the bottom bar of the post to somewhere near the user's picture. The chat function has something to do with the user while all other buttons down there have something to do with the post itself.

See screenshot.

chatbutton

Really cool project!

Disconnected when trying to upload avatar

Here's the error:

trying to upload to : /nodebb/public/uploads/photo.png

events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)

Edit: upon restart of the app, I can see that the upload did take place successfully

Not able to post more than 11 replies

I have created two topics till now, and whatever replies I post more than 11 under a topic, they end up not being displayed. They show up in Recent posts, and redis as well, but not in the UI. Am I missing something ? Like pagination buttons or so?

package.json manifest compliance

As per: https://npmjs.org/doc/json.html

people fields: author, contributors

The "author" is one person. "contributors" is an array of people. A "person" is an object with a "name" field and optionally "url" and "email", like this:

{ "name" : "Barney Rubble"
, "email" : "[email protected]"
, "url" : "http://barnyrubble.tumblr.com/"
}

...also relevant:

If there is an AUTHORS file in the root of your package, npm will treat each line as a Name <email> (url) format, where email and url are optional. Lines which start with a # or are blank, will be ignored.

That may be a better solution than relying on the author or contributors field. :)


Further issue: no repository type is stated in package.json. Just add "type":"git" to the object for repository for compliance and proper parsing.

Not working on Chrome 27.0.1453.110

Doesn't work on this version of Chrome. Getting the following socket.io related error.

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

Stack trace

GET http://localhost:4567/socket.io/1/?t=1371463646460 500 (Internal Server Error) socket.io.js:1659
Socket.handshake socket.io.js:1659
Socket.connect socket.io.js:1699
Socket socket.io.js:1551
io.connect socket.io.js:94
$.ajax.success app.js:15
fire jquery.js:3074
self.fireWith jquery.js:3186
done jquery.js:8253
callback jquery.js:8796
send jquery.js:8802
jQuery.extend.ajax jquery.js:8154
(anonymous function) app.js:9
(anonymous function) app.js:294

I get disconnected when trying to access the 'topics' entry in the admin menu

Here's the error:

nodebb/node_modules/redis/index.js:535
throw err;
^
Error: write after end
at writeAfterEnd (_stream_writable.js:130:12)
at Gzip.Writable.write (_stream_writable.js:178:5)
at ServerResponse.res.write (/home/andy/dev/node/nodebb/nodebb/node_modules/connect/lib/middleware/compress.js:86:18)
at ServerResponse.res.end (/home/andy/dev/node/nodebb/nodebb/node_modules/connect/lib/middleware/compress.js:91:23)
at /home/andy/dev/node/nodebb/nodebb/node_modules/connect/lib/middleware/session.js:286:13
at /home/andy/dev/node/nodebb/nodebb/node_modules/connect-redis/lib/connect-redis.js:130:18
at try_callback (/home/andy/dev/node/nodebb/nodebb/node_modules/redis/index.js:532:9)
at RedisClient.return_reply (/home/andy/dev/node/nodebb/nodebb/node_modules/redis/index.js:614:13)
at ReplyParser. (/home/andy/dev/node/nodebb/nodebb/node_modules/redis/index.js:266:14)
at ReplyParser.EventEmitter.emit (events.js:95:17)

How do you manage users?

I see the Users section under /admin but there is no way to delete a user or disable an account or change permissions on an account that I can find, is there a way to do any of this?

No CSRF protection on forms

As stated above, there's zero csrf protection. This can be done in express already with express.csrf (reference express documentation).

Ajaxify should not unbind and rebind anchor elements

On ajaxify.go, ajaxify.onclick should not be iteratively bound to every anchor element in the page.

Changing ajax.enable to:

$(document.body).on('click', 'a', ajaxify.onclick);  // this code is untested

and making sure that ajax.enable is only called in $('document').ready() should be enough to have all anchors accounted for at all times, even after the HTML in #content changes.

flicker on page load

This is a minor issue, I'm sure, but when a new view is loaded, there is a slight flicker possibly due to the scroll bar. It seems to render before the scrollbar then flick back when the scrollbar is present. This is the case even when both views required the scroll bar.

This is only really an issue because it loads so fast, but sorting this would make it much easier on the eye.

Related to this is the fade out/in of the views. Personally, I think it works much better without it (setting hide/show instead of fadeIn/fadeOut.

User creation should also create a user slug

A user account is currently accessed via URL by their username (/users/julian), although for some social accounts (namely Facebook and Google), spaces are used, which while not technically broken, could do with some prettifying, since it currently saves as (/users/Julian%20H.%20Lam).

On user creation, a slug should be assigned to the user, and this should be the user's canonical username (as opposed to a display name)

app.alert timeout bug

If an app.alert is made with timeout and alert_id values set, and another timeout is made with the same alert_id, the old setTimeout(); is not cleared to make way for the new timeout, so the alert fades away prematurely.

Reproduction steps

  1. `app.alert({ alert_id: 'foo', timeout: 10000 });
  2. Wait five seconds.
  3. `app.alert({ alert_id: 'foo', timeout: 10000 });
  4. Alert disappears after another five seconds, instead of the expected ten.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.