5571 Commits (c5231f10ffcfbf7c2ed8e0dc15995cb8f9fce02e)

Author SHA1 Message Date
Barış Soner Uşaklı 7e867cf95e fix: #7597, fix progress bar of cover/profile uploads
send big cover images in chunks
4 years ago
Barış Soner Uşaklı 73746bb489 refactor: remove old hack 4 years ago
Barış Soner Uşaklı 6f68f4d20a fix: #9032, fix login redirect for sso plugins 4 years ago
Barış Soner Uşaklı 5f0f476b57 feat: #9005, use timestamp in profile/cover images
delete current one if keepAllUserImages is turned off
fix typo in data
4 years ago
Barış Soner Uşaklı 954dc5b7be feat: #8983, update pin tooltip in topic 4 years ago
psychobunny 53abada5f0 Revert "feat: option to allow auto-joining of groups (optionally skip the "request membership" step)"
This reverts commit 685f3c6aa6.
4 years ago
psychobunny 685f3c6aa6 feat: option to allow auto-joining of groups (optionally skip the "request membership" step) 4 years ago
psychobunny 54dc449fb9 fix(acp): #9008 undefined link for "no users browsing" state on dashboard 4 years ago
psychobunny 286243cd37 fix(acp): #9009 no-users-browsing untranslated on dashboard 4 years ago
Barış Soner Uşaklı 4c650aeead feat: #8989, convert widget nav to dropdown 4 years ago
Barış Soner Uşaklı 5080f35752 fix: #8991, logout on password reset, dont verify email if password expired
dont allow same password on reset
4 years ago
Barış Soner Uşaklı 8adbf54ae6 fix: don't show topic search if no search privilege 4 years ago
Barış Soner Uşaklı 1269103fbb fix: #8984, post-queue ux 4 years ago
Barış Soner Uşaklı d3c04afb98 fix: #8982, copy color on tag rename, dont copy if target exists
refresh page on tag rename
4 years ago
Barış Soner Uşaklı 6e6a7a8f8a fix: #8969, export csv to file 4 years ago
Barış Soner Uşaklı 5c3deb4b0e fix: #8973, fix timestamp on ban modal 4 years ago
Barış Soner Uşaklı c8554b78b9 fix: #8968, don't show topic search if search is not enabled 4 years ago
Barış Soner Uşaklı 4c7374ea33 fix: flicker on tooltips if server call takes long time 4 years ago
gasoved a56a657759
fix: missing select/clear all checkbox added to category privileges template (#8967) 4 years ago
Julian Lam e1432caf92 feat: add cancel button to pin expiration modal 4 years ago
Julian Lam 15c6f32c93 refactor: pin/lock threadTools to use topicCommand, rewrote topicCommand to match categoryCommand signature 4 years ago
Barış Soner Uşaklı 7e6427bca7 fix: dont go back after delete account actions 4 years ago
Barış Soner Uşaklı 5ceda14874 Revert "fix: #8955, popstate to purged topic should go to homepage"
This reverts commit 39dae0aaff.
4 years ago
Julian Lam 39dae0aaff fix: #8955, popstate to purged topic should go to homepage 4 years ago
Barış Soner Uşaklı c037779fa1 feat: add topicOwnerPost #8778 4 years ago
Barış Soner Uşaklı 6a819944d5 chore: remove console.log 4 years ago
Julian Lam d584516947 fix: #8943, session mismatch modal thrown on login (race condition) 4 years ago
Julian Lam ac734b8335 fix: #8912 4 years ago
Barış Soner Uşaklı db1c140ff9 refactor: remove unused require 4 years ago
gasoved 00e75de736
feat: select/clear all checkboxes in privilege table (#8941) 4 years ago
psychobunny 1c0e8c1663 fix: move meta.getServerTime call to admin namespace 4 years ago
Barış Soner Uşaklı f20c12ee40 fix: add client side check for userslug #8939 4 years ago
Barış Soner Uşaklı cf903e4e8f fix: #8931, fix lang string 4 years ago
Barış Soner Uşaklı 95a3f03009 fix: #8932, fix client side error when updating username 4 years ago
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
4 years ago
Julian Lam 046d0b1637
feat: allow pins to expire (if set) (#8908)
* 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
4 years ago
Barış Soner Uşaklı 46acbfdaf1 fix: show messages after app load 4 years ago
Barış Soner Uşaklı 6ef7e8675f fix: #8915, 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
4 years ago
Julian Lam 00aee84bf7
refactor: use categoryCommand local method for pin/lock in category tools (#8917)
* refactor: use categoryCommand local method for main actions in category tools

* fix: wrong command passed in
4 years ago
Barış Soner Uşaklı e9585b9be2 fix: group userTitles translation escapes 4 years ago
Barış Soner Uşaklı 62b62821c1 fix: navigation highlight
/top was getting hightlighted in navigation if you went into a /topic
4 years ago
Julian Lam a0b7a82350
feat(api): account deletion routes for the Write API (#8881)
* feat(api): account deletion routes for the Write API

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

* style: apply DRY
4 years ago
Opliko 6e43086558
resolve #8444 - Allow nested objects in translations (#8793)
* feat: #8444 Allow nested objects in translations

* feat: #8444 Allow nested objects in translations

* style: don't change formatting

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

* feat: #8444 Allow nested objects in translations

* feat: #8444 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
4 years ago
Barış Soner Uşaklı 1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147 4 years ago
Julian Lam d83eb7f89e refactor: client-side handlers for user invitations
DRY
4 years ago
gasoved 3ccebf112e
feat: invites regardless of registration type, invite privilege, groups to join on acceptance (#8786)
* 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>
4 years ago
Barış Soner Uşaklı 9dac9630df fix: check tid in event handlers client side 4 years ago
Julian Lam 8518404e22
feat: allow groups to specify which cids to show member posts from (#8875)
* 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
4 years ago
Julian Lam 769aba0aed fix: refresh flags list on bulk action success 4 years ago
Julian Lam f300c933a5 refactor: move session revocation route to write api 4 years ago
Barış Soner Uşaklı 9f7902efdf fix: remove some unnecessary jquery wrappers 4 years ago
Barış Soner Uşaklı 978f1ee04f fix: send back jquery object to keep backwards compat 4 years ago
Peter Jaszkowiak e128264b66
refactor: change Benchpress.parse to .render (#8856)
It has been deprecated with no warning message for a while
Changing these over before enabling the warning message to reduce spam
4 years ago
Barış Soner Uşaklı 2e44639210 fix: guest header/footer cache
allow clearing individual caches
4 years ago
Barış Soner Uşaklı f1f9b225b0
feat: #8824, cache refactor (#8851)
* feat: #8824, 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
4 years ago
Julian Lam d263192271 feat: group exists API call in write api 4 years ago
Julian Lam 1446cec77f feat: user exist route in write api 4 years ago
Barış Soner Uşaklı 78ee83324c fix: #8838, fix chat dropdown timestamps
use shorthand like notification dropdown
4 years ago
Julian Lam 1afd215050 feat: add back error handling for a number of api calls 4 years ago
Barış Soner Uşaklı 518d4fa170 fix: undefined call 4 years ago
Barış Soner Uşaklı 5a2b14b751 fix: client side crash when creating groups 4 years ago
psychobunny d40779a4ba feat(acp): autocomplete user search for welcome notifications 4 years ago
Barış Soner Uşaklı 715775a707 feat: #8817, add login clientside hooks
same as logout
4 years ago
Julian Lam a08fb8e53b fix: removed superfluous assignment 4 years ago
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.
4 years ago
Julian Lam bff53de03f fix: handle ACP category enable/disable states after call success 4 years ago
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
4 years ago
Barış Soner Uşaklı 9082062e90 fix: sort setting not using correct field name 4 years ago
Barış Soner Uşaklı a512d99472 refactor: remove unnecessary wrapper 4 years ago
Barış Soner Uşaklı a05905f196
performance improvements (#8795)
* 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
4 years ago
Julian Lam c26f2b6599 feat(writeapi): user settings API 4 years ago
Baris Usakli 1a4c0decb7 fix: reset button loading html 4 years ago
Barış Soner Uşaklı e6440c0d21 fix: #8779, fix move all
add new language keys
4 years ago
Barış Soner Uşaklı 3ee4936db6 fix: keep sortBy while searching 4 years ago
Barış Soner Uşaklı 85cfe49d65 fix: autocomplete.user on search page 4 years ago
Barış Soner Uşaklı c107649b40 fix: #8732 4 years ago
Barış Soner Uşaklı d9a16855d0 refactor: posts api 4 years ago
Barış Soner Uşaklı 272e73da53 refactor: post restore/delete/purge 4 years ago
Barış Soner Uşaklı 9738e20207 refactor: merge post.edit
fix: dont fadeout/fadeint if title/post didnt change
4 years ago
Barış Soner Uşaklı 2279e37261 refactor: deprecate socket.emit('users.search') use api route 4 years ago
Barış Soner Uşaklı 083c74e059 refactor: api categories 4 years ago
Barış Soner Uşaklı 51a60d3d46 fix: handler for group.join 4 years ago
Julian Lam 20bb9c7ec8 fix: csrf token only on non-GET routes 4 years ago
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
4 years ago
Julian Lam a784d10fff refactor: api module returns promise, error-first cb if cb passed in
no more separate onSuccess onError callbacks

/cc @baris
4 years ago
Barış Soner Uşaklı 4b9444f1a5 fix: avatar selector 4 years ago
Barış Soner Uşaklı 872bacf1c4
Admin/users (#8762)
* feat: wip admin/users

* feat: more work

* feat: more fixes

* feat: #8662, 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
4 years ago
Julian Lam 1e07886f30 feat: require csrf token if not using bearer token 4 years ago
Barış Soner Uşaklı ba2e1c4c7e fix: show more lines 4 years ago
Barış Soner Uşaklı 01265d08f3 feat: add stack to deprecate message 4 years ago
Barış Soner Uşaklı dc29f4dca2 refactor: switch to using slugify module 4 years ago
Barış Soner Uşaklı bddfcb5867 feat: #8734, add slugify module, deprecate utils.slugify 4 years ago
Barış Soner Uşaklı eab7489ec5 feat: #8734, move deserialize/serialize to package.json 4 years ago
Barış Soner Uşaklı 948f26143c feat: #5964, #8734 remove colorpicker 4 years ago
Barış Soner Uşaklı c954db84e4 refactor: require style 4 years ago
Barış Soner Uşaklı 931d44b5e2 fix: undefined api require, @julianlam 4 years ago
Barış Soner Uşaklı e2d407b769 fix: watch tooltip 4 years ago
Barış Soner Uşaklı aedd28e0a6 fix: module name 4 years ago
Barış Soner Uşaklı cc705e5e2b feat: #8734, move sortable to package.json 4 years ago
Barış Soner Uşaklı 75c9668656 fix: admin jquerui requires 4 years ago
Barış Soner Uşaklı 8c019a6a3b fix: timeago locale switch 4 years ago
Barış Soner Uşaklı 300a87559f feat: #8734, move bootbox to package.json 4 years ago
Barış Soner Uşaklı 420a312982 Merge branch 'master' of https://github.com/NodeBB/NodeBB 4 years ago
Barış Soner Uşaklı 3b231360d3 feat: load jquery-form before using 4 years ago
Barış Soner Uşaklı fda2aedfd8
feat: #8734, jquery-ui, jquery-form, timeago (#8748)
* feat: #8734, 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
4 years ago
Barış Soner Uşaklı ae3a231fce feat: #8734, remove semver.browser
use compare-versions as a module
4 years ago
Barış Soner Uşaklı 2c1897b373 feat: #8734, move slideout to package.json 4 years ago
Barış Soner Uşaklı 9c157de05d feat: #8734, move tinycon to package.json 4 years ago
Barış Soner Uşaklı 45e8a4d588 fix: #8734 make nprogress module 4 years ago
Barış Soner Uşaklı 12c8b1c2bc fix: dont allow adding duplicates to privileges page
hightlight uid/group if it is added again from autocomplete
4 years ago
Barış Soner Uşaklı f259063f08 fix: #8728, dont add admins to table 4 years ago
Julian Lam f870721fca feat(writeapi): file deletion route 4 years ago
Julian Lam 3ea1aa4780 refactor(writeapi): update route prefix to api/v3, default error option 4 years ago
Julian Lam 0973feea16 feat(writeapi): post bookmarking 4 years ago
Julian Lam 9942c248eb feat(writeapi): post voting 4 years ago
Julian Lam 414169fdfa feat(writeapi): post delete/restore/purge 4 years ago
Julian Lam 9be5629458 feat(writeapi): topic follow/ignore 4 years ago
Julian Lam da25ce4d09 feat: topic delete/restore/purge/(un)pin/(un)lock 4 years ago
Julian Lam 49652e6f1b feat: management of API tokens via ACP 4 years ago
Julian Lam adcadbb2b5 fix: tests 4 years ago
Julian Lam cb9369f10e fix: bad merge w/ category ACP page 4 years ago
Julian Lam a905d7f022 refactor: rewrite modules/api.js in AMD style 4 years ago
Julian Lam 40dc1c38d3 feat(writeapi): added DELETE /groups/:slug/membership/:uid route 4 years ago
Julian Lam 68ecf41ecf fix(writeapi): client-side group join API call 4 years ago
Julian Lam 952dc211dd feat(writeapi): added group joining and deletion 4 years ago
Julian Lam d044c3223e feat(writeapi): abstracted ajax calls out to new api module 4 years ago
Julian Lam ba345e53e8 feat(writeapi): added POST /api/v1/groups 4 years ago
Julian Lam 3072de4812 feat: added DELETE /api/v1/categories/:cid route 4 years ago
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
4 years ago
Julian Lam a5af2dc819 feat: added PUT/DELETE /api/v1/users/:uid/ban routes 4 years ago
Julian Lam db5c5b2cfb fix: follow route to match spec 4 years ago
Julian Lam b5bbcbaeaa feat: added POST and DELETE /api/v1/users/:uid/follow routes 4 years ago
Julian Lam 7aed174ebc feat: added PUT /api/v1/users/:uid/password route 4 years ago
Julian Lam a1ddc210b2 feat: added DELETE /api/v1/users/:uid and DELETE /api/v1/users 4 years ago
Julian Lam d8879d21db fix: error handling with POST /api/v1/users 4 years ago
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
4 years ago
Barış Soner Uşaklı 7138d433b1 fix: selector, so it doesnt effect suggested topics 4 years ago
Julian Lam fc603a5368 fix: use app.parseAndTranslate instead of benchpress.parse 4 years ago
psychobunny 20e0cc5cbb fix: sorted list delete button 4 years ago
Barış Soner Uşaklı b955fd363d fix: dont allow sorting pinned topics on recent 4 years ago
Julian Lam 3c7f79cb8a fix: use console.info instead of console.log for sw registration 4 years ago
Barış Soner Uşaklı 1542a5d7e5 feat: remove post/header selector 4 years ago
psychobunny 60afb110ef fix: prevent mutiple highlighted rows on category/topic pages 4 years ago
Barış Soner Uşaklı 5d9a868142
feat: category filter on post queue (#8710)
* feat: category filter on post queue

category filter module

* feat: add spec
4 years ago
Julian Lam f1de084da3 fix: do not show TOC if fewer than 2 headings 4 years ago
psychobunny caa8c00f89 fix: params cached in autocomplete module 4 years ago
Peter Jaszkowiak 55d5cccf2e
Document deprecations and remove old ones (#8706)
* chore: document deprecation removal versions

* chore: remove deprecations 2+ versions old
4 years ago
Barış Soner Uşaklı 72e82c4aca Merge branch 'master' of https://github.com/NodeBB/NodeBB 4 years ago
psychobunny 1761e13dbd feat: dedicated sorting buttons for plugin ordering in ACP 4 years ago
Barış Soner Uşaklı c33dc90562 Merge branch 'master' of https://github.com/NodeBB/NodeBB 4 years ago