Commit Graph

258 Commits

Author SHA1 Message Date
Julian Lam
bef236f371 chore: remove unnecessary affected set from deprecated plugin hook 2022-06-15 13:50:12 -04:00
Julian Lam
b9d4724e0f feat: allowed plugins to modify email verification details prior to db saving or email send/plugin fire
+ new hook `filter:user.verify`
- hook `filter:user.verify.code`
2022-06-15 13:49:30 -04:00
Julian Lam
3a015eb8e3 fix: no need to pass in empty Set in deprecated hooks 2022-06-15 13:49:19 -04:00
Barış Soner Uşaklı
d20b07cfea Webpack5 (#10311)
* feat: webpack 5 part 1

* fix: gruntfile fixes

* fix: fix taskbar warning

add app.importScript
copy public/src/modules to build folder

* refactor: remove commented old code

* feat: reenable admin

* fix: acp settings pages, fix sortable on manage categories

embedded require in html not allowed

* fix: bundle serialize/deserizeli so plugins dont break

* test: fixe util tests

* test: fix require path

* test: more test fixes

* test: require correct utils module

* test: require correct utils

* test: log stack

* test: fix db require blowing up tests

* test: move and disable bundle test

* refactor: add aliases

* test: disable testing route

* fix: move webpack modules necessary for build, into `dependencies`

* test: fix one more test

remove 500-embed.tpl

* fix: restore use of assets/nodebb.min.js, at least for now

* fix: remove unnecessary line break

* fix: point to proper ACP bundle

* test: maybe fix build test

* test: composer

* refactor: dont need dist

* refactor: more cleanup

use everything from build/public folder

* get rid of conditional import in app.js

* fix: ace

* refactor: cropper alias

* test: lint and test fixes

* lint: fix

* refactor: rename function to app.require

* refactor: go back to using app.require

* chore: use github branch

* chore: use webpack branch

* feat: webpack webinstaller

* feat: add chunkFile name with contenthash

* refactor: move hooks to top

* refactor: get rid of template500Function

* fix(deps): use webpack5 branch of 2factor plugin

* chore: tagging v2.0.0-beta.0 pre-release version 💥 :shipit: 🎉 🚀

* refactor: disable cache on templates

loadTemplate is called once by benchpress and the result is cache internally

* refactor: add server side helpers.js

* feat: deprecate /plugins shorthand route, closes #10343

* refactor: use build/public for webpack

* test: fix filename

* fix: more specific selector

* lint: ignore

* refactor: fix comments

* test: add debug for random failing test

* refactor: cleanup

remove test page, remove dupe functions in utils.common

* lint: use relative path  for now

* chore: bump prerelease version

* feat: add translateKeys

* fix: optional params

* fix: get rid of extra timeago files

* refactor: cleanup, require timeago locale earlier

remove translator.prepareDOM, it is in header.tpl html tag

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels (#10378)

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels

- Existing hooks are preserved (to be deprecated at a later date, possibly)
- New init hooks are called on NodeBB start, and provide a one-stop shop to add new privileges, instead of having to add to four different hooks

* docs: fix typo in comment

* test: spec changes

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels (#10378)

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels

- Existing hooks are preserved (to be deprecated at a later date, possibly)
- New init hooks are called on NodeBB start, and provide a one-stop shop to add new privileges, instead of having to add to four different hooks

* docs: fix typo in comment

* test: spec changes

* feat: allow app.require('bootbox'/'benchpressjs')

* refactor: require server side utils

* test: jquery ready

* change istaller to use build/public

* test: use document.addEventListener

* refactor: closes #10301

* refactor: generateTopicClass

* fix: column counts for other privileges

* fix: #10443, regression where sorted-list items did not render into the DOM in the predicted order [breaking]

* fix: typo in hook name

* refactor: introduce a generic autocomplete.init() method that can be called to add nodebb-style autocompletion but using different data sources (e.g. not user/groups/tags)

* fix: crash if `delay` not passed in (as it cannot be destructured)

* refactor: replace substr

* feat: set --panel-offset style in html element based on stored value in localStorage

* refactor: addDropupHandler() logic to be less naive

- Take into account height of the menu
- Don't apply dropUp logic if there's nothing in the dropdown
- Remove 'hidden' class (added by default in Persona for post tools) when menu items are added

closes #10423

* refactor: simplify utils.params [breaking]

Retrospective analysis of the usage of this method suggests that the options passed in are superfluous, and that only `url` is required. Using a browser built-in makes more sense to accomplish what this method sets out to do.

* feat: add support for returning full URLSearchParams for utils.params

* fix: utils.params() fallback handling

* fix: default empty obj for params()

* fix: remove \'loggedin\' and \'register\' qs parameters once they have been used, delay invocation of messages until ajaxify.end

* fix: utils.params() not allowing relative paths to be passed in

* refactor(DRY): new assertPasswordValidity utils method

* fix: incorrect error message returned on insufficient privilege on flag edit

* fix: read/update/delete access to flags API should be limited for moderators to only post flags in categories they moderate

- added failing tests and patched up middleware.assert.flags to fix

* refactor: flag api v3 tests to create new post and flags on every round

* fix: missing error:no-flag language key

* refactor: flags.canView to check flag existence, simplify middleware.assert.flag

* feat: flag deletion API endpoint, #10426

* feat: UI for flag deletion, closes #10426

* chore: update plugin versions

* chore: up emoji

* chore: update markdown

* chore: up emoji-android

* fix: regression caused by utils.params() refactor, supports arrays and pipes all values through utils.toType, adjusts tests to type check

Co-authored-by: Julian Lam <julian@nodebb.org>
2022-04-29 21:39:33 -04:00
Barış Soner Uşaklı
5316029f91 fix: dont add caller to arrays 2022-04-13 15:09:58 -04:00
Barış Soner Uşaklı
767973717b perf: WIP #10449, allow array of pids for posts.purge (#10465)
* perf: WIP #10449, allow array of pids for posts.purge

* refactor: deletePostDiffs

* perf: deletePostFromReplies/deletePostFromGroups

* refactor: upload

* refactor: deleteFromCategoryRecentPosts

deleteFromUsersBookmarks
deleteFromUsersVotes

* feat: closes #10468, add incrObjectFieldByBulk

* refactor: allow nids for notifications.rescind

* refactor: allow uids array for user.updatePostCount

* refactor: rewrite deleteFromTopicUserNotification to work with an array

* feat: deprecate action:post.purge as well

* lint: add missing comma
2022-04-07 14:06:25 -04:00
Julian Lam
83fd4311b2 chore: delay filter:email.send removal to v2.0.0 2022-03-08 22:35:00 -05:00
Julian Lam
93b80f170b refactor: show a louder deprecation notice, alert once for each hook, not per plugin per hook 2022-03-08 22:33:02 -05:00
Barış Soner Uşaklı
e0b1c374e4 feat: resolve paths for staticDirs as well 2022-02-25 14:43:10 -05:00
Julian Lam
8ba9e67cbd feat: detect alternative package managers based on lockfile
If a package manager is not explicitly set in config.json or passed-in via argv/env, NodeBB will now check for the presence of alternative package managers' lockfiles and adjust the package manager to-be-used accordingly. If the standard npm lockfile exists, npm will always be used.
2022-02-02 17:15:44 -05:00
Julian Lam
cf8f62aed9 feat: remove colors in favour of chalk (#10142)
* feat: remove colors in favour of chalk

* fix: bad conversion from colors to chalk in src/cli/index.js

* fix: padWidth calculation to account for control characters

* fix: termWidth calculation, but swapped one problem for another

* fix: formatItem, implement my own padRight to take control characters into account
2022-02-01 21:43:09 -05:00
Barış Soner Uşaklı
d375dcb873 test: submitUsage 2021-11-22 21:10:12 -05:00
Barış Soner Uşaklı
29b3587d91 test: middleware/expose.js 2021-11-22 19:56:12 -05:00
Julian Lam
f0d192fbfd feat: autocomplete for activate/reset
useless features™️
2021-11-22 15:37:37 -05:00
Barış Soner Uşaklı
fb363957d1 refactor: tab rules 2021-11-18 16:42:18 -05:00
Barış Soner Uşaklı
1feb111ade perf: dont fs.open if plugin doesnt have language namespace (#9893)
closes #9892
2021-10-12 17:40:08 -04:00
Barış Soner Uşaklı
c437b33652 fix: crash 2021-09-21 13:51:24 -04:00
Barış Soner Uşaklı
15f9aaa6ee fix: remove caller from payload after hooks is done
only if it was added automatically
2021-09-21 13:48:16 -04:00
Barış Soner Uşaklı
1e2bda13d0 fix: lint 2021-09-03 12:41:11 -04:00
Julian Lam
dd4e66e22c fix: push back some deprecations, remove deprecated stuff scheduled for v1.18.0 2021-09-03 12:04:20 -04:00
psychobunny
6afeac375b fix: automated tests are a good thing to have 2021-08-31 11:33:20 -04:00
psychobunny
ae793b4a44 chore: found some hooks that don't play well docgen 2021-08-31 10:45:08 -04:00
Barış Soner Uşaklı
e59d357533 feat: als (#9749)
* feat: als

* fix: up test timeout

* fix: don't overwrite caller if it already exists

* fix: up test timeout for psql
2021-08-30 10:23:38 -04:00
Barış Soner Uşaklı
0743554dd4 fix: pluginPaths 2021-08-23 21:41:08 -04:00
Barış Soner Uşaklı
13878e9f14 fix: #9730, show warning if plugin is active but not installed 2021-08-23 21:27:03 -04:00
Barış Soner Uşaklı
8fb53252a8 refactor: get rid of async.waterfall/each 2021-08-05 14:09:34 -04:00
Barış Soner Uşaklı
7c1e163d82 Revert "feat: add _hooks metadata object to all hooks that have object-type params"
This reverts commit 46899ccadb.
2021-04-30 12:16:30 -04:00
Julian Lam
46899ccadb feat: add _hooks metadata object to all hooks that have object-type params 2021-04-30 11:23:07 -04:00
Barış Soner Uşaklı
084c985117 feat: guard against multiple resolves 2021-04-29 10:47:23 -04:00
Barış Soner Uşaklı
5fe97b9c2e revert: sync hooks 2021-04-28 15:00:43 -04:00
Barış Soner Uşaklı
01956af43a feat: remove sync hooks support 2021-04-22 11:35:36 -04:00
Barış Soner Uşaklı
34b9aaedee feat: allow sync function (#9379)
* feat: allow sync function

* fix: remove async
2021-03-13 12:03:06 -05:00
Barış Soner Uşaklı
e725beaa4a Revert "feat: allow filter functions that return promises or the data directly"
This reverts commit e6c52cf26c.
2021-03-13 11:39:34 -05:00
Barış Soner Uşaklı
e6c52cf26c feat: allow filter functions that return promises or the data directly 2021-03-13 11:27:53 -05:00
Barış Soner Uşaklı
53f67ff396 fix: regression from filter hook change 2021-03-13 10:12:30 -05:00
Barış Soner Uşaklı
46270f9f20 feat: bring back static hook timeout 2021-03-11 22:56:14 -05:00
Barış Soner Uşaklı
d05d7091ae refactor: remove async.each/reduce from hooks for better stack traces 2021-03-11 21:44:37 -05:00
Barış Soner Uşaklı
5eb3132dae feat: add filter:plugins.firehook 2021-03-10 21:43:37 -05:00
Barış Soner Uşaklı
e74df53997 feat: pass modified params, only affects filter hooks 2021-03-08 18:08:47 -05:00
Julian Lam
bf90d15881 feat: new hook static:email.send
deprecates filter:email.send
2021-02-25 15:05:58 -05:00
Peter Jaszkowiak
5c2f0f0557 chore: eslint no-restricted-syntax 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
115d19e289 chore: eslint prefer-rest-params, prefer-spread 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
23f212a4c0 chore: eslint prefer-destructuring 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
dab3b23575 chore: eslint no-var, vars-on-top 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
b56d9e12b5 chore: eslint prefer-arrow-callback 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
707b55b6a5 chore: eslint prefer-template 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
4ee0f1459d chore: eslint import/newline-after-import 2021-02-08 18:06:44 -05:00
Julian Lam
3052256db3 chore: deprecation notices for plugins using plugin old hook methods 2021-01-28 17:15:51 -05:00
Julian Lam
15ba0abb34 docs: update deprecation-removal version for plugin hook helper methods in 1.18.0 2021-01-28 16:23:03 -05:00
Barış Soner Uşaklı
a1c014462c revert: bring back backwards compat 2021-01-27 17:41:07 -05:00