Commit Graph

8780 Commits (23f212a4c0aca967f08f8bba06d06ebf49d1c7ac)

Author SHA1 Message Date
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
Misty (Bot) af90b99706 Latest translations and fallbacks
Julian Lam fc603a5368 fix: use app.parseAndTranslate instead of benchpress.parse
psychobunny 20e0cc5cbb fix: sorted list delete button
Misty (Bot) 174e239332 Latest translations and fallbacks
Barış Soner Uşaklı b955fd363d fix: dont allow sorting pinned topics on recent
Julian Lam 3c7f79cb8a fix: use console.info instead of console.log for sw registration
Barış Soner Uşaklı 1542a5d7e5 feat: remove post/header selector
Barış Soner Uşaklı 7cd83b9a6a fix: spec
Barış Soner Uşaklı 6924eb6c52 fix: spec
Misty (Bot) d93315e3ee Latest translations and fallbacks
psychobunny 60afb110ef fix: prevent mutiple highlighted rows on category/topic pages
Misty (Bot) 6ee0cad289 Latest translations and fallbacks
Barış Soner Uşaklı fbd85680fb fix: spec
Barış Soner Uşaklı 5d9a868142
feat: category filter on post queue ()
* feat: category filter on post queue

category filter module

* feat: add spec
Julian Lam f1de084da3 fix: do not show TOC if fewer than 2 headings
psychobunny caa8c00f89 fix: params cached in autocomplete module
Misty (Bot) c65ea5bfa6 Latest translations and fallbacks
Barış Soner Uşaklı e60357d20d
feat: , add top/popular sections to digest email ()
Peter Jaszkowiak 55d5cccf2e
Document deprecations and remove old ones ()
* chore: document deprecation removal versions

* chore: remove deprecations 2+ versions old
Misty (Bot) 39b51707ce Latest translations and fallbacks
Barış Soner Uşaklı 72e82c4aca Merge branch 'master' of https://github.com/NodeBB/NodeBB
psychobunny 1761e13dbd feat: dedicated sorting buttons for plugin ordering in ACP
Barış Soner Uşaklı c33dc90562 Merge branch 'master' of https://github.com/NodeBB/NodeBB
Barış Soner Uşaklı 54737d3076 feat: , search sub categories
psychobunny c56236f081 fix: overflow on submitPluginUsage field
psychobunny f4d76f1edd feat: move service-worker.js into its own file
Julian Lam 8437130ec2 fix: early button/anchor clicks do nothing
This reverts commit a395324b52, and
fixes the issue where the ACP became unusable because of the earlier
variant of this code.

Thanks @psychobunny for spotting.
Misty (Bot) f693ce97bf Latest translations and fallbacks
Barış Soner Uşaklı a395324b52 Revert "fix: early button/anchor clicks do nothing"
This reverts commit 966d3f7654.
psychobunny 14ba1a6dbb feat: analytics:maxCache setting in ACP
I removed a TODO from core. Watch your head as flying pigs are abound
psychobunny ffbf2d6d63 feat(openapi): refactor into indiv. files to match API & tpl routing
psychobunny c7d27731b3 Revert "feat(openapi): refactor into indiv. files to match API & tpl routing"
This reverts commit 84f5e4cf3d.
Julian Lam 966d3f7654 fix: early button/anchor clicks do nothing
This solves a small UX issue where clicking on a button (or anchor
that is not meant to be ajaxified) before ajaxify.end is called
leads to nothing happening because the appropriate click handler
has not been added.

This code will intercept premature clicks, wait until ajaxify.end
is called, and then re-send the click.
Barış Soner Uşaklı ea0f3262f4 feat: , allow sort for guests
psychobunny 84f5e4cf3d feat(openapi): refactor into indiv. files to match API & tpl routing
psychobunny 9c5b690799 feat: up recommended size to 512x512 + ACP labels for PWA
psychobunny 6478b32d0e feat: upload maskable icon for PWA
Julian Lam 3fbddbe2ca fix(openapi): test for new trending plugins in ACP
Julian Lam b12e8d6312 feat: show top 5 trending plugins in new tab in Extend > Plugins
psychobunny aa268d5eeb feat: register service worker,
psychobunny 4c1e717b2b fix: update notification delay ACP help text
psychobunny 5b427a0c3b feat: option in ACP to configure notification/email delay for chats
Misty (Bot) f66cb05fcf Latest translations and fallbacks
Timothy Fike f85fe7faff
don't invite an already invited email ()
* don't invite an already invited email

* add email-invited translation string
Misty (Bot) 852ec92e93 Latest translations and fallbacks
psychobunny b6f2f0e5d0 fix: change owner modal's search should check if user is banned
psychobunny 611f3c6155 feat: allow autocomplete to pass optional params to user.search
Julian Lam f8032cd09b fix: add img-responsive to post queue post items
Misty (Bot) 7fa61fafbf Latest translations and fallbacks
Julian Lam 5ddf70221c feat: upon plugin installation via ACP, check against nbbpm first
Misty (Bot) 8b855720f8 Latest translations and fallbacks
psychobunny 2ad3305879 fix: language key in reset password
Julian Lam 0fffe28941 fix: issue where the last flag filter could not be removed
psychobunny 2cd5f959a0 feat: add row highlighting for popular and unread
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
Misty (Bot) 6ebd2c80e7 Latest translations and fallbacks
Barış Soner Uşaklı bd9b6c99e6 feat: add missing lang key
Barış Soner Uşaklı 83d4e7efaa feat: add number of posters to topic
Barış Soner Uşaklı f2f3ba49b6 feat: hightlight matches in quick search
fix title hightlights
Barış Soner Uşaklı f8ef380b34 fix: multiword match highlight
Barış Soner Uşaklı d38c872259 feat: add loading indicator
psychobunny 82ab6cd3b1 fix: tooltip placement on navbar search
psychobunny 683c01b0d3 fix: rogue tooltip on navbar profile icon
Barış Soner Uşaklı 445a840b88 fix: , @julianlam
psychobunny 703ac1b685 fix: match api when modifying ajaxify.data.deleted (int, not bool)
Barış Soner Uşaklı 9a7c3c689f fix: lock/unlock toggle issue
Barış Soner Uşaklı 654d583059 fix: api spec
Barış Soner Uşaklı 02a48e1c64 fix: change user tooltip container to content
Barış Soner Uşaklı af43f0e48e fix: , rename /api/me to /api/self
Misty (Bot) 9e7f5b9403 Latest translations and fallbacks
Misty (Bot) bd10559121 Latest translations and fallbacks
Barış Soner Uşaklı 95c65e2da0 Merge branch 'master' of https://github.com/NodeBB/NodeBB
Barış Soner Uşaklı 23de5613bd feat: add x-posts/x-votes keys
Misty (Bot) 4f9131fdc3 Latest translations and fallbacks
Barış Soner Uşaklı 047c414841 fix: add user tooltips to body
so they don't get cutoff  in containers with overflow:hidden
Barış Soner Uşaklı ddc0ac37ab feat: allow adding nested replies to a target component
Julian Lam 43571bac38 feat: hotkey "/" to open ACP search
Julian Lam 763cec31bd feat: ctr-s for save on privileges page too
Julian Lam 8093142340 feat: ctrl-s now saves on settingsv1/v2 forms
... because nobody ever uses ctrl-s on a browser window.
Barış Soner Uşaklı 6669b23d9a feat: single href
Barış Soner Uşaklı 42298fe659 fix: clear old value on focus
hide results if input lost focus during search
Barış Soner Uşaklı c9c9dd2f9b fix: skip elements if they dont have proper index
Barış Soner Uşaklı 7148be2fd1 feat: allow passing in container to threadTools
Barış Soner Uşaklı 99f24c5997 fix: call to reskin
Julian Lam 44309ee62f fix: move necro-post to be in-line with posts
Barış Soner Uşaklı a8e18fdbe6 fix: client side crash if there are no topics
Misty (Bot) 21ae81b4af Latest translations and fallbacks
Barış Soner Uşaklı e90940949c fix: openapi
Barış Soner Uşaklı c1c617b323 feat: add topicIndex to category page
Misty (Bot) 74f14829a0 Latest translations and fallbacks
Barış Soner Uşaklı 632793b067 fix: dont use hardcoded fontawesome icons for lock pin
Barış Soner Uşaklı f6d564667e feat: switch to using topic/select component for merge
automatically add the selected tids to the merge modal
Misty (Bot) 66ef90df9f Latest translations and fallbacks
Julian Lam 762e9fe88c feat: undo for posts move
Julian Lam 65d94a3b6d fix: and change undo timeout to 10 seconds
Barış Soner Uşaklı 2bebdf017d fix: alert_id selector
Barış Soner Uşaklı 5a40d26b44 feat: , new move posts modal
Misty (Bot) 0cec103489 Latest translations and fallbacks
Barış Soner Uşaklı a34b685c65 fix: remove lang keys, remove sounds menu
Misty (Bot) 61590c7e54 Latest translations and fallbacks
Barış Soner Uşaklı 5f10d67db5
Remove sounds ()
* feat: remove sounds

* feat: remove more sounds

* feat: disable sounds plugin

* fix: openapi
Barış Soner Uşaklı 5002e0f62c feat: refactor app.js
Barış Soner Uşaklı 19c448612d feat: remove global RELATIVE_PATH
Barış Soner Uşaklı 3cd3b7a172 feat: remove app.template
Barış Soner Uşaklı 630bac2aa5 feat: remove global window.templates
Barış Soner Uşaklı fddeb5c0f8 feat: remove app.isConnected, use socket.connected
Barış Soner Uşaklı 46ab2711d4 fix: , add CSP frame-ancestors
Barış Soner Uşaklı 94da9fe55e feat: add partials/footer/js.tpl
add ajaxify.coldLoad which gets called from partials/footer/js.tpl
Peter Jaszkowiak 64a457a441
fix(bug): , custom route logic corrected ()
Barış Soner Uşaklı c495aacc3e Merge branch 'master' of https://github.com/NodeBB/NodeBB
Barış Soner Uşaklı 57f67e2b91 fix: don't toggle elements if there is no inputEl