pass in postData array to getPostReplies which has the indices already
look at the passed in array of posts to find the index of nested replies before calling getPidIndex, most of the time the direct replies are close to the target so they are already in postData array.
only load indices if direct reply count is1
to override bootstrap vars.
dont crash if scss fails to compile, just use empty css and log the error, this allows accessing the acp if client scss has errors
* confirmObj changes
dont expire confirm:<code>, add a expires field instead
dont expire confirm:byUid:<uid>
on admin manage users display the users email status
1. verified
2. verify email sent (pending)
3. verify email sent (expired)
4. no email entered
fix validate email in acp to use
email in user:<uid> if they have one
if not check if its in confirm:<code>
if its not in above cant validate throw error
fix send validate email to use
email in user:<uid> if they have one
if not check if its in confirm:<code>
if its not in above too cant validate throw error
* add back socket.io tests
* test: fix confirm tests
no longer using pexpire
return correct time left on token
* chore: update openapi
* fix: delete call
* test: mget test fixes
* test: fix tests
* acp sidebar
* gap in nav
* remove shadow
* label fixes
* color fixes
* feat: settings page wip
* feat: scroll spy 👓
move social into general, store social in meta.config like other settings
write upgrade script
* remove social
* rermove openapi routes
* cleanup, highlight selected nav item
* more cleanup
* advanced margin top
* derp
* match design
* bring back version alert
fix homepage js, since it moved to general settings
* remove unused tpls
these moved to general settings
* remove more css
* offcanvas for mobile
fix search
* add timeout
* add new props
* manage categories
* small fixes
* category-edit
* feat category page fixes
* add title to settings pages
add user settings page
* small fixes
* some more settings pages
* fix: plugin page titles
* more settings pages
* more padding
* more pages, add acp paginator.tpl
so it doesn't change when active theme changes
* remove placeholder
* dashboard table
* fix: openapi
* fix: controller tests
* use fonts from core
* some small fixes
* fix rep page
* refactor: fix name of upgrade script
* create category modal
group edit
* group/groups pages
* admins mods
* privs
* uploads
* missing margin
* more acp pages
* more pages
* plugins/rewards/widgets
* wrap rewards
* fix widgets
* fix widget clone button
* fix group acp edit link
* update search dropdown
* remove display block from tbody
* use less css
* remove some derp links
* remove striped tables
* remove p tags from lang files
* update email settings
* Update api.tpl
* move tag-whitelist
turns [[notifications:upvoted_your_post_in, test1, Vote *for* NodeBB :ballot_box_with_ballot:]] into <strong>test1</strong> has upvoted your post in <strong>Vote *for* NodeBB :ballot_box_with_ballot:</strong>. so emoji plugin can parse emojis and they don't get escaped by translator client side
The old behaviour would require that an email be entered, but did not block access to the forum (nor did it ensure that the email was verified).
The new behaviour (if the setting is enabled) will ensure that only those users with a confirmed email can continue through.
The only exceptions are super admins (so they don't get locked out).