Commit Graph

8691 Commits (a82f943c7699269af948127b63794032760f46b2)

Author SHA1 Message Date
gasoved 00e75de736
feat: select/clear all checkboxes in privilege table ()
Misty (Bot) 0dcc5b2bbf Latest translations and fallbacks
psychobunny 1c0e8c1663 fix: move meta.getServerTime call to admin namespace
Julian Lam 45a4f1361f chore(spec): replace ugly hack with another hack for optional properties
Barış Soner Uşaklı f20c12ee40 fix: add client side check for userslug
Julian Lam 90434a4668 Revert "fix(spec): always show thumb in topic response"
This reverts commit 493c568a75.
Julian Lam 493c568a75 fix(spec): always show thumb in topic response
Julian Lam ae402e213e chore: move topic route schema up two levels as slug and index are optional
Julian Lam b3b501d789 chore: move category route schema up two levels as slug and index are optional
Misty (Bot) aa7a6991ff Latest translations and fallbacks
Barış Soner Uşaklı cf903e4e8f fix: , fix lang string
Barış Soner Uşaklı 95a3f03009 fix: , fix client side error when updating username
Barış Soner Uşaklı b18e7e319b fix: spec
Barış Soner Uşaklı 5fa098326f fix: https://github.com/NodeBB/NodeBB/pull/8685
fix category link redirect on cold load
fix helpers.redirect if passed in url is external
fix ajaxify so it doesn't slice first character of external url
Misty (Bot) 093f984b03 Latest translations and fallbacks
Misty (Bot) e4d9934155 Latest translations and fallbacks
Barış Soner Uşaklı c2bb61231e fix: spec
Misty (Bot) bc871dc029 Latest translations and fallbacks
Julian Lam 046d0b1637
feat: allow pins to expire (if set) ()
* fix: add back topic assert middleware for pin route

* feat: server-side handling of pin expiries

* refactor: togglePin to not require uid parameter [breaking]

* feat: automatic unpinning if pin has expiration set

* feat: client-side modal for setting pin expiration

* refactor: categories.getPinnedTids to accept multiple cids

... in preparation for pin expiry logic, direct access to *:pinned zsets is discouraged

* fix: remove references to since-removed jobs file for topics

* feat: expire pins when getPinnedTids is called

* refactor: make the togglePin change non-breaking

The 'action:topic.pin' hook now sends uid again, as before. However, if it is a system action (that is, a pin that expired), 'system' will be sent in instead of a valid uid
Misty (Bot) e5d94d9096 Latest translations and fallbacks
Barış Soner Uşaklı 46acbfdaf1 fix: show messages after app load
Barış Soner Uşaklı 6ef7e8675f fix: , fix queue not being cleared after firing click events
if you clicked elements early then on every ajaxify.end the same elements were getting click events @julianlam
Julian Lam 00aee84bf7
refactor: use categoryCommand local method for pin/lock in category tools ()
* refactor: use categoryCommand local method for main actions in category tools

* fix: wrong command passed in
Misty (Bot) f7f119d5cc Latest translations and fallbacks
Barış Soner Uşaklı 9ca44e6f54
feat: add displayname into user obj ()
* feat: add displayname into user obj 

* fix: spec

* perf: dont load settings if acp setting is turned off
Barış Soner Uşaklı 8d060065a0 fix: spec
Barış Soner Uşaklı e9585b9be2 fix: group userTitles translation escapes
Misty (Bot) 8de48c3935 Latest translations and fallbacks
Barış Soner Uşaklı 4e9b10ab76 feat:
Barış Soner Uşaklı fb567a7a33 feat:
Barış Soner Uşaklı a6afcfd531 feat: , allow flagging self posts
dont count flags towards self posts
dont allow flagging your own account
Barış Soner Uşaklı 62b62821c1 fix: navigation highlight
/top was getting hightlighted in navigation if you went into a /topic
Julian Lam a0b7a82350
feat(api): account deletion routes for the Write API ()
* feat(api): account deletion routes for the Write API

* refactor: rewrite client-side calls to account deletion to use api

* style: apply DRY
Barış Soner Uşaklı 35f932cd64 feat: , add oldCategory if topic is moved
Barış Soner Uşaklı b44ddecdf8 feat: , separate notification type for group chats
Opliko 6e43086558
resolve - Allow nested objects in translations ()
* feat:  Allow nested objects in translations

* feat:  Allow nested objects in translations

* style: don't change formatting

* fix: don't use the first string match if key isn't finished

* feat:  Allow nested objects in translations

* feat:  Allow nested objects in translations

* style: don't change formatting

* fix: don't use the first string match if key isn't finished

* feat: add nested translations test
Misty (Bot) fbdde03217 Latest translations and fallbacks
Barış Soner Uşaklı 1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147
Julian Lam d83eb7f89e refactor: client-side handlers for user invitations
DRY
gasoved 3ccebf112e
feat: invites regardless of registration type, invite privilege, groups to join on acceptance ()
* feat: allow invites in normal registration mode + invite privilege

* feat: select groups to join from an invite

* test: check if groups from invitations have been joined

* fix: remove unused variable

* feat: write API versions of socket calls

* docs: openapi specs for the new routes

* test: iron out mongo redis difference

* refactor: move inviteGroups endpoint into write API

* refactor: use GET /api/v3/users/:uid/invites/groups

Instead of GET /api/v3/users/:uid/inviteGroups

* fix: no need for /api/v3 prefix when using api module

* fix: tests

* refactor: change POST /api/v3/users/invite

To POST /api/v3/users/:uid/invites

* refactor: make helpers.invite awaitable

* fix: restrict invite API to self-use only

* fix: move invite groups controller to write api, +tests

* fix: tests

Co-authored-by: Julian Lam <julian@nodebb.org>
Misty (Bot) ce9cf2a545 Latest translations and fallbacks
Barış Soner Uşaklı 2f4653a3cc fix: spec
Barış Soner Uşaklı 9dac9630df fix: check tid in event handlers client side
Misty (Bot) 03329408b7 Latest translations and fallbacks
Misty (Bot) 7693ab90e2 Latest translations and fallbacks
Julian Lam fdab76f822 fix: missing admin/menu language key+fallback
Julian Lam 8518404e22
feat: allow groups to specify which cids to show member posts from ()
* feat: allow groups to specify which cids to show member posts from

* docs: fix tests for openapi

* fix: test breakage caused by improper conditional

* feat: server-side checking of memberPostCids for validity

* feat: admin panel template update to select categories to include

* refactor: privilege helpers.isUserAllowedTo

... to helpers.isAllowedTo, allowing group names to be passed in
Misty (Bot) daf2e73c29 Latest translations and fallbacks
Opliko 04f4429f72
Resolve - optional timer for registration queue ()
* feat:  Optional timer for registration queue

* feat: show minutes in average time

* fix: don't show total number of minutes

* feat: implement requested changes

* fix: just store minutes instead of milliseconds

* feat: set default values
Julian Lam bcccb331db docs: openapi schema for user/group exist check, session deletion
Julian Lam 97842c43d3 test: new api test to ensure each path's parameters are defined in context
Julian Lam 769aba0aed fix: refresh flags list on bulk action success
Julian Lam f300c933a5 refactor: move session revocation route to write api
Misty (Bot) 0b57ec19ce Latest translations and fallbacks
Barış Soner Uşaklı 9f7902efdf fix: remove some unnecessary jquery wrappers
Barış Soner Uşaklı 978f1ee04f fix: send back jquery object to keep backwards compat
Peter Jaszkowiak e128264b66
refactor: change Benchpress.parse to .render ()
It has been deprecated with no warning message for a while
Changing these over before enabling the warning message to reduce spam
Misty (Bot) e6b9e8ddee Latest translations and fallbacks
Barış Soner Uşaklı fe63c6aef3 fix: spec
Barış Soner Uşaklı 2e44639210 fix: guest header/footer cache
allow clearing individual caches
Tobias Dossinger 1ce983ccb9
add public/language/de/admin/menu.json & public/language/de/admin/settings/api.json ()
Co-authored-by: Tobias Dossinger <tobiasdossinger@Jans-MBP-3.localdomain>
Co-authored-by: Julian Lam <julian@nodebb.org>
Julian Lam 8368c25b1d chore: fallback l10n for admin-settings-api
Misty (Bot) e81e88f3e9 Latest translations and fallbacks
Barış Soner Uşaklı f1f9b225b0
feat: , cache refactor ()
* feat: , cache refactor

ability to disable caches
ability to download contents of cache
refactor cache modules to remove duplicated code

* fix: remove duplicate hit/miss tracking

check cacheEnabled in getUncachedKeys
Julian Lam d263192271 feat: group exists API call in write api
Julian Lam 1446cec77f feat: user exist route in write api
Misty (Bot) 113d3324fb Latest translations and fallbacks
Barış Soner Uşaklı 9e3eb5d41a feat: , allow guest topic views
Barış Soner Uşaklı 78ee83324c fix: , fix chat dropdown timestamps
use shorthand like notification dropdown
psychobunny eec630f1ef fix(acp): max-height for plugin menu list
Julian Lam 1afd215050 feat: add back error handling for a number of api calls
Barış Soner Uşaklı 518d4fa170 fix: undefined call
Barış Soner Uşaklı 5a2b14b751 fix: client side crash when creating groups
psychobunny d40779a4ba feat(acp): autocomplete user search for welcome notifications
Barış Soner Uşaklı 715775a707 feat: , add login clientside hooks
same as logout
Misty (Bot) 841cbcc3e3 Latest translations and fallbacks
Julian Lam a08fb8e53b fix: removed superfluous assignment
Julian Lam 0b6ef61e40 fix: createNewPosts to build tpl with ajaxify.data
If the post template contains references to items outside of the scope of the post, then when the post is loaded via IS, the expected values are empty.

This was due to createNewPosts calling app.parseAndTranslate with a subset of the page payload. This works fine in Persona (and most other themes)
because they do not refer to properties outside of the post object, but it may be helpful to include the rest of the ajaxify data as well.
Julian Lam bff53de03f fix: handle ACP category enable/disable states after call success
Julian Lam aa8faf58a0 refactor: remove /users/{uid}/settings/{setting} route
@baris Also, I am now allowing the following properties to be saved in User.saveSettings:
- categoryTopicSort
- topicPostSort
- setCategorySort
- setTopicSort
Barış Soner Uşaklı 9082062e90 fix: sort setting not using correct field name
Misty (Bot) 2baccd3ce2 Latest translations and fallbacks
Barış Soner Uşaklı 6ac73ccb7e feat: , disable express compression by default
Julian Lam cc1c722092 fix: breaking test from 0db0231cff
Also lowered export timeout to 5s
Julian Lam 14e5c24ec5 fix(openapi): final fixes to schemas
Julian Lam b2e9e3e048 fix(writeapi): more tweaks to schema files
Julian Lam 9f9e3c1582 fix(writeapi): fix components, + tag object schema
Julian Lam a4f3270fc5 fix(writeapi): missing files for tests
Julian Lam b092f65d95 fix(writeapi): tests
Julian Lam 93f65f89e7 fix(writeapi): added examples to all parameter objects in schema
Barış Soner Uşaklı a512d99472 refactor: remove unnecessary wrapper
Misty (Bot) 5605a0d1b7 Latest translations and fallbacks
Barış Soner Uşaklı a05905f196
performance improvements ()
* perf: nconf/winston/render

cache nconf.get calls
modify middleware.pageView to call next earlier
don't call winston.verbose on every hook see https://github.com/winstonjs/winston/issues/1669
translate header/footer separately and cache results for guests

* fix: copy paste fail

* refactor: style and fire hook only log in dev mode

* fix: cache key, header changes based on template

* perf: change replace

* fix: add missing await

* perf: category

* perf: lodash clone

* perf: remove escapeRegexChars
Misty (Bot) 822c13f199 Latest translations and fallbacks
Misty (Bot) 89a1f481e0 Latest translations and fallbacks
Barış Soner Uşaklı 0db0231cff feat: move postercount to topic hash
Barış Soner Uşaklı 7a3183520f fix: spec
Julian Lam 63e07c9433 fix: tests
Julian Lam c26f2b6599 feat(writeapi): user settings API
Baris Usakli 1a4c0decb7 fix: reset button loading html
Misty (Bot) c31cab3457 Latest translations and fallbacks
Barış Soner Uşaklı e6440c0d21 fix: , fix move all
add new language keys
Misty (Bot) df1cfc4caf Latest translations and fallbacks
Barış Soner Uşaklı 3ee4936db6 fix: keep sortBy while searching
Barış Soner Uşaklı 85cfe49d65 fix: autocomplete.user on search page
Barış Soner Uşaklı cf474ab246 fix: spec
Misty (Bot) 1b50e1a062 Latest translations and fallbacks
Julian Lam ff4fcc23b6
Update bundled logos with new branding ()
* feat: updating logo assets, square logos missing still

* fix: squared logo for touch icon and notification fallback

* fix: update link to favicon

* feat: add default touch icon sizes, if one isn't uploaded

Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
Barış Soner Uşaklı c107649b40 fix:
Barış Soner Uşaklı d9a16855d0 refactor: posts api
Barış Soner Uşaklı 272e73da53 refactor: post restore/delete/purge
Barış Soner Uşaklı 9738e20207 refactor: merge post.edit
fix: dont fadeout/fadeint if title/post didnt change
Barış Soner Uşaklı 2279e37261 refactor: deprecate socket.emit('users.search') use api route
Barış Soner Uşaklı 083c74e059 refactor: api categories
Misty (Bot) 854d61a257 Latest translations and fallbacks
Barış Soner Uşaklı 51a60d3d46 fix: handler for group.join
Julian Lam 20bb9c7ec8 fix: csrf token only on non-GET routes
Barış Soner Uşaklı 3673accdb8 refactor: api module
only return promise if callback is undefined
dont append baseUrl if url already starts with api
correctly handle writeapi readapi response for data/error
remove unused onError
dont append empty ? to url for get routes
Julian Lam a784d10fff refactor: api module returns promise, error-first cb if cb passed in
no more separate onSuccess onError callbacks

/cc @baris
Misty (Bot) d52992de1b Latest translations and fallbacks
Barış Soner Uşaklı 4b9444f1a5 fix: avatar selector
Barış Soner Uşaklı 872bacf1c4
Admin/users ()
* feat: wip admin/users

* feat: more work

* feat: more fixes

* feat: , verified/unverified user groups

* feat: add filter

* feat: change user search to use filters array

* refactor: remove unused search call

* fix: tests

* fix: cant join system groups

* fix: upgrade script
Julian Lam bfaeb27c11 Merge branch 'write-api-csrf'
Julian Lam 1e07886f30 feat: require csrf token if not using bearer token
psychobunny 0e0f1506d2 fix: update server param to /api/v3
psychobunny c68653d035 fix: typo
psychobunny 7aa4d104af fix: testing openapi write tests
psychobunny 16873800a6 fix(openapi): users.yaml
psychobunny 54e6003a7c fix: test fix for write API
need to rewrite users.yaml to fix properly
Barış Soner Uşaklı ba2e1c4c7e fix: show more lines
Barış Soner Uşaklı 01265d08f3 feat: add stack to deprecate message
Misty (Bot) 0a4fd50aac Latest translations and fallbacks
Barış Soner Uşaklı dc29f4dca2 refactor: switch to using slugify module
Barış Soner Uşaklı bddfcb5867 feat: , add slugify module, deprecate utils.slugify
Barış Soner Uşaklı f16c8268cf feat: , move bootstrap-tagsinput to package.json
Barış Soner Uşaklı eab7489ec5 feat: , move deserialize/serialize to package.json
Barış Soner Uşaklı 948f26143c feat: , remove colorpicker
Barış Soner Uşaklı c954db84e4 refactor: require style
Barış Soner Uşaklı 931d44b5e2 fix: undefined api require, @julianlam
Barış Soner Uşaklı e2d407b769 fix: watch tooltip
Barış Soner Uşaklı aedd28e0a6 fix: module name
Barış Soner Uşaklı c721625a95 feat: remove unused files
Barış Soner Uşaklı cc705e5e2b feat: , move sortable to package.json
Barış Soner Uşaklı 75c9668656 fix: admin jquerui requires
Barış Soner Uşaklı 8c019a6a3b fix: timeago locale switch
Barış Soner Uşaklı 300a87559f feat: , move bootbox to package.json
Barış Soner Uşaklı 420a312982 Merge branch 'master' of https://github.com/NodeBB/NodeBB
Barış Soner Uşaklı 3b231360d3 feat: load jquery-form before using
Barış Soner Uşaklı fda2aedfd8
feat: , jquery-ui, jquery-form, timeago ()
* feat: , jquery-ui, jquery-form, timeago

get rid of forum/footer.js move that code to app.js & wait for app to load before calling ajaxify.end
make sockets.js a requirejs module
move jquery-ui to node_modules and load via requirejs
move jquery-form to node_modules and load via requirejs
move timeago to node_modules and load via requirejs
only include the css for needed jquery-ui widgets

* feat: keep socket/io global for backwards compat

* refactor: move socket listener to chat
Misty (Bot) ea830871c2 Latest translations and fallbacks
Barış Soner Uşaklı 59311a63a0 feat: remove unused textcomplete file
Barış Soner Uşaklı ae3a231fce feat: , remove semver.browser
use compare-versions as a module
Barış Soner Uşaklı 1531536d46 Merge branch 'master' of https://github.com/NodeBB/NodeBB
Barış Soner Uşaklı 2c1897b373 feat: , move slideout to package.json
psychobunny dbb4cfe9d6 style(openapi): break write API routes into individual files
psychobunny ffac3c7902 style(openapi): move schemas and responses out of write.yaml
Barış Soner Uşaklı 9c157de05d feat: , move tinycon to package.json
Barış Soner Uşaklı 45e8a4d588 fix: make nprogress module
Barış Soner Uşaklı 43589a744d feat: , move visibilityjs to package.json
Barış Soner Uşaklı a46cbb623d feat: , move nprogress to package.json
Barış Soner Uşaklı aa08f8826c feat: move r.js to package.json
Misty (Bot) d5d05e17af Latest translations and fallbacks
Barış Soner Uşaklı 12c8b1c2bc fix: dont allow adding duplicates to privileges page
hightlight uid/group if it is added again from autocomplete
Barış Soner Uşaklı f259063f08 fix: , dont add admins to table
cryptoethic b3ed26ac2c
feat: revoke user sessions above threshold ()
* feat: revoke user sessions above threshold

* fix: removed translations from en-US

* fix: defined default maxUserSessions in install\data\defaults.json
Julian Lam f870721fca feat(writeapi): file deletion route
Julian Lam a55b381791 feat(writeapi): admin settings update route
Julian Lam 2ec838fc59 feat(writeapi): token generation/delete routes, ACP updates
Julian Lam 2928b9b87a style: updates to openapi files
Julian Lam 3ea1aa4780 refactor(writeapi): update route prefix to api/v3, default error option
Julian Lam 0973feea16 feat(writeapi): post bookmarking
Julian Lam 9942c248eb feat(writeapi): post voting
Julian Lam 414169fdfa feat(writeapi): post delete/restore/purge
Julian Lam f66c2fb60f feat(writeapi): post editing
Julian Lam 1605e5e443 feat(writeapi): topic tags
Julian Lam 9be5629458 feat(writeapi): topic follow/ignore
Julian Lam da25ce4d09 feat: topic delete/restore/purge/(un)pin/(un)lock
Julian Lam 49652e6f1b feat: management of API tokens via ACP
Julian Lam adcadbb2b5 fix: tests
Julian Lam cb9369f10e fix: bad merge w/ category ACP page
Julian Lam a905d7f022 refactor: rewrite modules/api.js in AMD style
Julian Lam 4c833d0bf0 feat(writeapi): topic posting and replying
Julian Lam 40dc1c38d3 feat(writeapi): added DELETE /groups/:slug/membership/:uid route
Julian Lam 68ecf41ecf fix(writeapi): client-side group join API call
Julian Lam e1c40b2792 style: allowing some es6 features client-side
Julian Lam 952dc211dd feat(writeapi): added group joining and deletion
Julian Lam d044c3223e feat(writeapi): abstracted ajax calls out to new api module
Julian Lam ba345e53e8 feat(writeapi): added POST /api/v1/groups
Julian Lam 49994f3a15 fix(openapi): moved write-api to public/openapi
Julian Lam 3072de4812 feat: added DELETE /api/v1/categories/:cid route
Julian Lam e942ad8101 feat: added PUT /api/v1/categories/:cid route
Deprecated admin.categories.update socket call
Showing stack trace in console for errors, when in development mode
Julian Lam a5af2dc819 feat: added PUT/DELETE /api/v1/users/:uid/ban routes
Julian Lam db5c5b2cfb fix: follow route to match spec
Julian Lam b5bbcbaeaa feat: added POST and DELETE /api/v1/users/:uid/follow routes
Julian Lam 7aed174ebc feat: added PUT /api/v1/users/:uid/password route
Julian Lam a1ddc210b2 feat: added DELETE /api/v1/users/:uid and DELETE /api/v1/users
Julian Lam d8879d21db fix: error handling with POST /api/v1/users
Julian Lam 58043e07ba fix: use POST call for user creation in ACP
- Not entirely sure about error handling yet, more research needed
- Also added socket method deprecation utility method
Barış Soner Uşaklı dc152a558c Merge branch 'master' of https://github.com/NodeBB/NodeBB
Barış Soner Uşaklı 7138d433b1 fix: selector, so it doesnt effect suggested topics