Commit Graph

1297 Commits (1ed62aa82f000ab357934f0429dcccf0df5749a6)

Author SHA1 Message Date
cryptoethic b3ed26ac2c
feat: revoke user sessions above threshold ()
* feat: revoke user sessions above threshold

* fix: removed translations from en-US

* fix: defined default maxUserSessions in install\data\defaults.json
Julian Lam 2ec838fc59 feat(writeapi): token generation/delete routes, ACP updates
Julian Lam 5fc7e7bfd0 feat: add new api page to ACP menu
Julian Lam 49652e6f1b feat: management of API tokens via ACP
Julian Lam d8879d21db fix: error handling with POST /api/v1/users
Barış Soner Uşaklı 2ea9768e00 fix: show disabled categories in admin&mods
Barış Soner Uşaklı e60357d20d
feat: , add top/popular sections to digest email ()
psychobunny 5441651ea7 fix: update "install plugins" link to go to the download tab
psychobunny 14ba1a6dbb feat: analytics:maxCache setting in ACP
I removed a TODO from core. Watch your head as flying pigs are abound
psychobunny 9c5b690799 feat: up recommended size to 512x512 + ACP labels for PWA
psychobunny 6478b32d0e feat: upload maskable icon for PWA
Julian Lam b12e8d6312 feat: show top 5 trending plugins in new tab in Extend > Plugins
psychobunny 5b427a0c3b feat: option in ACP to configure notification/email delay for chats
Julian Lam 43571bac38 feat: hotkey "/" to open ACP search
Barış Soner Uşaklı a78e1df965 fix: use text-right
Barış Soner Uşaklı 5a40d26b44 feat: , new move posts modal
Barış Soner Uşaklı a34b685c65 fix: remove lang keys, remove sounds menu
Barış Soner Uşaklı 5f10d67db5
Remove sounds ()
* feat: remove sounds

* feat: remove more sounds

* feat: disable sounds plugin

* fix: openapi
Barış Soner Uşaklı 4bace773f9 fix: wider widget area
Barış Soner Uşaklı 19c448612d feat: remove global RELATIVE_PATH
Barış Soner Uşaklı 46ab2711d4 fix: , add CSP frame-ancestors
psychobunny a38784f567 fix: additional commit for CF rocket loader
psychobunny 4d6659553b feat: allow nbb to work with cloudflare rocket loader 🚀
Barış Soner Uşaklı 94da9fe55e feat: add partials/footer/js.tpl
add ajaxify.coldLoad which gets called from partials/footer/js.tpl
Julian Lam 56101ae5ae fix: ip-blacklist not working after
Kyle Farris 2b785628e7
fix: removed invalid options for the sendmail transport ()
* Removed invalid options for the sendmail transport that were causing Nodemailer to return the SMTPTransport instead.

* Removed options for rate limiting in admin email interface. Added new option for toggling whether to use pooled connections.
Julian Lam b6b94a56dc refactor: moved ip-blacklist and post-queue styles/tpls to themes
This is a breaking change!, re: 
Julian Lam 4b0cb26b34 fix: empty "manage" menu showing in ACP
... if no privileges corresponding to those menu items
are given
Julian Lam cc2686057c fix: hide nodebb version in ACP for non-superadmins
Julian Lam 334be11382 fix: no-widgets messaging in ACP + copy
Barış Soner Uşaklı 35a538ec2a feat: allow adding multiple users to group
Julian Lam a716a5529c
feat: more discrete commit-on-save instead of commit-on-change w/ confirm modals ()
* feat: privileges save button, , WIP

* fix: disable firefox autocomplete on privilege form fields

* feat: closes  privilege changes commit on save

- new language strings for confirmation and success modals/toasts
- indeterminate privilege handling (/cc @psychobunny)
- added new discard button
- both discard and save buttons now have confirmation dialogs

* fix(tests): remove duplicate template helper test

* fix(tests): broken template helper test

* feat: confirm dialogs for all privilege copy actions

Also, ability to add user to a privilege table without needing
to refresh the privilege table.

* feat: group row addition w/o table refresh

breaking: helpers.getUserPrivileges and helpers.getGroupPrivileges
no longer make socket calls to the following hooks:

- filter:privileges.list, filter:privileges.admin.list,
  filter:privileges.global.list, filter:privileges.groups.list,
  filter:privileges.admin.groups.list,
  filter:privileges.gloval.groups.list

The filters are still called, but done before the helper method
is called, and the results are passed in instead. This change
should only affect you if you directly call the helper methods,
otherwise the change is transparent.

* fix: stale ajaxify data on privilege category switch

* fix: implicit privileges not showing for user privs

* fix: groups, not group, also fix tests

* fix(tests): again

* fix: wrong tpl rendered when adding group to global priv table
Barış Soner Uşaklı e7a502e0aa feat: add ability to search groups in group details page
Barış Soner Uşaklı 9e80a9efdd fix: , dont show modal on search
Barış Soner Uşaklı fb7bb8d400 feat: use category selector in category page
fix privilege shortcuts in group page after search
Barış Soner Uşaklı 560f3eb173 feat: css fixes
Barış Soner Uşaklı 91411cc47c feat: add privileges shortcut to groups list
fix issues with escape group names
Barış Soner Uşaklı 9f346c53ab fix: language string
Barış Soner Uşaklı bbc7737e14 feat: ability to clear cache from acp
Barış Soner Uşaklı 2dfe9d49f4 fix: acp view category button if category is a link
Barış Soner Uşaklı fd4c3cda42 fix: , remove new notif alert
Julian Lam 8473e165a6 fix: too small sortable handle for ACP>Manage>Categories
The handle was initially just the icon, but now it is the icon
and the category label itself.
Barış Soner Uşaklı 24535a62e7 feat: make category tools in acp a dropdown
add view category, view privileges into dropdown
psychobunny a6ae69737b Merge branch 'master' of https://github.com/NodeBB/NodeBB
psychobunny 2c83278f97 feat: quick access dropdown on groups page to access privileges page
Barış Soner Uşaklı 844f2b4ed0 feat: , allow editing category of queued topic
Barış Soner Uşaklı 23a9a334cd feat: short more info
Barış Soner Uşaklı 2485a55092 feat: , allow editing title before posting from queue
Barış Soner Uşaklı 1e7397b1b8 feat: allow searching categories in ACP
psychobunny 06143ca7d7 feat: added quick link to edit privileges on the category edit page
Julian Lam e3e55f25d0 refactor: flag sanity checks, +feat: flag limits
- Added new config flag:limitPerTarget, to disallow flags after an item has
  already been flagged x times (default 0, or infinite)
- New zset flags:byTarget, score is the number of times a flag has been made
  against that item
- "already-flagged" translation key removed, now "post-already-flagged" or
  "user-already-flagged" -- this fixed bug where flagging a user you've already
  flagged would tell you you've already flagged this post already.
- Refactored Flags.canFlag to throw errors only, instead of returning boolean
- Updated ACP form inputs for reputation settings page to be more bootstrappy
- +1 upgrade script
Barış Soner Uşaklı 00d39fb32c feat: , export groups members as csv
Barış Soner Uşaklı b3a88331bf fix:
Barış Soner Uşaklı 3dcf538773 feat: , allow wildcard search for uid/email
Barış Soner Uşaklı c513b88dff feat: , daily downvote limits
Barış Soner Uşaklı e09ab3dc19 feat: closes , allow configuring max topic count
Barış Soner Uşaklı bffb830d87 feat: add missing translation key
Barış Soner Uşaklı c718b7293e feat: , min/max tags per category
Julian Lam 35a06a8419 feat: breadcrumbs for ip-blacklist/post queue/flags
Barış Soner Uşaklı 8627bee541 fix: , use backgroundImage everywhere
Julian Lam daeceb45bd fix: missing space in ACP menu dropdown
Julian Lam 67aca822e6 feat: account content deletion, closes
Julian Lam a82e9bd7f6
feat: privileges for Admin Control Panel ()
* feat: acp privileges (WIP)

* fix: restore global privilege hooks

* refactor: using cid 0 in admin privs

* fix: no need for zebrastripe-reset

* feat: manage:categories privilege WIP

* feat: renamed prefix to admin:, settigns and dashboard privs

* fix: nofocus on acp privs group find modal

* refactor: privileges.x.get() to not used hardcoded privs

* fix: crash if unable to get latest version

* feat: setting acp priv

* Revert "fix: crash if unable to get latest version"

This reverts commit afdb235f48eb0072d88de45f3a1e0151281095b3.

* feat: user/privilege acp privs

* fix: category selector in manage/privileges

* fix: guests potentially becoming admins

* fix: bug in setting admin privs

* fix: some last minute things + api docs

* fix: some more last minute fixes
Barış Soner Uşaklı 30cc83c033 fix: , revert event delete
Julian Lam 260a482caa fix: remove duplicate link to manage/tags in settings/tags
Julian Lam 0633ad3277 fix: acp menu items
- Shuffled items in settings
- Moved post-queue and ip-blacklist to front-end
- Removed Settings > Sockets, merged with Settings > Advanced
Julian Lam a83f4259e8 fix: re-jigged tags acp pages
Julian Lam a51fff8bd1
refactor: remove general menu from ACP ()
* refactor: remove general menu from ACP

* fix: incorrect translation keys, fixed tests
Julian Lam 6f504c4142
Remove allowFileUploads ACP option ()
* feat: allow awaitable upgrade scripts

* feat: allowFileUploads removal upgrade script

* refactor: remove unnecessary ACP option `allowFileUploads`

* fix: updated upgrade script template to not use callback arg

* fix: upgrade script as per @baris

* fix: add missing await

* fix: add missing await
Barış Soner Uşaklı e80b81010c fix: user link in digest email
Opliko 6e5ebb6184
feat: manifest.json improvements from ()
* feat: manifest.json improvements from 

* Fix short title placeholder

* use lowercase letters for hex colors
Barış Soner Uşaklı 0b5fac75b0 fix: , add missing lang key
Barış Soner Uşaklı 5e91a67e78 feat: add user ip to admin/dev/info
Andrew Rodrigues ac241fb830 fix: duplicate ID + label
Barış Soner Uşaklı bc93b5676c fix:
Opliko 879acc85ae Add disable/enable category to category edit page ()
arite 527745310d fix: , fix advanced menu not displaying in ACP
Barış Soner Uşaklı 05c9fe2735 feat: , allow changing user groups from manage users page
Baris Usakli 4d66978338 fix: , configurable necroThreshold
Julian Lam f9a8ebfce9 feat: merge social authentication into plugins menu in ACP
* also reordered the menu in ACP so plugins come first
* added muted headers in desktop version to distinguish both lists
* fixes julianlam/nodebb-plugin-sso-google#21
* closes 
Barış Soner Uşaklı 1bda92e3fc fix: , break-word on post-queue
Julian Lam dee1d44722 fix: added tfoot to clear new group button
Julian Lam df139928b6
feat: displaying one-click unsubscribe link in email footer ()
closes 
Julian Lam 645d647248
feat: wip, better digest handling (+ eventual digest resend logic) ()
* feat: wip, better digest handling (+ eventual digest resend logic)

- await emailer.send call in digest.send method
- save send success to a new sorted set digest:{interval}:byUid

* feat: continuing work on digest tools

- Added ACP page to view digest settings and delivery times per user

* feat: added paginator and stub buttons for resending digest

* feat: wrapping up digest revamp

- New language strings in ACP digest page
- Client-side ACP script for digest ACP page
- Websocket call for ACP page to execute digests
- Broke out logic to retrieve user digest settings to getUsersInterval

* fix: minor cleanup

* fix:  and some style suggestions from baris

* fix: resolve confusing comment
Barış Soner Uşaklı 0037a03886 fix: , allow absolute urls in notification.path
Barış Soner Uşaklı 1cedc4a0d6 feat: , allow post queue based on group
allow multiple select in ACP pages
Baris Usakli 990508a533 feat: closes , translate widget-settings
Baris Usakli 554e67116f feat: remove ability to delete events from acp
Baris Usakli 5b458fc7ca fix: , allow icon only group badges
Barış Soner Uşaklı 205d3f9d12 fix: groups not visible on widget panes
Baris Usakli d5dda26f97 fix: , escape username in registration queue
Barış Soner Uşaklı 3455c27a8d fix: , handle group names that are translation keys
Barış Soner Uşaklı 2444ed5c88 feat: , redirect to group details after creation
add private/hidden on group creation modal
Barış Soner Uşaklı 71cd602da9 feat: , abililty to hide widgets
Julian Lam 1796b65d34 feat: option to restrict group leaving, closes
Barış Soner Uşaklı 547bb4966d fix: , show correct title based on digest interval
Barış Soner Uşaklı 3ff6e1bb64 feat: dashboard stats
show
yesterday/today
lastweek/this week
lastmonth/this month
Baris Usakli 65fc06128c feat: move cache tpl
Barış Soner Uşaklı 47e30a67be feat: move group privs above user, add labels
Barış Soner Uşaklı 6a289fbac9 fix:
Baris Usakli 6a486e35bb fix: user urls in subfolder install
fix missing await
Barış Soner Uşaklı 17f843f991 feat: dont waste whitespace
Barış Soner Uşaklı fba67196e1 fix: compatibility conditional
Julian Lam 8a6a58ee43
feat: added new admin option newbiePostEditDuration ()
* feat: added new admin option newbiePostEditDuration

Also:
  - Grammar-checked a couple language strings
  - Moved a couple form inputs around in new user restrictions
  - Added a test for the new option
  - fix: 'defore' typo
Julian Lam a0c0ef1ba4
feat: ACP analytics API route ()
* feat: added API route for retrieving analytics via REST API

* feat: sets is now optional, can pass in multiple sets

* fix: moved expand and added json button to panel header

* fix: matching api params to socket method

* fix: update json api button url on graph change

* fix: updated default counts based on passed in units
Barış Soner Uşaklı b4cc8d88cd fix: id/for
Barış Soner Uşaklı 25ea634787 fix: add option to change cookie link url
Barış Soner Uşaklı 5fa5e999f8
Plugin metrics ()
* feat: add enable/disable checkbox for plugin usage

* feat: submit plugin data to packages.nodebb.org

only submit in production mode
submit once every 24 hours
dont submit for plugins that have "private": true in plugin.json
enabled on new installs
disabled on existing installs

* fix: hash not working after first send

fix statusCode

* fix: remove url

* feat: show compatibilty

* feat: add install question for submit plugin usage
Julian Lam c7f95ccecc
feat: design revamp of ACP events page ()
* feat: design revamp of ACP events page

- minor UX changes
- new filter controls, filters moved to sidebar
- form usable without js
- start/end filters NOT programmed yet

* feat: events ACP limit by date and perPage

* feat: pre-fill applied filters on template render

* fix: missing translation for ACP events perPage filter

* fix: added some comments to explain setHours behaviour

* fix: stop - start + 1

* fix: socket tests

* fix: +inf, not just inf

* fix: tests, because I am an idiot
Barış Soner Uşaklı 4b843ba16f fix: , allow invite and approval at the same time
Barış Soner Uşaklı 157b921e14 fix: , make strip exif configurable
Barış Soner Uşaklı f55cc66723 fix: {username} not working in notification.tpl
fix images going out of notification email
Julian Lam f552cea523
fix: , removing nbsp from email CTAs ()
* fix: , removing nbsp from email CTAs

* fix: added right arrow to CTA button
Julian Lam b32da57faf
fix: shortened CTA text and added custom text for some notifs ()
* fix:  shortened CTA text and added custom text for some notifs

Specifically, new-reply and new-chat have different CTA text as they
do not go to the forum home like other email templates send users to.

* fix: minor optimization as suggested by @barisusakli
Barış Soner Uşaklı dfab231afd
Copy group privs ()
* feat: ability to copy a groups privileges

ability to copy a group's privileges to all categories, or children of current category

* feat: switch to dropdown

added copy from category to groups

* fix: indents
Baris Usakli cf5aeace6b feat: closes
Barış Soner Uşaklı 96cb29aab0 fix:
Baris Usakli 07e9b67e8d fix:
Baris Usakli 8778f00b69 fix:
Julian Lam c38db4f765 feat:
This reverts commit 81f8cfe3da.
Barış Soner Uşaklı 81f8cfe3da Revert "feat: #7515"
This reverts commit ac889db16b.
Barış Soner Uşaklı ac889db16b feat:
Julian Lam 3871a02ccc fix: resolve CORS error on uploading via URL
On uploading a new profile picture via URL, a CORS error presents
itself during the .toDataUrl() call due to misconfigured CORS
handling in the library. The change here allows cropper.js to
check crossorigin attribute in image and handle appropriately.

Also, the error handling is improved so the error is caught on
Firefox, as it sends a different error message than on Chrome.
Barış Soner Uşaklı dbc4d8403d fix:
Barış Soner Uşaklı 8cc1864aa7 fix:
Barış Soner Uşaklı 2ee2cd528f feat:
Julian Lam 63e16ec0a2 fix: , email throttling options set
Andrew Rodrigues cead89f0ba fix:
Andrew Rodrigues 24dcae2193 feat: manual password expiry. closes
Andrew Rodrigues 962b7f73d3 fix:
Baris Usakli 7211dde7b9 feat:
Barış Soner Uşaklı 2b6f1a05bf feat: admin/groups style change
Barış Soner Uşaklı db47753877 feat: add process cpu usage to admin
Julian Lam 6c1f9c3c46 fix: restored email logo to all outgoing emails
Julian Lam 43c4eb2350 fix: normalized font sizes for paragraphs in digest
Julian Lam d3a10628e7 fix: broken 50% border radius on emails, failing tests
Julian Lam f32a992237
feat: revamp email templates to be more style agnostic ()
* feat: re-designed digest

Updated design, logic no longer shows "no topics", just doesn't
show the list at all, teaser re-retrieved for digest so that it
always grabs a teaser even if there is no reply, changed default
email background to a light grey.

* fix: minor padding issues in digest

* fix: banned template

* fix: invitation.tpl

* fix: removed unused notif_chat and notif_post email templates

* fix: notification template

* fix: registration_accepted template

* fix: reset tpl

* fix: test tpl

* fix: email verify tpl

* fix: reset notify tpl

* fix: welcome tpl

* fix: additional minor font fixes

* fix: removed unused email header image assets

* fix: internationalised 'your daily digest' string

* fix: broken url in digest 🤦

* feat: added RTL support for emailer

/cc @PostMidnight
Julian Lam 57069a5c48 fix: better handling for errors in Adv>Databases
Barış Soner Uşaklı c2e7ae7f41 fix:
Barış Soner Uşaklı 70d9c6c4ce fix:
Barış Soner Uşaklı c72da5595a fix:
3 new global privileges
view:users
view:tags
view:groups
Barış Soner Uşaklı 9d1fcf4e36 fix: closes
Andrew Rodrigues 5031bfe8c0 feat: allow themes to define custom classes for categories via filter:admin.category.get
`datalist` isn't supported in all browsers but this will fallback to the original behavior. The first item in the list is the placeholder.
Aziz Khoury 6cd8248cae added empty array for customActions and another indentation fix attempt, related to
Aziz Khoury 14addef67b indentation fix
Aziz Khoury d94f6248ca related to https://github.com/NodeBB/NodeBB/issues/7212
Aziz Khoury eb21ca1190 added customAction in the registration queue users list, related to
Julian Lam df6f75eb05 fix: privilege header misalignment
Barış Soner Uşaklı cf918078e5 fix:
Barış Soner Uşaklı 28459d04c6 fix: