1640 Commits (e56e44ab23de2abd34a80e899da963c194ec2cc0)

Author SHA1 Message Date
Julian Lam ab2e1ecb40 feat(topic-events): work in progress topic events logic and client-side implementation 4 years ago
Julian Lam 966c4117ec refactor(api): post move to write API 4 years ago
Barış Soner Uşaklı 0fa4c11ea6 fix: don't chagne scrollTop if at the top of page 4 years ago
Julian Lam e118e59ce0 refactor(api): post diffs to use write API 4 years ago
Barış Soner Uşaklı 183cabe90f fix: #9150, fix selector so it doesn't add img-responsive to profile pics 4 years ago
Julian Lam 32e36f7b2e feat(api): group ownership API route, switch client-side to use API route 4 years ago
Julian Lam 1cd2689cf6 refactor(api): deprecated groups update socket in favour of API lib 4 years ago
Julian Lam e640a41a78 refactor(api): update group deletion calls to use write API 4 years ago
Barış Soner Uşaklı 2ef72a94c2 fix: #9136, fix move topic/post timeout errors 4 years ago
Barış Soner Uşaklı b7b588f5c8 fix: trigger action:posts.edited 4 years ago
Barış Soner Uşaklı feecd66506 fix: api usage 4 years ago
Barış Soner Uşaklı a15ef53c70 feat: add new client side hooks 4 years ago
Barış Soner Uşaklı 3ed55799ab fix: #9114, fix client side groups update for memberPostCids 4 years ago
Barış Soner Uşaklı 6669496dba
Navigator (#9049)
* feat: navigator changes

* fix: remove extra code

* feat: add lang keys
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
Barış Soner Uşaklı 1269103fbb fix: #8984, post-queue ux 4 years ago
Barış Soner Uşaklı 4c7374ea33 fix: flicker on tooltips if server call takes long time 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ı c037779fa1 feat: add topicOwnerPost #8778 4 years ago
Julian Lam d584516947 fix: #8943, session mismatch modal thrown on login (race condition) 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
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
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ı 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 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
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
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
Julian Lam 1afd215050 feat: add back error handling for a number of api calls 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
Barış Soner Uşaklı 9082062e90 fix: sort setting not using correct field name 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ı 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ı 51a60d3d46 fix: handler for group.join 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
Barış Soner Uşaklı dc29f4dca2 refactor: switch to using slugify module 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ı 8c019a6a3b fix: timeago locale switch 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
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 adcadbb2b5 fix: tests 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 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 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
Barış Soner Uşaklı 7138d433b1 fix: selector, so it doesnt effect suggested topics 4 years ago
Barış Soner Uşaklı b955fd363d fix: dont allow sorting pinned topics on recent 5 years ago
Barış Soner Uşaklı 1542a5d7e5 feat: remove post/header selector 5 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
5 years ago
psychobunny b6f2f0e5d0 fix: #8681 change owner modal's search should check if user is banned 5 years ago
Julian Lam f8032cd09b fix: add img-responsive to post queue post items 5 years ago
psychobunny 2ad3305879 fix: language key in reset password 5 years ago
Julian Lam 0fffe28941 fix: issue where the last flag filter could not be removed 5 years ago
psychobunny 2cd5f959a0 feat: add row highlighting for popular and unread 5 years ago
psychobunny 48a8ec4ab2 feat: return to previous page and/or category after marking topic unread
... also return to category if pagination is active and previous page was another page in the thread
5 years ago
Barış Soner Uşaklı f2f3ba49b6 feat: hightlight matches in quick search
fix title hightlights
5 years ago
Barış Soner Uşaklı f8ef380b34 fix: multiword match highlight 5 years ago
Barış Soner Uşaklı 445a840b88 fix: #8580, @julianlam 5 years ago
psychobunny 703ac1b685 fix: match api when modifying ajaxify.data.deleted (int, not bool) 5 years ago
Barış Soner Uşaklı 9a7c3c689f fix: lock/unlock toggle issue 5 years ago
Barış Soner Uşaklı ddc0ac37ab feat: allow adding nested replies to a target component 5 years ago
Barış Soner Uşaklı 7148be2fd1 feat: allow passing in container to threadTools 5 years ago
Barış Soner Uşaklı 99f24c5997 fix: call to reskin 5 years ago
Julian Lam 44309ee62f fix: move necro-post to be in-line with posts 5 years ago
Barış Soner Uşaklı a8e18fdbe6 fix: client side crash if there are no topics 5 years ago
Barış Soner Uşaklı c1c617b323 feat: add topicIndex to category page 5 years ago
Barış Soner Uşaklı 632793b067 fix: dont use hardcoded fontawesome icons for lock pin 5 years ago
Barış Soner Uşaklı f6d564667e feat: switch to using topic/select component for merge
automatically add the selected tids to the merge modal
5 years ago
Julian Lam 762e9fe88c feat: undo for posts move 5 years ago
Julian Lam 65d94a3b6d fix: #8629 and change undo timeout to 10 seconds 5 years ago
Barış Soner Uşaklı 2bebdf017d fix: alert_id selector 5 years ago
Barış Soner Uşaklı 5a40d26b44 feat: #8626, new move posts modal 5 years ago
Barış Soner Uşaklı 5f10d67db5
Remove sounds (#8617)
* feat: remove sounds

* feat: remove more sounds

* feat: disable sounds plugin

* fix: openapi
5 years ago
Barış Soner Uşaklı 5002e0f62c feat: refactor app.js 5 years ago
Barış Soner Uşaklı 19c448612d feat: remove global RELATIVE_PATH 5 years ago
Barış Soner Uşaklı 57f67e2b91 fix: don't toggle elements if there is no inputEl 5 years ago
Julian Lam f743f92088
refactor: socket posts delete/restore/purge so tid is not necessary (#8607)
* refactor: socket posts delete/restore/purge so tid is not necessary

* refactor: stop trying to be fancy

* fix: tests to not pass in tid into posts.deletePosts

* fix: some more unnecessary tid passing
5 years ago
Julian Lam 694f4b2bcf fix: accept/reject in post-queue instead of accept/delete 5 years ago
Julian Lam fb3b4a0293 fix: debug logging 🐶 5 years ago
Julian Lam 56101ae5ae fix: ip-blacklist not working after #8580 5 years ago
Julian Lam c681b4b2e0 fix: ip-blacklist not working after #8580 5 years ago
Julian Lam dc5bd7601f fix: post-queue not working after #8580 5 years ago
Julian Lam abb5e81d0d feat: allow undo of topic move 5 years ago
Julian Lam 5d60dce379 fix: select all checkbox does not re-enable bulk actions button 5 years ago
Julian Lam 7a5daff4c9 fix: overzealous click handler on flag list row 5 years ago
Julian Lam 9608b44f21 fix: +comment, -debug log 5 years ago
Julian Lam a3a2279358 feat: logic for bulk actions in flags list, #8571 5 years ago
Julian Lam b2271eb64f fix: client-side error in flags/detail
... as the filter form is no longer present in the details page
5 years ago
Julian Lam 346db0d84d feat: flags list sorting, closes #8569 5 years ago
Barış Soner Uşaklı 35a538ec2a feat: allow adding multiple users to group 5 years ago
Barış Soner Uşaklı 79e847d424 fix: #8558, only navigate if user is in same topic 5 years ago
Barış Soner Uşaklı 519e665939 fix: #8538, go to first unread instead of last read 5 years ago
Julian Lam 55b0e902fb feat: consolidation of flags to reduce flagspam, #8510
Squashed commit of the following:

commit c6d09396208a10c244d7b3d22ffd2d7dd1274d3a
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 24 13:41:32 2020 -0400

    fix: more tests

commit 32f9af2a87a81fa62ecca01e71d6f0d5b9d37ba1
Merge: e50907535 4eae927d1
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 24 10:53:04 2020 -0400

    Merge remote-tracking branch 'origin/master' into singleton-flags

commit e50907535109dbdbe8f15c3e2fcdf22d90b1332a
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 24 10:52:46 2020 -0400

    fix: controllers-admin test

commit fd5af99e303de48a80b0ccc166eee19175cf232b
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 17:26:55 2020 -0400

    fix(tests): dummy commit to trigger travisCI

commit c452a6ffcfaef91403de084c4ae16795cb23c60e
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 17:05:09 2020 -0400

    fix(openapi): openapi spec changes

commit 8089a74e89128141ab1e6f8ff83447114b3b846b
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 15:48:00 2020 -0400

    fix: reversing the order of reports for display purposes

commit a099892b377333561c72f1ad5b6b20ddb4ce8a96
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 15:45:44 2020 -0400

    refactor: run all flag creation calls in a single batch

commit b24999682f9d5a33a08a049749c1f0eb4f00facc
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 15:08:23 2020 -0400

    feat: handling multiple reporters per flag, #8510

commit 08c75c020021ada754bf0e39eae77d631b01dee5
Author: Julian Lam <julian@nodebb.org>
Date:   Thu Jul 16 20:53:18 2020 -0400

    feat: upgrade script for #8510
5 years ago
Barış Soner Uşaklı 320008cd49 feat: #8509, don't scroll chat to bottom if user scrolled up 5 years ago
Julian Lam 9fb9185fa7 feat: hide some filters behind 'more filters' button 5 years ago
Julian Lam d52d7bdb10 feat: collapsible daily flags graph 5 years ago
Julian Lam 1441720962 feat: logic for flag note editing, #8499 5 years ago
Julian Lam f85a45c722 feat: logic for flag note deletion, #8499 5 years ago
Barış Soner Uşaklı 5e984d10f0 fix: #8500 5 years ago
Barış Soner Uşaklı 658dd03b03
feat: add tools to recent/unread (#8477)
* feat: add tools to recent/unread

* fix: open api spec

* fix: more api spec
5 years ago
Julian Lam 4f51838df8 feat: fire new hooks on chat message editing 5 years ago
Barış Soner Uşaklı ac6b571ed5 fix: dont allow searching by email/ip if not privileged 5 years ago
Barış Soner Uşaklı bd228d5ee7 feat: fix blocksCount not being returned on user profile
add hook action:user.blocks.toggle
5 years ago
Julian Lam 6cb31791ff feat: polish for user blocks UX 5 years ago
Julian Lam 6931f29d53 feat: allow flagging of user acounts from post tools menu 5 years ago
Barış Soner Uşaklı e53a18f219 fix: #8437, #8433 5 years ago
Barış Soner Uşaklı 0482fb2998 feat: use tags partial instead of post_bar 5 years ago
Barış Soner Uşaklı 8482a54a68 fix: don't init autocomplete if user doesn't have privs 5 years ago
Barış Soner Uşaklı 8383992dcc feat: move export functions into child processes 5 years ago
Barış Soner Uşaklı 48b41debe6
fix: vulnerability in cover and admin uploads (#8419)
* fix: vulnerability in cover and admin uploads

* fix: remove old test

* fix: update tests
5 years ago
Julian Lam 040e6a9a4c fix: reverse tabnabbing exploit in post images 5 years ago
Barış Soner Uşaklı bfd7eafe5b fix: ban 5 years ago
Julian Lam f909ed2541 feat: show editor in post diffs if available 5 years ago
Julian Lam b3115ea813 fix: #8410 5 years ago
Julian Lam d5af976915 feat: #8408 flags' quick assignment 5 years ago
Julian Lam 58b3d608fc feat: allow post diffs to be restored, #8406 5 years ago
Barış Soner Uşaklı 4b38533b15 feat: more merge/search fixes 5 years ago
Barış Soner Uşaklı bb3aa54006 feat: merge changes
allow selecting main topic to merge into
allow specifying a new title for merge topic
upon merge go to correct topic
new tests for merging with options
5 years ago
Barış Soner Uşaklı 5fd05dc942 feat: more search & merge fixes 5 years ago
Barış Soner Uşaklı c4bdeae06e feat: merge improvements wip 5 years ago
Julian Lam 4d60eac60f feat: #8384 options to delete account, content, or both 5 years ago
Julian Lam 67aca822e6 feat: account content deletion, closes #8381 5 years ago
Barış Soner Uşaklı 50703db879 fix: #8363, dont break history 5 years ago
Barış Soner Uşaklı 0c265a41d4 fix: #8363, go to hash when entering topic 5 years ago
Julian Lam 8ea1634824 feat: #8360 flag quick actions for delete/restore/purge 5 years ago
Julian Lam 922d49be0b fix(style): switch..case 5 years ago
Barış Soner Uşaklı a9315aee7d fix: #8339, add missing translation 5 years ago
Barış Soner Uşaklı 5781a2dc65
feat: fix session mismatch errors by clearing cookie on logout (#8338)
* feat: fix session mismatch errors by clearing cookie on logout

* feat: remove app.upateHeader

ported from 2.0

* feat: handle if user doesn't click button and just refreshes page
5 years ago
Julian Lam f0e59c149d fix: eliminate unnecessary try..catch 5 years ago
Julian Lam 8d995d1eb6 refactor: flags detail page
- Show account moderation history
- Ban and delete quick actions

Squashed commit of the following:

commit 0e782e65f4d48ae814708e510ec9d01bcdd914e0
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 20:24:53 2020 -0400

    fix(deps): use persona 10.1.41/vanilla 11.1.17

commit 369e073d3c3189d8ce181eb3d573489cbe54d4fc
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 20:23:24 2020 -0400

    fix: allow ban and delete exported methods to have cbs

commit b83a086ea31a77ec82d161306c0b9bc115cb2a3a
Merge: 525aae1ea 256ee45d3
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 08:54:25 2020 -0400

    Merge remote-tracking branch 'origin/master' into flags-improvements

commit 525aae1ea2e5d0103028a0f0c8dde05f172d088e
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 08:53:39 2020 -0400

    feat: integrate ban history and username changes to flag history list

commit 3e68ad28ba266f4c8620a676aa7f463f0a9d1df7
Author: Julian Lam <julian@nodebb.org>
Date:   Mon May 25 18:22:53 2020 -0400

    feat: allow ban and deletion from flag details page

commit a559ea1d8e8883385c2876868d855a0b93516c54
Author: Julian Lam <julian@nodebb.org>
Date:   Mon May 25 18:22:00 2020 -0400

    feat: export banAccount and deleteAccount methods from accounts module
5 years ago
Julian Lam 6765de3db3 fix: sortable topics even if only 1 pinned topic 5 years ago
Julian Lam dd2bc18927 fix: #8298, use class name added by jQueryUI instead
This reverts commit 2e57d8ac31.
5 years ago
Julian Lam 2e57d8ac31 fix: discoverability of topic reordering, re: #8298 5 years ago
Julian Lam f2c725c658 fix: topic search shortcut for macs 5 years ago
Barış Soner Uşaklı be305410fb fix: #8293, don't show error if there are no self messages 5 years ago
Barış Soner Uşaklı 9839346ec3 fix: #8290, if there are no filters go to ?reset=1
dont count ?page=1 as a filter
5 years ago
Barış Soner Uşaklı 3fcbd69149 feat: reduce infinite scroll area 5 years ago
psychobunny 275e837bcf fix: jquery xhtml violations 5 years ago
Julian Lam ccc6118d30
Testing suite integration for openapi spec (#8263)
* feat: testing suite integration for openapi spec

The testing suite now takes the openapi spec into account. It will
check each route defined, make a call to it, and compare the
response with the defined schema. Any mismatches will cause the
test to fail.

* fix(openapi): removed debug stuff from tests

* fix(openapi): fixed some tests

* fix(openapi): added additional check to tests, test fixes

* fix(openapi): better tests, fixed spec errors

* fix(openapi): bad conditional in test

* fix: oops

* fix(openapi): more tests fixing

* fix(openapi): more tests

* fix(openapi): fix some more tests

* fix: verbose'd an info log

* fix: topic pagination route returns schema-optimized pagination block

* fix(openapi): more test/spec fixes

* fix(openapi): accidentally sending in authenticated jar for anon routes

* fix(openapi): more test/spec fixes

* fix(openapi): more spec fixes

* fix: timestampReadable Invalid Date

* fix(openapi): more tests... almost there

* fix(openapi): more tests fixing

* fix(openapi): finally all tests passing

* fix(openapi): added reverse test to compare response to spec

... and fixed all the tests that broke

* fix: remove tests related to group covers, as route is gone

* fix(openapi): broken test on travis

* fix(openapi): broken test on travis

* fix(openapi): broken test on travis

* fix(openapi): object cache is not present for psql

* fix: tests

Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
5 years ago
Barış Soner Uşaklı ba6d3fd372 fix: only trigger infinitescroll on scroll end 5 years ago
Julian Lam bcbf98aa4c fix: accidental fp precision on flag and acp dash graphs 5 years ago
Julian Lam 5aa76cdf2f feat: pass in target element in action:topic.tools.load 5 years ago
Barış Soner Uşaklı 6e5de39ba0 fix: also fix updating bookmark if sorting is newest_to_oldest 5 years ago
Barış Soner Uşaklı 32ada7c4e7 fix: #8188, fix bookmark if sorting is newest_to_oldest 5 years ago
Barış Soner Uşaklı 067034082f fix: #6422, update deleted/restored messages 5 years ago
Julian Lam d6e3f3f058
fix: #8142, broken site if no server-side session (#8148)
* fix: #8142, broken site if no server-side session

During the `addHeader` middleware, a check is now done to see if
`req.session.meta` is present. This value is only present if the user
has a valid server-side session.  If it is missing, then it is probably
safe to assume that the server-side session was deleted (either
intentionally or accidentally). In that scenario, the client-side cookie
should be cleared.

Also, there was an issue where the sessionRefresh flag was never cleared
after a successful login, so that was fixed too.

* feat: exported method to get cookie config

* fix: don't clear cookie if cookie is being set

* fix: socket.io tests

Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
5 years ago
Baris Usakli 4d66978338 fix: #8073, configurable necroThreshold 5 years ago
Barış Soner Uşaklı 3811e0a3df fix: #8042, dont show errors after clearing form 5 years ago
Barış Soner Uşaklı 95a372df85
fix: #7977, fix undefined url (#7978) 5 years ago
Baris Usakli 485fbd2f14 feat: #7964, change all categories at once
allow passing cids to setCategoryWatchState and category.exists
6 years ago
Barış Soner Uşaklı f402d7271a fix: move post and change owner 6 years ago
Barış Soner Uşaklı 9a7560049a feat: bypass cropper for gifs 6 years ago
Barış Soner Uşaklı 781b3f1a9a fix: #7800, dont crash on resize 6 years ago
Barış Soner Uşaklı 1789ecb45c feat: increase search timeouts 6 years ago
Barış Soner Uşaklı ebe5ed22bb feat: make handleSearch public 6 years ago
Barış Soner Uşaklı 2a5fe2b8f4 fix: #7894, translate log in to view 6 years ago
Barış Soner Uşaklı 0843497dd4 fix: #7893, check private upload setting 6 years ago
Barış Soner Uşaklı 3887fc678b fix: #7824, update timeago settings on userlanguage change 6 years ago
Barış Soner Uşaklı 21e81f961c fix: #7780 6 years ago
Barış Soner Uşaklı 7162051905 fix: #7791 6 years ago
Julian Lam af968c6ae5 feat: fire updateRemainingLength hook for chats 6 years ago
Julian Lam 4fb271c684
System chat messages (#7771)
* 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:
6 years ago
Barış Soner Uşaklı 53e1b349ae
Change post owner (#7752)
* feat: #7749, allow array of keys for setObject

* feat: sortedSetRemoveBulk

* feat: test for bulk remove

* feat: #7083, ability to change post ownership

* feat: #7083, fix tid:<tid>:posters

* feat: #7083, front end

* fix: #7752, psql methods

* fix: add missing await

* fix: maybe psql
6 years ago
Barış Soner Uşaklı 2b70e86f21 fix: #7751, make necro separator a partial 6 years ago
Julian Lam 16aae51726 fix: private upload img replacement should happen before img wrapping 6 years ago
Julian Lam 49e3a368f8 fix: #7423 private uploads are linked to login page, for guests 6 years ago
Barış Soner Uşaklı bd640a1107
Topic await errors (#7727)
* feat: derp await

* feat: restore user.getSettings

* feat: cleanup

* feat: make tid const

* feat: cleanup

* fix: tests

* feat: deprecate filter:controllers.topic.get

* feat: rewrite post-index logic

* feat: change calculation to match others

* fix: use .async

* feat: remove try/catch wrapper
6 years ago
Baris Usakli ee4d78cae3 feat: closes #7718 6 years ago
Julian Lam af17c6e31c fix: remove debug code that should not have made it in 6 years ago
Barış Soner Uşaklı a39f0ef592 fix: #5570, create per category user post zsets 6 years ago
Aziz Khoury 13efbc9967 feat: change widget-* to data-widget-* (#7703)
* change widget-* to data-widget-*, original pr#5444 but backward compatible

* lint
6 years ago
Barış Soner Uşaklı e1c05e59c9 fix: restrict drag drop to pin icon, closes #7702
https://github.com/NodeBB/NodeBB/issues/6081
6 years ago
Barış Soner Uşaklı b53a60c278 feat: show best & latest posts on profile 6 years ago
Julian Lam 289dada5f7 fix(deps): update to eslint@6 6 years ago
Julian Lam 2523889990
refactor: replace avatar conditional code with buildAvatar helper (#7681)
* 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
6 years ago
Barış Soner Uşaklı 106d52a47f fix: #7598, use notice element instead of alert 6 years ago
Barış Soner Uşaklı 9385c8e3ee feat: #7319 6 years ago
Baris Usakli 7211dde7b9 feat: #7358 6 years ago
Baris Usakli 777ca03264 fix: #7432 6 years ago
Julian Lam ab0e547d23 fix: autocomplete not triggered if chat switched 6 years ago
Julian Lam 6c2f48f189 fix: #7366 6 years ago
Barış Soner Uşaklı 45c322aeb0 fix: #7357 6 years ago
Barış Soner Uşaklı fc6767e140 fix: #7098 6 years ago
Barış Soner Uşaklı 8e3bf58106 fix: #7338 6 years ago
Barış Soner Uşaklı c7abf07a3d fix: #7324
added disableToType option
6 years ago
Julian Lam 02a8ed9b11 feat: textcomplete over jquery-textcomplete, closes #7309 6 years ago
Barış Soner Uşaklı d03220cdaf fix: #7094 6 years ago
Julian Lam 51b5fb9826 fix: added missing translation and error state for password change 6 years ago
Barış Soner Uşaklı 428f587cbe fix: #7208 6 years ago
Baris Usakli 8da3b2a487 fix: #7142
due to no refresh on login socket listeners were added more than once,
so remove them before adding the listeners
6 years ago
Barış Soner Uşaklı 03299736dc fix: #7179
don't consider pinned topics in widget areas
6 years ago
Julian Lam 4873a339c1 fix: RTL not respected when changed in user settings, related to #7146 6 years ago
Barış Soner Uşaklı ab81cca735 fix: 7100 6 years ago
Barış Soner Uşaklı 7e828404f6 fix: #7116
dont save relative_path in db for group covers
6 years ago
Barış Soner Uşaklı 4650a76036 fix: #7124 6 years ago
Barış Soner Uşaklı 9f5062682d fix: unread badge
- only increase unread badge if topic or category is watched
- fix logic for "there are new posts/topics" on /unread and /recent
6 years ago
Barış Soner Uşaklı eb7ae54f81
Category watch state (#7109)
* feat: wip, category watch change

* feat: pass data to client

* feat: allow changing state

* fix: account page categories

* fix: show in unread if topic is followed or category is watched

* feat: add default watch state to acp

* feat: save user category watch state

* feat: update unread recent pages

* fix: remove dupe code

* fix: flip conditions

* fix: handle empty arrays

* fix: ignore/watch on others profile

* feat: upgrade script for category states

if there are any users ignoring categories set their state in new zset and delete cid:<cid>:ignorers

* fix: upgrade

* fix: tests

* fix: redis count

* fix: more tests
6 years ago
Barış Soner Uşaklı f103390aa5 fix: #7103
update counter when user navigates to /unread
fix new topic alert on /unread
moved unread code from footer to unread
6 years ago
Barış Soner Uşaklı 555c092f65 fix: dont send empty strings 6 years ago
Julian Lam ed46c5e24b fix: refreshing settings page on save if language changed 6 years ago
Julian Lam 28a1fa780a fix: skin not changing after login or logout, #7038 6 years ago
Peter Jaszkowiak ba619c7ec8 style(eslint): match operator-linebreak preferences 6 years ago
Barış Soner Uşaklı 58d4376f7e fix: #7030 6 years ago
Baris Usakli e3bf21a3a0 closes #6993 6 years ago
Barış Soner Uşaklı 5c48793543 handle quoted strings 6 years ago
Julian Lam 98c14e0e68 fix: removal of scroll anchoring code in favour of browser handling
closes #6150
6 years ago
Barış Soner Uşaklı f4a00f0b5f only init unread topics for loggedin users
dont call isFollowed
6 years ago
Barış Soner Uşaklı 1ce15e69ab dont require search and moustrap on topic page until needed 6 years ago
Barış Soner Uşaklı c02d584b53 reduce initial js payload/requests 6 years ago
Baris Usakli c343b93a37 optimize ajaxify
- do not call $.timeago twice on topic load and for widgets
- do not use toLocaleString for each timeago string, use a single
Intl.DateTimeFormat instance instead
- do not call format for empty timeago strings, ie a post that isnt
edited doesnt have a timeago string
- do not call isTouchDevice for every element
- remove app.replaceSelfLinks, this is superceded with /me route
- store references to jquery objects in navigator instead of creating
them on every scroll
6 years ago
Barış Soner Uşaklı ac549f8bc7 closes #6957 6 years ago
Barış Soner Uşaklı 973b5fcfe0 closes #6932 6 years ago
Baris Usakli 3e2dffa6d0 fix search in if in query param isn't passed in 6 years ago
Julian Lam f7bd398eb1 style(eslint): newlines in public/src as well 6 years ago
renovate[bot] 64b9dabff8 chore(deps): update dependency eslint-config-airbnb-base to v13 (#6599)
* chore(deps): update dependency eslint-config-airbnb-base to v13

* chore: #6599, linting 😬
6 years ago
Julian Lam 501b3a79ca
Refactor skins to be built on server-side (#6849)
* WIP

* using bootswatch from npm instead of bootswatch CDN url

* feat: on-demand client css building for skins

* added ability for client-side to select a skin

* updated loading and saving logic of bootstrapSkin on client side user settings

* fix: broken test for #6849
6 years ago
Julian Lam 84433f29ab
Do not require a full refresh on login/logout (#6841)
* no-refresh login as well, plus lots of fixes for missing config on login

* replace config with new set on logout as well

* passing new payload data into new action:app.loggedIn hook, and old action:app.loggedOut hook

* fixed issues with socket.io not properly representing uid on server

* some light refactoring and cleanup

* minor cleanup, fixed spa logout not working after login

* have reconnection handler for socket.io wait 2s to confirm disconnection before reporting -- stops flicker if reconnecting immediately

* Dynamically replace chat and slideout menu on updateHeader()

... instead of just the menu items.

* more efficient calls to Benchpress and translator /cc @pitaj

* fix: chats and notification handlers not working after login

* fix: accidentally calling cb multiple times
6 years ago
Barış Soner Uşaklı 6f47446171 closes #6910 6 years ago
Barış Soner Uşaklı 61c7aa4b19 closes #6885 6 years ago
Barış Soner Uşaklı c27be9db5a
Recent refactor (#6879)
* wip

* fix inf scroll

* remove duplicated code

* remove dupe code in /unread

* use topicList

* update tag page to use topicList

* fix tests

* combine ifs

* remove more dupe code

* disable timeout
6 years ago
Baris Usakli 881185ae59 closes #6857 6 years ago
Julian Lam c95ad2c46a closes nodebb/nodebb-theme-persona#339 7 years ago
Baris Usakli 6dc84deca9 allow admins mods to watch/ignore categories for other users 7 years ago
André Zanghelini 523a2dc54c Add settings page to control watched categories (#6648)
* Add settings page to control watched categories

* Fix passing undefined to pushUnreadCount
7 years ago
Barış Soner Uşaklı 95ace13599 add loading=false 7 years ago
Barış Soner Uşaklı ef55598822 filter messages that are already inserted to DOM 7 years ago
Barış Soner Uşaklı cf75c79611
Unread changes closes #6781 (#6783)
* WIP

* more unread work

* faster teaser block handling

if user doesn't have anyone blocked don't check

* much faster filtering of blocked posts

* add missing uid

* add tidsByFilter to return

* dont load all pids to find previous non-blocked teaser

* fix unread filters

they no longer use unread/new unread/watched etc they are query strings now

* shorter nav item code

* add unreplied to filters

fix icons not clearing to 0
dont increment unread counters if there is a reply in a topic where you ignored the topic creator
7 years ago
Barış Soner Uşaklı 669a5135e1 closes #6768 7 years ago
Barış Soner Uşaklı d880a7ade0 closes #6771 7 years ago
smyther f120015b54 Fix for user being able to open multiple "delete posts" modals (#6770)
* Implement fix for multiple fork cards showing

* Fix for admin being able to open multiple 'delete posts' modals

* Fix linting issue
7 years ago
smyther 0c9907367a Implement fix for multiple fork cards showing (#6757) 7 years ago
Julian Lam c2c925cacd closes #6678 7 years ago
Julian Lam 5c04ec2d63 removed client-side chat message length check in favour of server-side check, firing new hook on messaging.checkContent for hooks to intercept 7 years ago
Julian Lam 70f04bd1c2 fixed client-side console error on vote 7 years ago
Julian Lam a77630c6be closes #6697 7 years ago
Baris Usakli 976b85ccaa closes #6676 7 years ago
Julian Lam 5243ee559a set initial focus on register page 7 years ago
Julian Lam 609f711db0 added logic to handle Chats.switchChat being called with no arguments 7 years ago
Barış Soner Uşaklı ec33a12dad closes #6644 7 years ago
djls45 4f0a24cfed Preserve case of respondee's slug when responding to their post. 7 years ago
Julian Lam 7a53fa9469 Added block and unblock button to profile dropdown menu, #6560 7 years ago
Barış Soner Uşaklı 4ed079555e Merge remote-tracking branch 'refs/remotes/origin/master' into blocks 7 years ago
Julian Lam fb42862ec7 check password validity in user delete socket call 7 years ago
Baris Usakli 584f88e092 blocks WIP 7 years ago
Barış Soner Uşaklı 57b7c7ede4 closes #6607 7 years ago
Barış Soner Uşaklı ccad95cf73 closes #6579 7 years ago
Barış Soner Uşaklı 017b10d5d6 closes #6544 7 years ago
Julian Lam 99dc3feeb2 Edit history is now a category-level privilege
Closes #6425
7 years ago
Barış Soner Uşaklı 779d03cf57 move timestamp to server 7 years ago
Barış Soner Uşaklı d040544773 fix clicking topics after merge modal is closed 7 years ago
Barış Soner Uşaklı 45cc30a91b remove deprecated code
unread counts are loaded on cold load
7 years ago
Barış Soner Uşaklı f0a538bd4a closes #6536 7 years ago
Barış Soner Uşaklı b0dad9bd7f closes #6369 7 years ago
Barış Soner Uşaklı 81328806a0 closes #6511 7 years ago
Julian Lam 8e275df803 closes #6487 7 years ago
Julian Lam a08572b800 kick support for chats, #6479 7 years ago
Julian Lam dc386b5b23 Merge branch 'master' into user-blocking 7 years ago
Julian Lam 4bac78a568 wrapping up basic blocking UCP for #6463 7 years ago
Julian Lam 8db98b5cf4 additional UCP integration for #6463 7 years ago
Julian Lam 7089e5c6a6 Merge remote-tracking branch 'origin/master' into develop 7 years ago
Julian Lam f0f30041f5 re: #6408 7 years ago
Barış Soner Uşaklı 5d2a7106f6 change upload storage 7 years ago
Julian Lam 7ba2ac9f69 Merge remote-tracking branch 'origin/master' into develop 7 years ago
Barış Soner Uşaklı 927537c759 #6431 add private upload info 7 years ago
Barış Soner Uşaklı b35bfb81ce ability to delete uploads from account page #6431 7 years ago