Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bootstrap5 #10894

Merged
merged 761 commits into from
Mar 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
761 commits
Select commit Hold shift + click to select a range
9288de3
chore: up deps
barisusakli Jan 24, 2023
8f7e283
chore: up composer
barisusakli Jan 25, 2023
eede77c
fix(deps): bump 2factor to v7
julianlam Jan 25, 2023
8a068f1
chore: up harmony
barisusakli Jan 25, 2023
ad2236d
chore: up harmony
barisusakli Jan 25, 2023
df66f71
fix: missing await
barisusakli Jan 25, 2023
3d287c1
feat: allow middlewares to pass in template values via res.locals
julianlam Jan 20, 2023
f2ae458
feat: buildAccountData middleware automatically added ot all account …
julianlam Jan 20, 2023
dee3b0d
fix: properly allow values in res.locals.templateValues to be added t…
julianlam Jan 20, 2023
c115d93
refactor: user/blocks
julianlam Jan 23, 2023
f8eef75
refactor(accounts): categories and consent
julianlam Jan 23, 2023
839d05b
feat: automatically 404 if exposeUid or exposeGroupName come up empty
julianlam Jan 25, 2023
44ea9da
refactor: remove calls to getUserDataByUserSlug for most account rout…
julianlam Jan 25, 2023
3ff12a1
fix: allow exposeUid and exposeGroupName to work with slugs with mixe…
julianlam Jan 25, 2023
3e430d8
fix: move reputation removal check to accountHelpers method
julianlam Jan 25, 2023
42144f0
test: skip i18n tests if ref branch when present is not develop
julianlam Jan 25, 2023
86c20e4
fix(deps): bump theme versions
julianlam Jan 25, 2023
2ee5b5b
fix(deps): bump ntfy and 2factor
julianlam Jan 25, 2023
08ad2e1
chore: up harmony
barisusakli Jan 25, 2023
cc746e2
fix: add missing return
barisusakli Jan 25, 2023
c9b8e34
fix: #11191, only focus on search input on md environments and up
julianlam Jan 25, 2023
b56a772
feat: allow file uploads on mobile chat
barisusakli Jan 26, 2023
96c00f0
chore: up themes
barisusakli Jan 26, 2023
e3aed82
chore: add lang string
barisusakli Jan 26, 2023
72fb61d
fix(deps): bump ntfy to 1.0.15
julianlam Jan 26, 2023
9fa498f
refactor: use new if/each syntax
barisusakli Jan 27, 2023
bb35329
chore: up composer
barisusakli Jan 27, 2023
28771d5
fix: regression from user helper refactor
barisusakli Jan 27, 2023
4a17ce7
chore: up harmony
barisusakli Jan 27, 2023
296b8d4
chore: up composer
barisusakli Jan 27, 2023
2b2a2c5
chore: up harmony
barisusakli Jan 27, 2023
4188d33
chore: up harmony
barisusakli Jan 27, 2023
baee17a
chore: up harmony
barisusakli Jan 27, 2023
5d2a498
chore: fix composer version
barisusakli Jan 27, 2023
f706de3
feat: add increment helper
barisusakli Jan 27, 2023
9942636
chore: up harmony
barisusakli Jan 27, 2023
11add45
fix: #11228 no timestamps in future :hourglass:
barisusakli Jan 27, 2023
d6f13a4
chore: up harmony
barisusakli Jan 27, 2023
651aad8
check config.theme as well
barisusakli Jan 28, 2023
bd1846a
chore: up harmony
barisusakli Jan 28, 2023
947af68
chore: up harmony
barisusakli Jan 28, 2023
6496f50
chore: up harmony
barisusakli Jan 28, 2023
e84ab69
chore: up themes
barisusakli Jan 28, 2023
258a212
chore: up harmony
barisusakli Jan 28, 2023
06a852a
remove extra class
barisusakli Jan 28, 2023
524c403
refactor: move these to core from harmony
barisusakli Jan 29, 2023
d77e74d
chore: up widgets
barisusakli Jan 29, 2023
801c34a
chore: up widgets
barisusakli Jan 29, 2023
c05083e
height auto
barisusakli Jan 29, 2023
825e8fa
fix: closes #11238
barisusakli Jan 29, 2023
0bacc21
dont focus inputs, annoying on mobile
barisusakli Jan 29, 2023
de25455
fix: dont focus twice, only focus on chat input on desktop
barisusakli Jan 29, 2023
0d7f829
chore: up harmony
barisusakli Jan 29, 2023
efd487e
chore: up harmony
barisusakli Jan 29, 2023
b159c52
update chat window
barisusakli Jan 29, 2023
b4fbb49
chore: up themes
barisusakli Jan 29, 2023
bad0eef
fix cache buster for skins
barisusakli Jan 30, 2023
00a0ffd
chat fixes
barisusakli Jan 30, 2023
4498c0d
chore: up harmony
barisusakli Jan 30, 2023
f66505c
chore: up composer
barisusakli Jan 30, 2023
f4e533d
refactor: change hook logs to debug
barisusakli Jan 30, 2023
6ac7eda
fix: scroll to post right after adding to dom
barisusakli Jan 30, 2023
898bc0e
fix: hash scrolling and highlighting correct post
barisusakli Jan 30, 2023
9b06d41
test: re-enable read API schema tests
julianlam Jan 25, 2023
ddda84b
fix: add back schema changes for 179faa2270f2ad955dcc4a7b04755acce59e…
julianlam Jan 25, 2023
aad300d
fix: schema changes from 488f0978a4aa1ca1e4d2a1f2e8c7ef7a681f2f27
julianlam Jan 26, 2023
434472a
fix: schema changes for f4cf482a874701ce80c0f306c49d8788cec66f87
julianlam Jan 26, 2023
e37d99a
fix: schema update for be6bbabd0e2551fbe9571dcf3ee40ad721764543
julianlam Jan 26, 2023
fa7f07d
fix: schema changes for 69c96078ea78ee2c45885a90a6f6a59f9042a33c
julianlam Jan 26, 2023
1e11484
fix: schema changes for d1364c313021e48a879a818b24947e1457c062f7
julianlam Jan 26, 2023
93c4191
fix: schema changes for 84ff1152f7552dd866e25a90972d970b9861107e
julianlam Jan 26, 2023
f9b1422
fix: schema changes for b860c2605c209e0650ef98f4c80d842ea23a51ce
julianlam Jan 26, 2023
11e002c
fix: schema changes for 23cb67a1126481848fac39aafd1e253441e76d7f
julianlam Jan 26, 2023
1f60f7a
fix: schema changes for b916e42f400dac8aa51670b15e439f87f0eb8939
julianlam Jan 27, 2023
46b38e4
fix: schema change for a9bbb586fcb3a1c61b5fb69052236e78cdf7d743
julianlam Jan 27, 2023
90adf7d
fix: schema changes for 4b738c8cd36c936a1dbe2bb900c694bf6c5520ec
julianlam Jan 27, 2023
8e1aab1
fix: schema changes for 58b5781cea9acb129e6604a82ab5a5bfc0d8394d
julianlam Jan 27, 2023
1ea6201
fix: schema changes for 794bf01b21709c4be06584d576d706b3d6342057
julianlam Jan 27, 2023
4dd32bf
fix: schema changes for 80ea12c1c1963f5b39fb64841e4f3c8da3c87af2, e36…
julianlam Jan 27, 2023
1dbe9f5
fix: composer-default object in config?
julianlam Jan 27, 2023
0d2d205
fix: schema changes for 9acdc6808c070555352951c651921df181b10993 and …
julianlam Jan 27, 2023
cef83f7
fix: schema changes for c0a52924f1f7ef8caeaacda67363ac269b56042c
julianlam Jan 27, 2023
a949795
fix: schema change for aba420a3f3b774e949c2539c73f3dc0e1ae79a38, move…
julianlam Jan 27, 2023
768d8d3
fix: schema changes for 8c67031609da30d788561459f8bb76e9a69253de
julianlam Jan 27, 2023
77cf566
fix: schema changes for 27e53b42f3ce48fa61d3754375715cd41ffe808d
julianlam Jan 27, 2023
a2cbd5d
fix: schema changes for 28359665187b0a3b9ec6226dca1234ebdbd725a5
julianlam Jan 27, 2023
bb5d8ea
fix: breaking test for email confirmation API call
julianlam Jan 27, 2023
3db58f5
fix: schema changes for refactored search page
julianlam Jan 27, 2023
2c0ecb0
fix: schema changes for user object
julianlam Jan 27, 2023
2ae3f1e
fix: schema changes for 9f531f957e08eabb4bae844ddd67bde14d9b59f0
julianlam Jan 27, 2023
7535983
fix: schema changes for c4042c70decd628e5b880bd109515b47e4e16164 and …
julianlam Jan 27, 2023
b28947c
fix: schema changes for 9b3616b10392e247974eb0c1e6225a1582bf6c69
julianlam Jan 27, 2023
683a725
fix: schema changes for 5afd5de07d42fd33f039a6f85ded3b4992200e5a
julianlam Jan 27, 2023
f8812fd
fix: schema change for 1d7baf12171cffbd3af8914bef4e6297d1160d49
julianlam Jan 27, 2023
e53f3ae
fix: schema changes for 57bfb37c55a839662144e684875003ab52315ecc and …
julianlam Jan 27, 2023
3df39d4
fix: schema changes for 6e86b4afa20d662af8b9f1c07518df2d8c258105 and …
julianlam Jan 27, 2023
7919d15
fix: allowing optional qs prop in pagination keys (not sure why this …
julianlam Jan 30, 2023
bff1bb6
fix: re-login on email change
julianlam Jan 30, 2023
af579f9
fix: schema changes for c926358d734a2fa410de87f4e4a91744215fc14a
julianlam Jan 30, 2023
625606e
fix: schema changes for 388a8270c9882892bad5c8141f65da8d59eac0fd
julianlam Jan 30, 2023
b9ca942
fix: schema change for 2658bcc821c22e137a6eeb9bb74098856a642eaf
julianlam Jan 30, 2023
1ceb4f1
fix: no need to call account middlewares for chats routes
julianlam Jan 30, 2023
69bfabb
fix: schema changes for 71743affc3e58dc85d4ffa15ce043d4d9ddd3d67
julianlam Jan 30, 2023
1dcb8c2
fix: final schema changes
julianlam Jan 30, 2023
ca6642d
test: support for anyOf and oneOf
julianlam Jan 30, 2023
9a47952
fix: check thumb
barisusakli Jan 30, 2023
0265243
dont scroll to top on back press
barisusakli Jan 30, 2023
259e316
remove group log
barisusakli Jan 30, 2023
586f40b
fix: add top margin to merged and deleted alerts
julianlam Jan 30, 2023
dd58e06
chore: up widgets
barisusakli Jan 31, 2023
f28c25a
Merge branch 'bootstrap5' of https://github.com/NodeBB/NodeBB into bo…
barisusakli Jan 31, 2023
95b2fda
fix: improve fix-lists mixin
julianlam Jan 31, 2023
602beab
chore: up harmony/composer
barisusakli Jan 31, 2023
ae048e1
feat: allow hiding quicksearch results during search
barisusakli Feb 1, 2023
69597d6
dont record searches made by composer
barisusakli Feb 1, 2023
778cbee
chore: up 54
barisusakli Feb 1, 2023
f0c57a3
chore: up spam be gone
barisusakli Feb 1, 2023
000a585
feat: add prev/next page and page count into mobile paginator
barisusakli Feb 1, 2023
f971271
chore: up harmony
barisusakli Feb 1, 2023
fccbbe3
chore: up harmony
barisusakli Feb 1, 2023
8c3818b
use old style for IS
barisusakli Feb 2, 2023
a302d68
Merge branch 'develop' into bootstrap5
julianlam Feb 2, 2023
df54a99
fix: hide entire toolbar row if no posts or not singlePost
julianlam Feb 2, 2023
16679a1
Merge remote-tracking branch 'origin/develop' into bootstrap5
julianlam Feb 2, 2023
8361da7
fix: updated messaging for post-queue template, #11206
julianlam Feb 2, 2023
dfabe7b
fix: btn-sm on post queue back button
julianlam Feb 2, 2023
ae2e0a4
fix: bump harmony, closes #11206
julianlam Feb 2, 2023
055a767
fix: remove unused alert module import
julianlam Feb 3, 2023
aca1c87
fix: bump harmony
julianlam Feb 3, 2023
cd50c03
fix: bump harmony
julianlam Feb 3, 2023
d04cb6f
Merge remote-tracking branch 'origin/develop' into bootstrap5
julianlam Feb 3, 2023
fc4751d
Merge branch 'develop' into bootstrap5
julianlam Feb 3, 2023
92e4a36
chore: up harmony
barisusakli Feb 4, 2023
c6d9cbb
refactor: IS scrolltop
barisusakli Feb 4, 2023
e6f5f2c
fix: update users:search-user-for-chat source string
julianlam Feb 6, 2023
1da13f2
feat: support for mark-read toggle on chats dropdown and recent chats…
julianlam Feb 6, 2023
4a15b4e
feat: api v3 calls to mark chat read/unread
julianlam Feb 6, 2023
f13c4ac
feat: send event:chats.mark socket event on mark read or unread
julianlam Feb 6, 2023
b79627a
refactor: allow frontend to mark chats as unread, use new API v3 rout…
julianlam Feb 6, 2023
fb54c7e
docs: openapi schema updates for chat marking
julianlam Feb 6, 2023
8a0afd8
fix: allow unread state toggling in chats dropdown too
julianlam Feb 6, 2023
cc1d216
fix: issue where repeated openings of the chats dropdown would contin…
julianlam Feb 6, 2023
3e48fb3
fix: debug log
julianlam Feb 6, 2023
cdbfbc9
refactor: move userSearch filter to a module
barisusakli Feb 8, 2023
25c66eb
feat(routes): allow remounting /categories (#11230)
oplik0 Feb 8, 2023
2fde4ae
feat: send flags count to frontend on flags list page
julianlam Feb 8, 2023
1322faa
refactor: filter form client-side js to extract out some logic
julianlam Feb 8, 2023
8a54418
fix: applyFilters to not take any arguments, update selectedCids in u…
julianlam Feb 8, 2023
2da0c46
fix: use userFilter module for assignee, reporterId, targetUid
julianlam Feb 8, 2023
22e92cc
fix(openapi): schema changes for updated flags page
julianlam Feb 8, 2023
d9e245b
fix: dont allow adding duplicates to userFilter
barisusakli Feb 8, 2023
e6c9bdd
use same var
barisusakli Feb 8, 2023
fe710fc
remove log
barisusakli Feb 8, 2023
651925d
fix: closes #11282
barisusakli Feb 9, 2023
6240155
feat: lang key for x-topics
barisusakli Feb 9, 2023
efa87e2
chore: up harmony
barisusakli Feb 9, 2023
9797c14
chore: up emoji
barisusakli Feb 9, 2023
e907344
chore: up harmony
barisusakli Feb 9, 2023
09e1904
fix: update userFilter to allow new option `selectedBlock`
julianlam Feb 9, 2023
9f13ed5
fix: wrong block name passed to userFilter
julianlam Feb 9, 2023
f11e724
fix: https://github.com/NodeBB/NodeBB/issues/11283
barisusakli Feb 9, 2023
b72d185
fix: chats, allow multiple dropdowns like in harmony
barisusakli Feb 10, 2023
52a56ed
chore: up harmony
barisusakli Feb 10, 2023
02359e4
refactor: flag note adding/editing, closes #11285
julianlam Feb 10, 2023
6c8f45a
fix: remove old prepareEdit logic
julianlam Feb 10, 2023
fa044a5
chore: add caveat about hacky code block in userFilter module
julianlam Feb 10, 2023
65886c5
fix: placeholders for userFilter module
julianlam Feb 10, 2023
fc260ae
refactor: navigator so it works with multiple thumbs/navigators
barisusakli Feb 11, 2023
7dcf790
chore: up harmony
barisusakli Feb 11, 2023
4a95129
fix: closes #11287, destroy quick reply autocomplete
barisusakli Feb 12, 2023
d0ad183
fix: filter disabled categories on user categories page count
barisusakli Feb 12, 2023
23593fb
chore: up harmony
barisusakli Feb 12, 2023
b78e22b
docs: update openapi spec to include info about passing in timestamps…
julianlam Feb 13, 2023
9c0d750
Merge branch 'develop' into bootstrap5
julianlam Feb 13, 2023
edbdef6
Merge branch 'develop' into bootstrap5
julianlam Feb 13, 2023
6411bd6
fix: send back null values on ACP search dashboard for startDate and …
julianlam Feb 13, 2023
657ab45
fix: tweak table order in ACP dash searches
julianlam Feb 13, 2023
db5333b
fix: only invoke navigator click drag on left mouse button
julianlam Feb 14, 2023
d2c52d0
feat: add back unread indicator to navigator
julianlam Feb 14, 2023
3216c36
clear bookmark on mark unread
barisusakli Feb 15, 2023
dfbaa1b
fix: navigator crash on ajaxify
julianlam Feb 15, 2023
f2649f4
better thumb top calculation
barisusakli Feb 15, 2023
9bcd85c
fix: reset user bookmark when topic is marked unread
julianlam Feb 15, 2023
317eee9
Revert "fix: reset user bookmark when topic is marked unread"
julianlam Feb 15, 2023
b82a0c7
fix: update unread indicator on scroll, add unread count
julianlam Feb 15, 2023
2d773d5
chore: bump harmony
julianlam Feb 15, 2023
27a15e1
fix: crash on navigator unread update when backing out of a topic
julianlam Feb 15, 2023
11ae661
fix: closes #11183
julianlam Feb 15, 2023
737973c
fix: update topics:recent zset when rescheduling a topic
julianlam Feb 15, 2023
c902846
fix: dupe quote button, increase delay, hide immediately on empty sel…
barisusakli Feb 16, 2023
5f4f45c
fix: navigator not showing up on first load
barisusakli Feb 16, 2023
54505e7
refactor: remove glance
barisusakli Feb 16, 2023
e4446ae
more sanity checks for bookmark
barisusakli Feb 16, 2023
bc23ae8
closes #11218, :train:
barisusakli Feb 16, 2023
d6ed1e0
Revert "fix: update topics:recent zset when rescheduling a topic"
julianlam Feb 16, 2023
0349169
fix: #11306, show proper error if queued post doesn't exist
barisusakli Feb 17, 2023
4b0bfd3
https://github.com/NodeBB/NodeBB/issues/11307
barisusakli Feb 17, 2023
9a0e101
chore: up harmony
barisusakli Feb 17, 2023
7eeadbc
chore: bump version string
julianlam Feb 17, 2023
0141fbf
fix: copy paste fail
barisusakli Feb 18, 2023
9dd9260
feat: closes #7382, tag filtering
barisusakli Feb 18, 2023
9bfd99c
chore: up harmony
barisusakli Feb 18, 2023
65a62a1
chore: up harmony
barisusakli Feb 18, 2023
0e9e9b7
Merge branch 'develop' into bootstrap5
julianlam Feb 22, 2023
66aed3b
Revert "fix: add back req.query fallback for backwards compatibility"…
julianlam Feb 22, 2023
1fbba39
fix: pass csrf token in form data, re: NodeBB/NodeBB#11309
julianlam Feb 23, 2023
ae7da8d
chore: up deps
barisusakli Feb 23, 2023
280b01d
fix: tests, use x-csrf-token query param removed
barisusakli Feb 23, 2023
dd73572
test: fix csrf_token
barisusakli Feb 23, 2023
1f33a48
lint: remove unused
barisusakli Feb 23, 2023
58894ce
Merge branch 'develop' into bootstrap5
julianlam Feb 24, 2023
2fe09f7
Merge branch 'develop' into bootstrap5
julianlam Feb 24, 2023
cc2ea7b
Merge branch 'develop' into bootstrap5
julianlam Feb 24, 2023
1aefbac
feat: add itemprop="image" to avatar helper
julianlam Feb 24, 2023
72afbca
fix: get chat upload button in chat modal
barisusakli Feb 25, 2023
55e4d6a
breaking: remove deprecated socket.io methods
barisusakli Feb 27, 2023
d0b7137
test: update messaging tests to not use sockets
barisusakli Feb 27, 2023
25408a3
fix: parent post links
barisusakli Feb 28, 2023
30d4a6e
fix: prevent post tooltip if mouse leaves before data/tpl is loaded
barisusakli Feb 28, 2023
2b5f96d
chore: up harmony
barisusakli Feb 28, 2023
6cc8d40
chore: up harmony
barisusakli Feb 28, 2023
cb49a76
chore: up harmony
barisusakli Feb 28, 2023
bdb166e
chore: up harmony
barisusakli Feb 28, 2023
5f0304c
fix: nested replies indices
barisusakli Mar 1, 2023
9ad8ef9
fix(deps): bump 2factor
julianlam Mar 1, 2023
d49a88f
feat: add loggedIn user to all api routes
barisusakli Mar 2, 2023
0313336
chore: up themes
barisusakli Mar 2, 2023
979ad55
refactor: audit admin v3 write api routes as per #11321
julianlam Feb 27, 2023
f5bc3e5
refactor: audit category v3 write api routes as per #11321 [breaking]
julianlam Feb 28, 2023
1c70b0b
refactor: audit chat v3 write api routes as per #11321
julianlam Mar 1, 2023
c3ddce3
refactor: audit files v3 write api routes as per #11321
julianlam Mar 1, 2023
175ee0c
refactor: audit flags v3 write api routes as per #11321
julianlam Mar 1, 2023
675d296
refactor: audit posts v3 write api routes as per #11321
julianlam Mar 1, 2023
ad5a548
refactor: audit topics v3 write api routes as per #11321
julianlam Mar 1, 2023
3e646af
refactor: audit users v3 write api routes as per #11321
julianlam Mar 2, 2023
bcdc7fc
fix: lang string
barisusakli Mar 4, 2023
eac746c
Merge branch 'bootstrap5' of https://github.com/NodeBB/NodeBB into bo…
barisusakli Mar 4, 2023
e773c82
remove min height
barisusakli Mar 4, 2023
0c30b6d
fix: empty topic/labels taking up space
barisusakli Mar 5, 2023
97d3fba
fix: tag filtering when changing filter to watched topics
barisusakli Mar 8, 2023
e2f48e5
chore: up harmony
barisusakli Mar 11, 2023
d1b2bbd
fix: closes #11354, show no post error if queued post already accepte…
barisusakli Mar 13, 2023
033d3b2
test: #11354
barisusakli Mar 13, 2023
5df209e
test: #11354
barisusakli Mar 13, 2023
c09faf4
fix(deps): bump 2factor
julianlam Mar 14, 2023
a20c704
fix: #11357 clear cache on thumb remove
barisusakli Mar 14, 2023
7d1037b
fix: thumb remove on windows, closes #11357
barisusakli Mar 14, 2023
937a2a1
test: openapi for thumbs
barisusakli Mar 15, 2023
4dbf0ba
test: fix openapi
barisusakli Mar 15, 2023
8d69c91
Merge branch 'develop' into bootstrap5
barisusakli Mar 17, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 0 additions & 9 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,3 @@ logs/
.eslintrc
test/files
*.min.js

/public/src/app.js
/public/src/client.js
/public/src/admin/admin.js
/public/src/modules/translator.common.js
/public/src/modules/pictureCropper.js
/public/src/modules/ace-editor.js
/public/src/client/account/header.js
/public/src/client/test.js
36 changes: 10 additions & 26 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,9 @@ module.exports = function (grunt) {
}
}

const styleUpdated_Client = pluginList.map(p => `node_modules/${p}/*.less`)
const styleUpdated_Client = pluginList.map(p => `node_modules/${p}/*.scss`)
.concat(pluginList.map(p => `node_modules/${p}/*.css`))
.concat(pluginList.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
.concat(pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.css`));

const styleUpdated_Admin = pluginList.map(p => `node_modules/${p}/*.less`)
.concat(pluginList.map(p => `node_modules/${p}/*.css`))
.concat(pluginList.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
.concat(pluginList.map(p => `node_modules/${p}/+(public|static|scss)/**/*.scss`))
.concat(pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.css`));

const clientUpdated = pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.js`);
Expand All @@ -72,24 +67,15 @@ module.exports = function (grunt) {
const langUpdated = pluginList.map(p => `node_modules/${p}/+(public|static|languages)/**/*.json`);

grunt.config(['watch'], {
styleUpdated_Client: {
styleUpdated: {
files: [
'public/less/**/*.less',
'public/scss/**/*.scss',
...styleUpdated_Client,
],
options: {
interval: 1000,
},
},
styleUpdated_Admin: {
files: [
'public/less/**/*.less',
...styleUpdated_Admin,
],
options: {
interval: 1000,
},
},
clientUpdated: {
files: [
'public/src/**/*.js',
Expand Down Expand Up @@ -167,24 +153,22 @@ module.exports = function (grunt) {
grunt.event.removeAllListeners('watch');
grunt.event.on('watch', (action, filepath, target) => {
let compiling;
if (target === 'styleUpdated_Client') {
compiling = 'clientCSS';
} else if (target === 'styleUpdated_Admin') {
compiling = 'acpCSS';
if (target === 'styleUpdated') {
compiling = ['clientCSS', 'acpCSS'];
} else if (target === 'clientUpdated') {
compiling = 'js';
compiling = ['js'];
} else if (target === 'templatesUpdated') {
compiling = 'tpl';
compiling = ['tpl'];
} else if (target === 'langUpdated') {
compiling = 'lang';
compiling = ['lang'];
} else if (target === 'serverUpdated') {
// empty require cache
const paths = ['./src/meta/build.js', './src/meta/index.js'];
paths.forEach(p => delete require.cache[require.resolve(p)]);
return run();
}

require('./src/meta/build').build([compiling], { webpack: false }, (err) => {
require('./src/meta/build').build(compiling, { webpack: false }, (err) => {
if (err) {
winston.error(err.stack);
}
Expand Down
3 changes: 2 additions & 1 deletion install/data/defaults.json
Original file line number Diff line number Diff line change
Expand Up @@ -182,5 +182,6 @@
"composer:showHelpTab": 1,
"composer:allowPluginHelp": 1,
"maxReconnectionAttempts": 5,
"reconnectionDelay": 1500
"reconnectionDelay": 1500,
"disableCustomUserSkins": 0
}
2 changes: 1 addition & 1 deletion install/data/footer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
"widget": "html",
"data" : {
"html": "<footer id=\"footer\" class=\"container footer\">\r\n\t<div>\r\n\t\tPowered by <a target=\"_blank\" href=\"https://nodebb.org\">NodeBB</a> | <a target=\"_blank\" href=\"//github.com/NodeBB/NodeBB/graphs/contributors\">Contributors</a>\r\n\t</div>\r\n</footer>",
"html": "<footer id=\"footer\" class=\"container footer d-flex flex-column align-items-center gap-1 mb-2\">\n\t<span>Powered by <a class=\"link-secondary text-decoration-underline\" target=\"_blank\" href=\"https://nodebb.org\">NodeBB</a></span>\n\t<span><a class=\"link-secondary\" target=\"_blank\" href=\"//github.com/NodeBB/NodeBB/graphs/contributors\"><i class=\"fa fa-users\"></i> <span class=\"text-decoration-underline\">Contributors<span></a></span>\n</footer>",
"title":"",
"container":""
}
Expand Down
16 changes: 8 additions & 8 deletions install/data/navigation.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"title": "[[global:header.categories]]",
"enabled": true,
"iconClass": "fa-list",
"textClass": "visible-xs-inline",
"textClass": "d-lg-none",
"text": "[[global:header.categories]]"
},
{
Expand All @@ -13,7 +13,7 @@
"title": "[[global:header.unread]]",
"enabled": true,
"iconClass": "fa-inbox",
"textClass": "visible-xs-inline",
"textClass": "d-lg-none",
"text": "[[global:header.unread]]",
"groups": ["registered-users"]
},
Expand All @@ -22,47 +22,47 @@
"title": "[[global:header.recent]]",
"enabled": true,
"iconClass": "fa-clock-o",
"textClass": "visible-xs-inline",
"textClass": "d-lg-none",
"text": "[[global:header.recent]]"
},
{
"route": "/tags",
"title": "[[global:header.tags]]",
"enabled": true,
"iconClass": "fa-tags",
"textClass": "visible-xs-inline",
"textClass": "d-lg-none",
"text": "[[global:header.tags]]"
},
{
"route": "/popular",
"title": "[[global:header.popular]]",
"enabled": true,
"iconClass": "fa-fire",
"textClass": "visible-xs-inline",
"textClass": "d-lg-none",
"text": "[[global:header.popular]]"
},
{
"route": "/users",
"title": "[[global:header.users]]",
"enabled": true,
"iconClass": "fa-user",
"textClass": "visible-xs-inline",
"textClass": "d-lg-none",
"text": "[[global:header.users]]"
},
{
"route": "/groups",
"title": "[[global:header.groups]]",
"enabled": true,
"iconClass": "fa-group",
"textClass": "visible-xs-inline",
"textClass": "d-lg-none",
"text": "[[global:header.groups]]"
},
{
"route": "/admin",
"title": "[[global:header.admin]]",
"enabled": true,
"iconClass": "fa-cogs",
"textClass": "visible-xs-inline",
"textClass": "d-lg-none",
"text": "[[global:header.admin]]",
"groups": ["administrators"]
}
Expand Down
49 changes: 25 additions & 24 deletions install/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "2.8.6",
"homepage": "http://www.nodebb.org",
"version": "3.0.0-beta.2",
"homepage": "https://www.nodebb.org",
"repository": {
"type": "git",
"url": "https://github.com/NodeBB/NodeBB/"
Expand All @@ -30,15 +30,17 @@
"dependencies": {
"@adactive/bootstrap-tagsinput": "0.8.2",
"@isaacs/ttlcache": "1.2.1",
"@popperjs/core": "2.11.6",
"ace-builds": "1.15.3",
"archiver": "5.3.1",
"async": "3.2.4",
"autoprefixer": "10.4.14",
"bcryptjs": "2.4.3",
"benchpressjs": "2.5.1",
"body-parser": "1.20.2",
"bootbox": "5.5.3",
"bootstrap": "3.4.1",
"bootbox": "6.0.0",
"bootstrap": "5.2.3",
"bootswatch": "5.2.3",
"chalk": "4.1.2",
"chart.js": "2.9.4",
"cli-graph": "3.2.2",
Expand Down Expand Up @@ -87,22 +89,22 @@
"morgan": "1.10.0",
"mousetrap": "1.6.5",
"multiparty": "4.2.3",
"@nodebb/bootswatch": "3.4.2",
"nconf": "0.12.0",
"nodebb-plugin-2factor": "5.1.3",
"nodebb-plugin-composer-default": "9.2.5",
"nodebb-plugin-dbsearch": "5.1.5",
"nodebb-plugin-emoji": "4.0.6",
"nodebb-plugin-emoji-android": "3.0.0",
"nodebb-plugin-markdown": "10.1.1",
"nodebb-plugin-mentions": "3.0.13",
"nodebb-plugin-spam-be-gone": "1.0.3",
"nodebb-plugin-2factor": "7.0.4",
"nodebb-plugin-composer-default": "10.0.42",
"nodebb-plugin-dbsearch": "6.0.0",
"nodebb-plugin-emoji": "5.0.5",
"nodebb-plugin-emoji-android": "4.0.0",
"nodebb-plugin-markdown": "12.0.2",
"nodebb-plugin-mentions": "4.0.4",
"nodebb-plugin-ntfy": "1.0.15",
"nodebb-plugin-spam-be-gone": "2.0.5",
"nodebb-rewards-essentials": "0.2.2",
"nodebb-theme-lavender": "6.0.1",
"nodebb-theme-persona": "12.1.16",
"nodebb-theme-slick": "2.0.4",
"nodebb-theme-vanilla": "12.1.20",
"nodebb-widget-essentials": "6.0.1",
"nodebb-theme-harmony": "1.0.0-beta.77",
"nodebb-theme-lavender": "7.0.9",
"nodebb-theme-peace": "2.0.19",
"nodebb-theme-persona": "13.0.50",
"nodebb-widget-essentials": "7.0.6",
"nodemailer": "6.9.1",
"nprogress": "0.2.0",
"passport": "0.6.0",
Expand All @@ -119,7 +121,9 @@
"request-promise-native": "1.0.9",
"rimraf": "3.0.2",
"rss": "1.2.2",
"rtlcss": "4.0.0",
"sanitize-html": "2.10.0",
"sass": "1.54.9",
"semver": "7.3.8",
"serve-favicon": "2.5.0",
"sharp": "0.31.3",
Expand All @@ -137,7 +141,6 @@
"timeago": "1.6.7",
"tinycon": "0.6.8",
"toobusy-js": "0.5.1",
"uglify-es": "3.3.9",
"validator": "13.9.0",
"webpack": "5.76.1",
"webpack-merge": "5.8.0",
Expand Down Expand Up @@ -166,6 +169,9 @@
"nyc": "15.1.0",
"smtp-server": "3.11.0"
},
"optionalDependencies": {
"sass-embedded": "1.55.0"
},
"resolutions": {
"*/jquery": "3.6.4"
},
Expand All @@ -176,11 +182,6 @@
"node": ">=12"
},
"maintainers": [
{
"name": "Andrew Rodrigues",
"email": "andrew@nodebb.org",
"url": "https://github.com/psychobunny"
},
{
"name": "Julian Lam",
"email": "julian@nodebb.org",
Expand Down
25 changes: 15 additions & 10 deletions install/web.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ const bodyParser = require('body-parser');
const fs = require('fs');
const path = require('path');
const childProcess = require('child_process');
const less = require('less');

const webpack = require('webpack');
const nconf = require('nconf');

const Benchpress = require('benchpressjs');
const mkdirp = require('mkdirp');
const { paths } = require('../src/constants');
const sass = require('../src/utils').getSass();

const app = express();
let server;
Expand Down Expand Up @@ -73,7 +73,7 @@ web.install = async function (port) {
try {
await Promise.all([
compileTemplate(),
compileLess(),
compileSass(),
runWebpack(),
copyCSS(),
loadDefaults(),
Expand Down Expand Up @@ -247,23 +247,28 @@ async function compileTemplate() {
]);
}

async function compileLess() {
async function compileSass() {
try {
const installSrc = path.join(__dirname, '../public/less/install.less');
const installSrc = path.join(__dirname, '../public/scss/install.scss');
const style = await fs.promises.readFile(installSrc);
const css = await less.render(String(style), { filename: path.resolve(installSrc) });
await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), css.css);
const scssOutput = sass.compileString(String(style), {
loadPaths: [
path.join(__dirname, '../public/scss'),
],
});

await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), scssOutput.css.toString());
} catch (err) {
winston.error(`Unable to compile LESS: \n${err.stack}`);
winston.error(`Unable to compile SASS: \n${err.stack}`);
throw err;
}
}

async function copyCSS() {
const src = await fs.promises.readFile(
path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'), 'utf8'
await fs.promises.copyFile(
path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'),
path.join(__dirname, '../public/bootstrap.min.css'),
);
await fs.promises.writeFile(path.join(__dirname, '../public/bootstrap.min.css'), src);
}

async function loadDefaults() {
Expand Down
2 changes: 0 additions & 2 deletions public/language/en-GB/admin/admin.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

"acp-title": "%1 | NodeBB Admin Control Panel",
"settings-header-contents": "Contents",
"changes-saved": "Changes Saved",
"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
"changes-not-saved": "Changes Not Saved",
"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
}
6 changes: 3 additions & 3 deletions public/language/en-GB/admin/appearance/customise.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"custom-css": "Custom CSS/LESS",
"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
"custom-css.enable": "Enable Custom CSS/LESS",
"custom-css": "Custom CSS/SASS",
"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
"custom-css.enable": "Enable Custom CSS/SASS",

"custom-js": "Custom Javascript",
"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
Expand Down
6 changes: 3 additions & 3 deletions public/language/en-GB/admin/extend/widgets.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
"containers.none": "None",
"container.well": "Well",
"container.jumbotron": "Jumbotron",
"container.panel": "Panel",
"container.panel-header": "Panel Header",
"container.panel-body": "Panel Body",
"container.card": "Card",
"container.card-header": "Card Header",
"container.card-body": "Card Body",
"container.alert": "Alert",

"alert.confirm-delete": "Are you sure you wish to delete this widget?",
Expand Down
3 changes: 1 addition & 2 deletions public/language/en-GB/admin/manage/groups.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,5 @@
"revert": "Revert",

"edit.no-users-found": "No Users Found",
"edit.confirm-remove-user": "Are you sure you want to remove this user?",
"edit.save-success": "Changes saved!"
"edit.confirm-remove-user": "Are you sure you want to remove this user?"
}
1 change: 0 additions & 1 deletion public/language/en-GB/admin/manage/privileges.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
"alert.confirm-save": "Please confirm your intention to save these privileges",
"alert.saved": "Privilege changes saved and applied",
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
"alert.discarded": "Privilege changes discarded",
"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
Expand Down