802 Commits (c96fd3b19bae18b107f33bf809bec8394755ed54)

Author SHA1 Message Date
Julian Lam 3e54b70c06 fix: #9092, Topic thumbnails do not work with third-party uploaders 5 years ago
Julian Lam 2170c40007 fix: iteration logic bug 5 years ago
Julian Lam a30c8ab5c8 feat: clent-side modal for managing topic thumbs
closes #9087
5 years ago
Julian Lam 1c5cdb5121 feat: associate topic thumbs with post uploads (for the mainPid) 5 years ago
Julian Lam c09c238e3f fix: do not allow thumb deletion route to arbitrarily delete other files in uploads folder 5 years ago
Julian Lam 4152aa552e feat: tests for topic thumbs
Also added some error checking to addThumbs controller
5 years ago
Julian Lam ef7d6db912 feat: server-side work for #9047
- rename Thumbs.commit to Thumbs.migrate
- new PUT method that calls Thumbs.migrate
- `checkThumbPrivileges` now takes a single object parameter (ins. of req/res)
5 years ago
Julian Lam b5d910f53b feat: core work for #9042, thumb deletion now accepts uuids
+ common data validation for thumb addition and deletion
5 years ago
Julian Lam 1f0c1cd229 fix: references to since-removed Topics.thumbs.resizeAndUpload 5 years ago
Julian Lam 90497e3ef5 feat: more work on topic thumbs refactor
- addThumb and deleteThumb are now protected routes (duh)
- new getThumbs route GET /api/v3/topics/<tid>/thumbs
- Updated `assert.path` middleware to better handle if relative paths are received with upload_url
- Slight refactor of thumbs lib to use validator to differentiate between tid and UUID
5 years ago
Julian Lam 43dc3e3e48 fix: #9041, remove Topics.thumbs.resizeAndUpload() 5 years ago
Julian Lam 1257aa981e feat: expose uploaded thumbnails to client-side via API
+ plugin hook: filter:topics.getThumbs
5 years ago
Julian Lam 7e9e08f718 feat: server-side routes for handling multiple topic thumbnails
closes #8994, requires 'topic-thumb-refactor' branch of composer-default
5 years ago
Julian Lam 4fc9da81a9 refactor: topic thumbs lib to topics.thumbs 5 years ago
Barış Soner Uşaklı d2888d1d1f
Category tags (#8938)
* feat: wip category tags

* fix: tag search

* feat: remove debug

* fix: returns of searchTags and autocomplete

* fix: alpha sort

* fix: redis

* fix: delete zsets on category purge, fix another test

* fix: test
5 years ago
Barış Soner Uşaklı 954dc5b7be feat: #8983, update pin tooltip in topic 5 years ago
Barış Soner Uşaklı 14bb0a4469 feat: #8960, update view count after merge 5 years ago
Barış Soner Uşaklı 5a137a0dd6 fix: guest handles to user displayname as well 5 years ago
Barış Soner Uşaklı 9ab4fb412b fix: order 5 years ago
Barış Soner Uşaklı d3c04afb98 fix: #8982, copy color on tag rename, dont copy if target exists
refresh page on tag rename
5 years ago
Julian Lam ad8e770037 feat: add pinExpiry and pinExpiryISO to topic data 5 years ago
Barış Soner Uşaklı c037779fa1 feat: add topicOwnerPost #8778 5 years ago
Julian Lam 90434a4668 Revert "fix(spec): always show thumb in topic response"
This reverts commit 493c568a75.
5 years ago
Julian Lam 493c568a75 fix(spec): always show thumb in topic response 5 years ago
Julian Lam eab4ca7104 fix: bug with Topics.resizeAndUploadThumb not checking for extension validity 5 years ago
Julian Lam 5dd3b03125 fix: a derp 5 years ago
Julian Lam 4ca62dc45b fix: improper handling of scheme-relative URLs in topic thumb logic 5 years ago
Julian Lam f33a9185ff fix: on OP edit, call helper method to upload and resize thumb 5 years ago
Barış Soner Uşaklı 9ee1fb490e fix: https://github.com/NodeBB/NodeBB/pull/8759 5 years ago
Julian Lam 6e2da9966e refactor: move plugin hook methods to plugin.hooks.* 5 years ago
Barış Soner Uşaklı ef3df47a6d refactor: remove breaking change in pin expiry 5 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
5 years ago
Barış Soner Uşaklı fa4177c3bc fix: #6407, fix feeds
display latest posts instead of oldest in topic rss feed
fix missing await that was causing rss_tokens to not function
fix feed test
more tests for getTopicWithPosts
5 years ago
Barış Soner Uşaklı fb567a7a33 feat: #4456 5 years ago
Julian Lam 1392d064a1 fix(writeapi): normalizing data 5 years ago
Barış Soner Uşaklı 93bdfe2f10 perf: reorder async calls 5 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
5 years ago
Barış Soner Uşaklı 0db0231cff feat: move postercount to topic hash 5 years ago
Barış Soner Uşaklı 203db47b30 fix: return early for guests/spiders 5 years ago
Julian Lam 177a961000 feat: new filter filter:teasers.configureStripTags 5 years ago
Barış Soner Uşaklı 7a019494e8 feat: add filter.topics.getPostReplies 5 years ago
Barış Soner Uşaklı 7beaf49028 feat: set unread false for guests 5 years ago
Barış Soner Uşaklı dc29f4dca2 refactor: switch to using slugify module 5 years ago
Barış Soner Uşaklı 83d4e7efaa feat: add number of posters to topic 5 years ago
Julian Lam 81595095da feat: allow plugins to override tags and tag counts 5 years ago
Barış Soner Uşaklı de824007d9 feat: allow custom req.query.filter on /unread /recent 5 years ago
Barış Soner Uşaklı 65d049c6f9 fix: tests 5 years ago
Barış Soner Uşaklı 2d5bd153e0 fix: check if unread_tids are followed 5 years ago
Barış Soner Uşaklı 1e5981c0d6 feat: replace relative urls to absolute before sending email notifs
https://github.com/NodeBB/NodeBB/pull/8366/files
5 years ago
Barış Soner Uşaklı 55533b11e5 fix: dupes in unread followed topics 5 years ago
Barış Soner Uşaklı bb224184d8 fix: #8539, enforce content checks for post queue 5 years ago
Barış Soner Uşaklı 519e665939 fix: #8538, go to first unread instead of last read 5 years ago
Barış Soner Uşaklı ce6b20c4b7 feat: remove topics.async.getTopicData usage 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
Barış Soner Uşaklı d6c619cf1a fix: don't show blocked users under nested replies 5 years ago
Barış Soner Uşaklı fef04fcf6b fix: missing backgroundImage #8386 5 years ago
Barış Soner Uşaklı fd400a008d fix: don't show in unreplied if score is null 5 years ago
Barış Soner Uşaklı e09ab3dc19 feat: closes #8440, allow configuring max topic count 5 years ago
Barış Soner Uşaklı c718b7293e feat: #3783, min/max tags per category 5 years ago
Manuel Valle 056f85f864
Topic hooks extension (#8413)
* Update data.js with new hook

Implemented new 'filter:topic.getFields' hook as in posts

* Update data.js

* Update data.js
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ı 7d484fc0ad refactor: use getSortedSetMembers 5 years ago
Barış Soner Uşaklı f3afba6156 feat: filter followed tids by category 5 years ago
Barış Soner Uşaklı 1b9e8928eb feat: use getSortedSetsMembers to load followed tids 5 years ago
Barış Soner Uşaklı 7f24200c73 feat: add folder to filter:uploadImage and filter:uploadFile 5 years ago
Barış Soner Uşaklı 81e33b9391 fix: #8317 5 years ago
Barış Soner Uşaklı 0e58fa33eb feat: match hook property to topic property 5 years ago
Barış Soner Uşaklı bfad457275 feat: add methods for adding/removing tags from topics 5 years ago
Barış Soner Uşaklı e20ad5c56e fix: dont crash if topic is null 5 years ago
Barış Soner Uşaklı a73c755b05 feat: closes #8308, edit post notif for watched topic posts 5 years ago
Barış Soner Uşaklı 0431d75f0d fix: #8297, uids.length is different than topics.length 5 years ago
Julian Lam fcb81cb8ca fix: #8297 guest handles shown in category.tpl 5 years ago
Barış Soner Uşaklı 478ed6c16f refactor: match core field name pinned 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ı 4eafe0f057 fix: #8269, return array of topics from hook 5 years ago
Barış Soner Uşaklı 59cf0e80d2 fix: throw error if topic does not exist 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ı bc93b5676c fix: #8175 5 years ago
Barış Soner Uşaklı e74954407f fix: #8157, update recent tid when post is moved 5 years ago
Baris Usakli 236e1e6859 fix: return correct number of suggested topics 5 years ago
Barış Soner Uşaklı 8c48f94b96 fix: #8139, dont allow restore if not deleted by self 5 years ago
Barış Soner Uşaklı 9969dd6335 fix: use view_deleted when filtering, closes #8137 5 years ago
Barış Soner Uşaklı b7a57996f7 fix: escape topic.thumb 5 years ago
Barış Soner Uşaklı b91c4790d1 fix: dont show delete topics on unread 6 years ago
Barış Soner Uşaklı 0e5e47f410 fix: parseInt cutoff 6 years ago
Barış Soner Uşaklı e020b85bf5 feat: add filter:topics.unreadCutoff 6 years ago
Opliko 989107d9b5 feat: Add filter:topic.delete and filter:topic.restore (#7946) (#7989)
* Add filter:topic.delete

* Don't return undefined data

* add topic.restore and pass canRestore to filter

* fix some bugs created by conflict resolution and new changes

* more readable hook

* fix styling for TravisCI

* literally just two newlines so that TravisCI builds again
6 years ago
Barış Soner Uşaklı 661a0f5068 fix: don't show deleted topics on unread 6 years ago
Barış Soner Uşaklı ac4a500402 fix: remove 0 fields 6 years ago
Barış Soner Uşaklı f8c8038a06 refactor: remove log, topics.exists 6 years ago
Barış Soner Uşaklı b192605450 feat: add new hook to get custom category tids for unread 6 years ago
Barış Soner Uşaklı 05e753c73b refactor: remove var 6 years ago
Barış Soner Uşaklı 10f168b824 fix: #7934, return tids 6 years ago
Baris Usakli b93c826d35 feat: add new hook filteR:topics.getSortedTids
to let plugins replace the logic used to retrieve tids
6 years ago
Barış Soner Uşaklı ffe3670ff5 feat: deprecate file.isFileTypeAllowed
use image.isFileTypeAllowed, this function was always meant for images
6 years ago
Barış Soner Uşaklı 0ced71be39 refactor: async/await flags 6 years ago
Barış Soner Uşaklı 310c6fd33f
properly filter /unread /recent /popular /top (#7927)
* feat: add failing test for pagination

* feat: test

* fix: redis tests

* refactor: remove logs

* fix: add new test

* feat: make sortedSetRangeByScore work with keys on redis

* fix: hardcoded set name

* feat: show topics from readable categories on recent/popular/top

* feat: rewrite unread topics

respect watched categories and followed topics

* fix: term + watched
6 years ago
Barış Soner Uşaklı f05c1dae69 feat: actually cache duh 6 years ago
Barış Soner Uşaklı 63bd252fba feat: cache tags:topic:count 6 years ago
Barış Soner Uşaklı 5c2afe5eac refactor: async/await socket.io/topics 6 years ago