Commit Graph

65 Commits (24e58c289587c52aaf02417a276ac120dfac7606)

Author SHA1 Message Date
Barış Soner Uşaklı dd4e9cce09 perf: speed up build
run webpack as soon as js targets are done
this allows building js/css in parallel
Opliko 23cb67a112 feat: Allow defining active plugins in config ()
* Revert "Revert "feat: cross origin opener policy options ()""

This reverts commit 46050ace1a.

* Revert "Revert "chore(i18n): fallback strings for new resources: nodebb.admin-settings-advanced""

This reverts commit 9f291c07d3.

* feat: closes , don't trim children if category is marked section

* feat: fire hook to allow plugins to filter the pids returned in a user profile

/cc 

* fix: use `user.hidePrivateData();` more consistently across user retrieval endpoints

* feat: Allow defining active plugins in config

resolves 

* fix: assign the db result to files properly

* test: add tests with plugins in config

* feat: better theme change handling

* feat: add visual indication that plugins can't be activated

* test: correct hooks

* test: fix test definitions

* test: remove instead of resetting nconf to avoid affecting other tests

* test: ... I forgot how nconf worked

* fix: remove negation

* docs: improve wording of error message

* feat: reduce code duplication

* style: remove a redundant space

* fix: remove unused imports

* fix: use nconf instead of requiring config.json

* fix: await...

* fix: second missed await

* fix: move back from getActiveIds to getActive

* fix: use paths again?

* fix: typo

* fix: move require into the function

* fix: forgot to change back to getActive

* test: getActive returns only id

* test: accedently commented out some stuff

* feat: added note to top of plugins page if \!canChangeState

Co-authored-by: Julian Lam <julian@nodebb.org>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
Barış Soner Uşaklı d20b07cfea
Webpack5 ()
* 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 

* 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 ()

* 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 ()

* 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 

* refactor: generateTopicClass

* fix: column counts for other privileges

* fix: , 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 

* 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, 

* feat: UI for flag deletion, closes 

* 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>
Peter Jaszkowiak 23f212a4c0 chore: eslint prefer-destructuring
Peter Jaszkowiak dab3b23575 chore: eslint no-var, vars-on-top
Peter Jaszkowiak b56d9e12b5 chore: eslint prefer-arrow-callback
Peter Jaszkowiak 707b55b6a5 chore: eslint prefer-template
Peter Jaszkowiak 4ee0f1459d chore: eslint import/newline-after-import
Barış Soner Uşaklı 814771bdc7 fix: restart on js changes in vendor
Tudor-Dan Ravoiu 39279a1e54
Run grunt with debugger enabled ()
* Run grunt with debugger enabled

When forking a node.js thread we are also having the possibility to pass some node.js arguments, such as "--inspect=0.0.0.0". By providing this, we are adding the capability of doing live debugging even when the system is started with grunt.

* removed whitespace

* Update Gruntfile.js
Barış Soner Uşaklı c4bdeae06e feat: merge improvements wip
Barış Soner Uşaklı d484731d8c fix: derp includes
Barış Soner Uşaklı 6108064ea8 feat: change to contains to match scoped modules
replace recursive function with loop
Barış Soner Uşaklı cb662e15ce feat: improve grunt restart/rebuild speed
Barış Soner Uşaklı 451c7fd4b6 feat: allow only watching core
Barış Soner Uşaklı a6b7770342
Grunt active plugins ()
* feat: only watch active plugins/themes

* fix: remove log

* fix: remove left over glob

* fix: remove test glob

* feat: watch baseThemes as well

* feat: dont watch upgrade scripts
Barış Soner Uşaklı 26d4e0852f use includes instead of indexOf
use _.uniq instead of filter&indexOf
Peter Jaszkowiak abffc29128 Use Benchpress ()
* Use Benchpress

* Use Benchpress.compileParse

* Error for template load failure

* Use benchpressjs package

* Compile templates on demand

* Fix user settings page

* Fix admin search to exclude `.jst` files

* Fix 500-embed

So ajaxify can still show an error if the server goes down
psychobunny f1f5db4c99 remove redundant lines in watch directories
psychobunny 70887c5f78 fix grunt paths for core less files
psychobunny 0e219a8c58 closes
psychobunny 006584e405 fixes `[build] Unknown target:` error message
Peter Jaszkowiak 2a9cdb7be2 Add `--threads=#` option for setting max threads
Make grunt NODE_ENV development by default
Peter Jaszkowiak dd2b930824 Resolve merge conflicts, minify only `.js` files
Peter Jaszkowiak 4bb49a7171 ESlint no-unused-vars
Peter Jaszkowiak feb8405f95 ESlint eol-last
Peter Jaszkowiak a038c66549 ESlint quotes
Peter Jaszkowiak 277a7fb8b4 ESlint key-spacing, no-trailing-spaces
Peter Jaszkowiak 3361a72725 ESlint no-plusplus
and no-empty, space-unary-ops
Peter Jaszkowiak 2ba46808a1 ESlint one-var, fix comma-dangle
Peter Jaszkowiak bc1d70c126 ESlint comma-dangle
pichalite bb3c8b910a Skip option skips build
pichalite 5ca931a52c Update gruntfile to build on initialization
Julian Lam 06bf631445 increased file watch interval to reduce high CPU usage when using grunt
Julian Lam 5de67f9607 excluding tx managed language files from grunt
Peter Jaszkowiak 80b4c6fa68 Exclude config files
Peter Jaszkowiak e94d47976d Build language files on change
Julian Lam 12f834072a removed comment from Gruntfile
Julian Lam 7a10cffb25 fix Gruntfile.js to work with bew build step
Julian Lam 9bf0f6c5cd prep for @psychobunny, re:
HeeL 4a3c31b2dc Fix space-before-function-paren linter rule
psychobunny 5f5d8e6b56 ah, woops
psychobunny 6e617dd69a closes
Julian Lam 94a505a6bb removed symlink logic and using route bridging instead.
Also allowed plugins to define modules from their plugin.json
Julian Lam ad16c3db6b updated Gruntfile to ignore js files in public/src/modules
psychobunny f12903a3fe grunt watch: ignore .git folders
Julian Lam 32c18a1cd8 updated gruntfile to not watch subdependencies
psychobunny baeed22f20 grunt: only compile ACP less if that was changed, and vice versa with theme/plugin less
psychobunny efb6a9fe7e added option to skip asset compilation on initial grunt startup with --skip flag
psychobunny 551c81a977 grunt: watch for tjs changes as well