* fix: removed duplicate checkContent call in addMessage
addMessage is called in one place (sendMessage), and the checks
are already contained there. addMessage is the lower level call
and so should be called only from within core itself.
* feat: #7330 chat system messages for join, leave, rename
* fix: add back content checking in .addMessage();
* fix: tests, and added .addSystemMessage() method
Tests were relying on message indices that changed due to the
new system messages.
* feat: add tests for system chat messages
* refactor: rewrite half of src/messaging/rooms.js, fix tests
* feat: #7743 messaging/room.js
* fix: tests for messaging/room.js, #7743
* fix: trying to fix tests
* fix: omg :rage2:
* feat: added API route for retrieving analytics via REST API
* feat: sets is now optional, can pass in multiple sets
* fix: moved expand and added json button to panel header
* fix: matching api params to socket method
* fix: update json api button url on graph change
* fix: updated default counts based on passed in units
In not-so-rare circumstances, the avatar generated is wrapped in
an anchor so that when clicked, it goes to the user profile.
Unfortunately, html 4 spec doesn't like block level elements
inside anchors (since an anchor is an inline element), and even
though we define html5 doctype, browsers still reorder the div
and anchor, beats me as to why.
So I can trick the browser by using a span. The css already styles
it as inline-block so no further fixes are required.
* feat: helper for building avatars
* feat: benchpress truefalse globals, componentPrefix in buildAvatar
* refactor: remove componentPrefix
* feat: changes to buildAvatar helper
- removed extra .avatar-xl class in generics.less
- added support for component override
- "size" can be a number now
* fix: prevent overflow of alt text in avatars
* fix: update doc on buildAvatar helper
* feat: add enable/disable checkbox for plugin usage
* feat: submit plugin data to packages.nodebb.org
only submit in production mode
submit once every 24 hours
dont submit for plugins that have "private": true in plugin.json
enabled on new installs
disabled on existing installs
* fix: hash not working after first send
fix statusCode
* fix: remove url
* feat: show compatibilty
* feat: add install question for submit plugin usage
* feat: design revamp of ACP events page
- minor UX changes
- new filter controls, filters moved to sidebar
- form usable without js
- start/end filters NOT programmed yet
* feat: events ACP limit by date and perPage
* feat: pre-fill applied filters on template render
* fix: missing translation for ACP events perPage filter
* fix: added some comments to explain setHours behaviour
* fix: stop - start + 1
* fix: socket tests
* fix: +inf, not just inf
* fix: tests, because I am an idiot