49 Commits (b2da02d6767884b60244f81a63f4e9107ce07c81)

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ı 7c946570d5 feat: on online users page override timeago cutoff to 24 hours 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
Barış Soner Uşaklı e06c1bfcd2 fix: escape config.userLang/acpLang, don't allow invalid language codes 5 years ago
Barış Soner Uşaklı 3887fc678b fix: #7824, update timeago settings on userlanguage change 6 years ago
Julian Lam 289dada5f7 fix(deps): update to eslint@6 6 years ago
Barış Soner Uşaklı 43e7cc0afb fix: shorter function 6 years ago
Barış Soner Uşaklı 2da0a65765 fix: #7162 6 years ago
Barış Soner Uşaklı dc670a7bb5 closes #6983
after first pass of timeago, title contains "21 lis 2018, 10:30" which is invalid for new Date(), check before passing it to format
7 years ago
Baris Usakli c343b93a37 optimize ajaxify
- do not call $.timeago twice on topic load and for widgets
- do not use toLocaleString for each timeago string, use a single
Intl.DateTimeFormat instance instead
- do not call format for empty timeago strings, ie a post that isnt
edited doesnt have a timeago string
- do not call isTouchDevice for every element
- remove app.replaceSelfLinks, this is superceded with /me route
- store references to jquery objects in navigator instead of creating
them on every scroll
7 years ago
psychobunny 76a2b4800b add back timeago.allowFuture so we can notify when a ban will expire 8 years ago
Barış Soner Uşaklı 670a5d9ca0 fix timestamp not showing for replies, remove allowFuture @julianlam 8 years ago
Peter Jaszkowiak b227297ef3 ESlint no-use-before-define 8 years ago
Peter Jaszkowiak a0a50677da ESlint n-loop-func, yoda 8 years ago
Peter Jaszkowiak 64a6322002 ESlint no-extra-boolean-cast
and no-shadow-restricted-names
8 years ago
Peter Jaszkowiak 896c8c7343 ESlint object-curly-spacing 8 years ago
Peter Jaszkowiak 3b0dd2d1ef ESlint padded-blocks 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 34e233fe1d ESlint spaced-comment 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
Julian Lam d77f417cf3 allowing timeago timestamps to be in the future 8 years ago
Peter Jaszkowiak 0b4c39338e Translation bootbox wrapper
- Replaced minfied bootbox file with unminified one since it's minified at build anyways
- Removed existing override
- Made translator more verbose in dev mode; it now warns about missing translations
8 years ago
barisusakli 4cb48c46ab closes #5242 9 years ago
Julian Lam d28f7de19e fixes #5228 9 years ago
Julian Lam 0f93206122 lint 9 years ago
Julian Lam 7d523fae0f closes #5200 9 years ago
Julian Lam 885316d78f also show minutes and hours in cut off timestamp 9 years ago
Julian Lam 75ff60e4d5 partial revert of a9984bb, adding in a layer to translate ISO
timestamp to datetime attribute and save localised string into
title attribute.

Fixes #5109
9 years ago
barisusakli a9984bb926 closes #5108 9 years ago
Sergii Paryzhskyi e515b791da Fix eslint rules (#5117)
* Fix semi linter rule

* Fix semi-spacing linter rule

* Fix no-undef-init linter rule

* Fix space-before-blocks linter rule
9 years ago
HeeL 4a3c31b2dc Fix space-before-function-paren linter rule 9 years ago
HeeL 9a0d764bbd Fix wrap-iife linter rule 9 years ago
barisusakli 5983235875 .translateAttr 9 years ago
Julian Lam ff8fb0e9ab no need to set var, just use rjs 9 years ago
Manuel Valle a60e3c63cf Update overrides.js
Inside **translate** function, **translator** refers to *global* genereting warnings. Added a **translator** variable refering to **translator** module.
This solves some problems using *bootbox* in my plugins and widgets
9 years ago
Julian Lam dc916c5e3c closes #3817 10 years ago
barisusakli fbfb39f967 moved socket connection out of app.js 10 years ago
Peter Jaszkowiak ad7b561dd4 Fixed translator backwards compatibility issue
Also removed the _clearMenus global object because populating the global namespace is bad, bad, bad
10 years ago
Julian Lam 47a7ab15be refactored translator system to be a require.js module, and not a global 10 years ago
psychobunny 32ce785e5a somebody was trying to save trees by reducing whitespace
burn the trees
10 years ago
psychobunny 540facaaab try #2 (I give up, grunt-watch seems so unpredictable... on windows anyways) 10 years ago
barisusakli c5ccf4333b translate helpers 11 years ago
psychobunny 4cd86affae update all files with new url 11 years ago
Micheil Smith 3e82cab398 Add missing new lines at end of files. 11 years ago
barisusakli 1664d179b9 closes #1245 11 years ago
akhoury b59c10a1e9 took out some overrides out utils to a new overrides.js 11 years ago