443 Commits (0debc51b8fe7a55a02f1120bbc2ba2c2b243b57f)

Author SHA1 Message Date
Julian Lam 165b804d64 refactor: rewrite ajaxify.parseData in vanilla 3 years ago
Barış Soner Uşaklı 48564cfa86 fix: #10675, don't ajaxify to /assets/ urls 3 years ago
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
Julian Lam 935704a83c feat: collect hook logs in order to reduce console noise, flush on ajaxify loadScript completion 3 years ago
Julian Lam c83987bd20 fix: don't append to history on refresh or ajaxify to same url 3 years ago
Barış Soner Uşaklı 58b5781cea feat: closes #10296
asset_base_url in nconf
keep assetBaseUrl in config for backwards compat
3 years ago
Julian Lam 578145acd6 fix: bug where page wouldn't complete loading if data.scripts was emptied 3 years ago
Barış Soner Uşaklı a75a043b61 feat: allow % in tags, #10135 3 years ago
Barış Soner Uşaklı cba78aee16 refactor: use alerts.error/success 3 years ago
Barış Soner Uşaklı fb363957d1 refactor: tab rules 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
3 years ago
gasoved 227456fb17
fix: no global bootbox (#9879)
* fix: require bootbox (easy ones)

* fix: require bootbox (ugly ones)

* fix(eslint): a lengthy line
3 years ago
Barış Soner Uşaklı 4f9717fb08 fix: escape thumbs, allow robots meta tag 3 years ago
Anton Grigoryev 342503e07a
Feat: Client-side hooks - replace window.trigger (#9679)
* feat/clientside-hooks: replace window.trigger with hooks.fire

* feat(clientside-hooks): Move hooks require to the top

* fix: simplifying complex logical expression

* fix: client-side hook for translator - post-review fixes
4 years ago
Barış Soner Uşaklı 561ce7d30a fix: #9629, translate content property of meta tags 4 years ago
Julian Lam db48b9527d fix: #9519 unable to properly ajaxify to home on subfolder installs if anchor did not have a trailing slash 4 years ago
Barış Soner Uşaklı 1af34b43e3 fix: #9474, load hooks on page load 4 years ago
Barış Soner Uşaklı 536591f842 fix: #9447, include query params in previousUrl 4 years ago
Julian Lam d1685600d3 refactor: deprecate action:script.load, use filter:script.load instead 4 years ago
Julian Lam d0136074b6 feat: allow hook unregistration, and temporary page-based hooks
Temporary hooks automatically unregister themselves on the next ajaxify, making them perfect for in-page events.
4 years ago
Peter Jaszkowiak cc9d6fd08b chore: eslint max-len 4 years ago
Peter Jaszkowiak 9f6a682ca9 chore: eslint no-script-url 4 years ago
Julian Lam f8bf9e99c4 fix: pass module name to `static:script.init`, +comments
I feel it is difficult to know exactly what the original use-cases were for these hooks, so some comments may be helpful.
4 years ago
Barış Soner Uşaklı 05be1c6603 feat: restore action:script.load, allow modifying loaded module via static:script.init 4 years ago
Julian Lam 8b09292e77 chore: add deprecation notice in comments for ajaxify.loadExtraScripts 4 years ago
Julian Lam 7da1b43f2b fix: script failure if client-side page script does not exist 4 years ago
Julian Lam faf5960373 fix: bug where `action:ajaxify.end` was never called if there were no init scripts 4 years ago
Julian Lam 8e5687a4af refactor(hooks): deprecate `action:script.load` client-side hook
Use `static:script.init` instead.
4 years ago
Julian Lam 1d77572117 feat(hooks): update action:ajaxify.end to use new hooks module 4 years ago
Julian Lam e5edbc6faf feat: automatically attempt socket.io reconnection on ajaxify
Also, updated messaging and toaster to accurately reflect offline-mode state
4 years ago
Barış Soner Uşaklı c1ecfd1ebf feat: #9135, don't try to reconnect forever 4 years ago
Barış Soner Uşaklı 5d00b0895b fix: sso redirect on /login & /api/login 4 years ago
Barış Soner Uşaklı 698718f87c feat: allow modifiying browser title on ajaxify 4 years ago
Barış Soner Uşaklı 73746bb489 refactor: remove old hack 4 years ago
Barış Soner Uşaklı 6f68f4d20a fix: #9032, fix login redirect for sso plugins 4 years ago
Barış Soner Uşaklı 5ceda14874 Revert "fix: #8955, popstate to purged topic should go to homepage"
This reverts commit 39dae0aaff.
4 years ago
Julian Lam 39dae0aaff fix: #8955, popstate to purged topic should go to homepage 4 years ago
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
4 years ago
Peter Jaszkowiak e128264b66
refactor: change Benchpress.parse to .render (#8856)
It has been deprecated with no warning message for a while
Changing these over before enabling the warning message to reduce spam
4 years ago
Barış Soner Uşaklı c107649b40 fix: #8732 4 years ago
Barış Soner Uşaklı 6669b23d9a feat: single href 4 years ago
Barış Soner Uşaklı 5002e0f62c feat: refactor app.js 5 years ago
Barış Soner Uşaklı 3cd3b7a172 feat: remove app.template 5 years ago
Barış Soner Uşaklı 630bac2aa5 feat: remove global window.templates 5 years ago
Barış Soner Uşaklı 94da9fe55e feat: add partials/footer/js.tpl
add ajaxify.coldLoad which gets called from partials/footer/js.tpl
5 years ago
Julian Lam 9adaccd036 feat: +assetBaseUrl, -l10BaseUrl, -requireBaseUrl
Additional base URLs were necessary for benchpress and translator,
and in order to not clutter the API response with needless one-
time use base URLs, I decided to use a single base that is used
by all of the services, assetBaseUrl.
5 years ago
Baris Usakli 9f78bd7a12 fix: sitemap ajaxify 6 years ago
Julian Lam 289dada5f7 fix(deps): update to eslint@6 6 years ago
Julian Lam a97e97b9c3 fix: incorrect pathname format for app.previousUrl 6 years ago
Julian Lam 7e5cb72a59 fix: #7618 save pathname into app.previousUrl ins. of entire url 6 years ago