39 Commits (830a20f1829e69b0af947c43b6127b3ac908ca3a)

Author SHA1 Message Date
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 <[email protected]>
3 years ago
Barış Soner Uşaklı cba78aee16 refactor: use alerts.error/success 3 years ago
gasoved b0a24d6dd5
refactor: var to const and let (#9885)
* refactor: var to const and let

* fix: missed global bootbox usage

* refactor: align with eslint expectations
4 years ago
Peter Jaszkowiak cc9d6fd08b chore: eslint max-len 4 years ago
Barış Soner Uşaklı 7e867cf95e fix: #7597, fix progress bar of cover/profile uploads
send big cover images in chunks
4 years ago
Barış Soner Uşaklı 9a7560049a feat: bypass cropper for gifs 6 years ago
Julian Lam 3871a02ccc fix: resolve CORS error on uploading via URL
On uploading a new profile picture via URL, a CORS error presents
itself during the .toDataUrl() call due to misconfigured CORS
handling in the library. The change here allows cropper.js to
check crossorigin attribute in image and handle appropriately.

Also, the error handling is improved so the error is caught on
Firefox, as it sends a different error message than on Chrome.
6 years ago
Barış Soner Uşaklı 29a85aecc7 fix: #7138 6 years ago
Barış Soner Uşaklı e78aea1e86 close #7024
show error instead showing crop modal
7 years ago
Barış Soner Uşaklı 3554a0a725 closes #6791, if fileSize isn't passed in don't perform check 7 years ago
Barış Soner Uşaklı 71ccd67665 closes #6722
calculate size of base64 image from buffer, still not perfect but better than string.length
7 years ago
Barış Soner Uşaklı c0156640e3 add back alert 7 years ago
Barış Soner Uşaklı 14d810c113 show error if cropper fails 7 years ago
Barış Soner Uşaklı 742ddd358b escape url 7 years ago
Peter Jaszkowiak 1c35213934 Fix #5970 and forking while debugging (#5965)
* Fix forking while debugging

Debugger address in use no longer happens

* Fix cropper error
8 years ago
Peter Jaszkowiak c91dfb46f6 Switch module t.js usage to Benchpress 8 years ago
Julian Lam 74965654de adjusted cropbox max-height calculation to be dynamic 8 years ago
Julian Lam 3e218a75b8 allowed zooming again @pichalite 8 years ago
Julian Lam 30bec51a21 removed cropper zoom and using image scaling to show entire image. Click on modal backdrop during crop will no longer close modal 8 years ago
Accalia de Elementia 743a7e00b4 fix: auto cropper on image upload selects maximum image area by default 8 years ago
Peter Jaszkowiak dd2b930824 Resolve merge conflicts, minify only `.js` files 8 years ago
pichalite fd0f0beaf2 lint 8 years ago
pichalite a99572fc48 Use ACP profile image dimension setting in cropper 8 years ago
Peter Jaszkowiak 23540afaeb Resolve merge conflicts 8 years ago
Peter Jaszkowiak c18808fdeb ESlint no-useless-concat, no-mixed-spaces-and-tabs 8 years ago
Peter Jaszkowiak daa169c094 ESlint no-unused-expressions 8 years ago
Peter Jaszkowiak 896c8c7343 ESlint object-curly-spacing 8 years ago
Peter Jaszkowiak 1493afee2a ESlint indent 8 years ago
Peter Jaszkowiak a038c66549 ESlint quotes 8 years ago
Peter Jaszkowiak 604358ecc4 ESlint keyword-spacing, no-multi-spaces 8 years ago
Peter Jaszkowiak 277a7fb8b4 ESlint key-spacing, no-trailing-spaces 8 years ago
Peter Jaszkowiak d1101a7fb4 ESlint dot-notation
and func-call-spacing
8 years ago
Peter Jaszkowiak 52f2028206 ESlint no-multiple-empty-lines 8 years ago
Peter Jaszkowiak b09b3aef7f ESlint no-undef, remove global comments 8 years ago
Peter Jaszkowiak bc1d70c126 ESlint comma-dangle 8 years ago
pichalite 8dab8864f6 Add extensions for cropped images 8 years ago
pichalite 2ca8f60e77 Finalize cropper module 8 years ago
pichalite 43f4d9819e Linting 8 years ago
pichalite 484891472e Make cropper in to a module 8 years ago