* refactor: switch ExternalAPI to Fetch API
* fix: add missing auth token in Plex request
* fix: send proper URL params
* ci: try to fix format checker
* ci: ci: try to fix format checker
* ci: try to fix format checker
* refactor: make tautulli use the ExternalAPI class
* refactor: add rate limit to fetch api
* refactor: add rate limit to fetch api
* refactor: switch server from axios to fetch api
* refactor: switch frontend from axios to fetch api
* fix: switch from URL objects to strings
* fix: use the right search params for ExternalAPI
* fix: better log for ExternalAPI errors
* feat: add retry to external API requests
* fix: try to fix network errors with IPv6
* fix: imageProxy rate limit
* revert: remove retry to external API requests
* feat: set IPv4 first as an option
* fix(jellyfinapi): add missing argument in JellyfinAPI constructor
* refactor: clean the rate limit utility
* refactor: update Next.js and React.js
* refactor: update Next.js images
* refactor: update ESLint rules and fix warnings/errors
* fix: remove old intl polyfill
* fix: add proper size to next/image components
* fix: adjust full-size for next/image components
* fix: temporary allow all domains for image optimization
* build: fixes an issue where dev env could lead to javascript heap out of memory
* fix: resolve webpack cache issue with country-flag-icons
* refactor: switch compiler from Babel to SWC
* fix: resize logo in sidebar
* fix: break word on long path to avoid text overflow
* chore: added sharp for production image optimisation
* fix: change extract script for i18n to a custom script
* fix: resolve GitHub CodeQL alert
* chore: temporarily remove builds for ARMv7
* fix: resize avatar images
* refactor: update Node.js to v20
* fix: resolve various UI issues
* build: migrate yarn to pnpm and restrict engine to node@^20.0.0
* ci: specify the pnpm version to use in workflow actions
* ci: fix typo in pnpm action-setup for cypress workflow
* test(cypress): use pnpm instead of yarn
* style: ran prettier on pnpm-lock
* ci(cypress): setup nodejs v20 in cypress workflow
* ci: pnpm cache to reduce install time
* ci: use sh shell to get pnpm store directory
* build(dockerfile): migrate to pnpm from yarn in docker builds
* build(dockerfile): copy the proper pnpm lockfile
* build: install pnpm for all platforms
* build(dockerfile): remove unnecessary `&&` on apk installation steps
* build: migrate pnpm 8 to 9
* build(dockerfile): add node-gyp back in
* build(dockerfile): install node-gyp through npm
* build(dockerfile): ignore scripts to not run husky install when devdependencies are pruned
* build: migrate to pnpm from yarn
* chore: remove a section that is no longer relevant
---------
Co-authored-by: fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
Email is mandatory for every user and required during the setup of Jellyseerr, but it is possible to
set it empty afterwards in the user settings. When the email is empty, users are not able to connect
to Jellyseer. This PR makes the email field mandatory in the user settings.
fix#803
Previously when you expand the `Your Watchlist` slider from the discover page to see all your
watchlist items, you only see the first 20 items. This commit fixes that so you can see all your
local watchlist items when you expand that slider. In addition, this commit also fixes the visiblity
of profile watchlist slider for local watchlists
* fix(deps): update dependency @heroicons/react to v2
* fix: update imports and fix icon name changes for heroicons
* fix: also update MiniStatusBadge to use new check icon
* fix: update last place with old import
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: sct <ryan@sct.dev>
* feat: media/user watch history data via Tautulli
* fix(frontend): only display slideover cog button if there is media to manage
* fix(lang): tweak permission denied messages
* refactor: reorder Media section in slideover
* refactor: use new Tautulli stats API
* fix(frontend): do not attempt to fetch data when user lacks req perms
* fix: remove unneccessary get_user requests
* feat(frontend): display user avatars
* feat: add external URL setting
* feat: add play counts for past week/month
* fix(lang): tweak strings
Co-authored-by: Ryan Cohen <ryan@sct.dev>
* build(deps): bump dependencies
* build(deps): bump next to 12.0.8
* build(deps): bump swr to 1.1.2
* build(deps): bump more dependencies
* build(deps): bump husky to 7.0.4
* fix: remove user list button outlines
* build(deps): bump dependencies again
* build(deps): bump dependencies once more
* feat(notif): add Pushbullet and Pushover agents to user notification settings
* docs(notif): add "hint" about user notifications to Pushbullet and Pushover pages
* fix: regenerate DB migration
* refactor(ui): add prev/next button icons
* refactor(ui): use mail icon instead of at symbol icon for email
* refactor(ui): use ↻ symbol instead of ⤾ for reload button
* refactor(ui): add missing icons to password reset pages
* refactor(ui): add icons for save & test buttons
Co-authored-by: sct <ryan@sct.dev>
* refactor(ui): tweak styling of sidebar & user profile quota display
* refactor(ui): adjust sidebar gradient to match theme color
Co-authored-by: sct <ryan@sct.dev>
* feat: allow users to select notification types
* fix(ui): display personal notification types before management types
* fix: update allRequestsAutoApproved check to account for new REQUEST_MOVIE & REQUEST_TV perms
* fix(ui): do not display Discord notif type selector if user not eligible for any types
* refactor(ui): remove unnecessary 'enabled' checkboxes from user notif settings
* fix(ui): correct checkbox behavior
* fix: add missing return type on hasNotificationType
* refactor: remove unused isValid prop in NotificationsWebPush
* fix(ui): use SensitiveInput for users' public PGP keys
* fix(ui): add missing tip/hint for email encryption setting
* refactor(svg): use the new Discord logo
* revert(api): undo breaking change removing discordEnabled from UserSettingsNotificationsResponse
* fix(lang): update notification type descriptions for clarity
* fix(telegram): do not send users notifications of their own auto-approved requests
* fix(plex): do not fail to import Plex users when Plex Home has managed users
* fix: default display name to email when user has no username
also, do not set username or plexUsername when it is the same as the user's email address
* fix(ui): user display name placeholder should reflect fallback logic if username is not set
* fix(ui): hide email addresses of other users if logged-in user does not have Manage Users permission
* fix: always set Plex username even if same as user's email
* fix: remove unnecessary permission check
* fix: transform email addresses to lowercase
* feat(lang): add Greek & Polish display languages
Also:
* rename zh-TW display language to 繁體中文
* fix plurality of AvailableLocale type name
* consistently use 'en' as fallback/default language
* revert(lang): remove Polish display language due to lack of translation activity
* fix(locale): default user locale should be the server setting
* fix(db): fix user settings migration
* fix(db): set default locale to empty string
* revert: revert change to usersettings.ts