152 Commits (e45a6de24ba6d61bdd6d4a4f72e928ca522be0be)

Author SHA1 Message Date
Julian Lam 17d0b40efa fix: stop topic navigation hotkeys from firing if in a mousetrap-enabled form element 2 years ago
Julian Lam aeb94c32b9 feat: j and k hotkeys in topic to navigate through it quickly 3 years ago
Julian Lam 5b9de0e521 fix: be tidier and explicitly clean up ctrl-f hotkey on topic page 3 years ago
Julian Lam 3dd3cd8297 fix: add dropup handler to thread tools menu, updated how post tools menu adds dropup handler 3 years ago
Barış Soner Uşaklı a2d0cd162d
refactor: remove console.log 3 years ago
Barış Soner Uşaklı 0a6900fc77 feat: don't show signatures again in pagination mode in same topic 3 years ago
Barış Soner Uşaklı aba420a3f3 feat: setting to show signatures only once in topics, closes #10071 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
Barış Soner Uşaklı a115b771f0 fix: #10096, don't display preview for links if hostname doesnt match 3 years ago
Barış Soner Uşaklı a9f81215cf fix: only render preview on topic page 3 years ago
Barış Soner Uşaklı 621c142f8e refactor: alerts 3 years ago
Barış Soner Uşaklı cba78aee16 refactor: use alerts.error/success 3 years ago
Barış Soner Uşaklı 1980feed46 refactor: use alerts module 3 years ago
Barış Soner Uşaklı 1a9b15989b refactor: move search functions from app.js to search module
deprecate:
app.handleSearch, use search.init(options) instead
app.enableTopicSearch, use search.enableQuickSearch(options) instead
app.prepareSearch, use search.showAndFocusInput() instead
3 years ago
Barış Soner Uşaklı 41e0240010 fix: dont show previews on mobile 3 years ago
Barış Soner Uşaklı f728abda06 fix: remove tooltip on ajaxify 3 years ago
Barış Soner Uşaklı 9fbb3b11ef perf: only load posts once 3 years ago
Barış Soner Uşaklı 5a0efd2d42 fix: don't use # for previews 3 years ago
Barış Soner Uşaklı 8c67031609 feat: show posts previews if enabled on mouse over 3 years ago
Barış Soner Uşaklı e8c17feedb refactor: use utils.debounce 3 years ago
Barış Soner Uşaklı 50b2ebf844 fix: remove unused code 3 years ago
Julian Lam 5a328485dd Revert "fix: only show email confirmation warning toast on pages that it applies"
This reverts commit 1bd1cc74a4.
3 years ago
Barış Soner Uşaklı 64192731a0 refactor: use search api for topic search 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
Julian Lam 1bd1cc74a4 fix: only show email confirmation warning toast on pages that it applies 4 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
Julian Lam 09bac6bd7e fix: convert some hooks to use hooks module
re: julianlam/nodebb-plugin-markdown#130
4 years ago
Peter Jaszkowiak cc9d6fd08b chore: eslint max-len 4 years ago
Barış Soner Uşaklı 6669496dba
Navigator (#9049)
* feat: navigator changes

* fix: remove extra code

* feat: add lang keys
4 years ago
Barış Soner Uşaklı 1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147 4 years ago
Barış Soner Uşaklı 9082062e90 fix: sort setting not using correct field name 4 years ago
Julian Lam c26f2b6599 feat(writeapi): user settings API 5 years ago
Barış Soner Uşaklı 7148be2fd1 feat: allow passing in container to threadTools 5 years ago
Barış Soner Uşaklı 19c448612d feat: remove global RELATIVE_PATH 5 years ago
Barış Soner Uşaklı 79e847d424 fix: #8558, only navigate if user is in same topic 5 years ago
Barış Soner Uşaklı 519e665939 fix: #8538, go to first unread instead of last read 5 years ago
Barış Soner Uşaklı 50703db879 fix: #8363, dont break history 5 years ago
Barış Soner Uşaklı 0c265a41d4 fix: #8363, go to hash when entering topic 5 years ago
Julian Lam f2c725c658 fix: topic search shortcut for macs 5 years ago
Barış Soner Uşaklı 6e5de39ba0 fix: also fix updating bookmark if sorting is newest_to_oldest 5 years ago
Barış Soner Uşaklı bd640a1107
Topic await errors (#7727)
* feat: derp await

* feat: restore user.getSettings

* feat: cleanup

* feat: make tid const

* feat: cleanup

* fix: tests

* feat: deprecate filter:controllers.topic.get

* feat: rewrite post-index logic

* feat: change calculation to match others

* fix: use .async

* feat: remove try/catch wrapper
6 years ago
Julian Lam 98c14e0e68 fix: removal of scroll anchoring code in favour of browser handling
closes #6150
6 years ago
Barış Soner Uşaklı 1ce15e69ab dont require search and moustrap on topic page until needed 6 years ago
Barış Soner Uşaklı c02d584b53 reduce initial js payload/requests 6 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
6 years ago
Julian Lam c95ad2c46a closes nodebb/nodebb-theme-persona#339 7 years ago
Ben Lubar 00776bdd8e Bookmark optimization (#6315)
* Set the user's bookmark if their current bookmark is past the end of the topic.

* Optimize forked topic bookmark updating.

Remove support for updating bookmarks for users who sort by votes.

Don't even consider updating bookmarks for users who have not read the posts being removed.

Only compute post indices once per fork operation instead of once per user that has ever read the topic.
7 years ago
Barış Soner Uşaklı 96084340ad closes #6186 7 years ago
Barış Soner Uşaklı 548ec6baf7 closes #6144 7 years ago
Baris Usakli 9dee81b37f closes #5830 8 years ago