* feat: add a setting for special episodes
This PR adds a separate setting for special episodes and disables them by default, to avoid unwanted
library status updates.
* refactor(settings): re-order setting for allow specials request
---------
Co-authored-by: fallenbagel <98979876+Fallenbagel@users.noreply.github.com>
* feat: add separate setting for streaming region
Currently, the "Currently Streaming On" information is based on the Discover Region setting. This PR
adds a new setting to specify which region should be used to display the streaming region.
re #890
* fix: add missing newline
* fix: rename migration function
* feat: improve discord notifications
Added a field in the general notification settings to allow a role to be mentioned in the webhook
message via discord notification agent
* feat: add discord role id notification - locales
* fix: remove email requirement for the user, and use the username if no email provided
* fix: update translations
* fix: remove useless console.log
* test: fix user list test
* fix: disallow Plex users from changing their email
* 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>
* refactor(jellyfinsettings): abstract jellyfin hostname, updated ui to reflect it, better validation
This PR refactors and abstracts jellyfin hostname into, jellyfin ip, jellyfin port, jellyfin useSsl,
and jellyfin urlBase. This makes it more consistent with how plex settings are stored as well. In
addition, this improves validation as validation can be applied seperately to them instead of as one
whole regex doing the work to validate the url.
UI was updated to reflect this.
BREAKING CHANGE: Jellyfin settings now does not include a hostname. Instead it abstracted it to ip,
port, useSsl, and urlBase. However, migration of old settings to new settings should work
automatically.
* refactor: remove console logs and use getHostname and ApiErrorCodes
* fix: store req.body jellyfin settings temporarily and store only if valid
This should fix the issue where settings are saved even if the url
was invalid. Now the settings will only be saved if the url is
valid. Sort of like a test connection.
* refactor: clean up commented out code
* refactor(i18n): extract translation keys
* fix(auth): auth failing with jellyfin login is disabled
* fix(settings): jellyfin migrations replacing the rest of the settings
* fix(settings): jellyfin hostname should be carried out if hostname exists
* fix(settings): merging the wrong settings source
* refactor(settings): use migrator for dynamic settings migrations
* refactor(settingsmigrator): settings migration handler and the migrations
* test(cypress): fix cypress tests failing
cypress settings were lacking some of the jobs so when the startJobs() is called when the app
starts, it was failing to schedule the jobs where their cron timings were not specified in the
cypress settings. Therefore, this commit adds those jobs back. In addition, other setting options
were added to keep cypress settings consistent with a normal user.
* chore(prettierignore): ignore cypress/config/settings.cypress.json as it does not need prettier
* chore(prettier): ran formatter on cypress config to fix format check error
format check locally passes on this file. However, it fails during the github actions format check.
Therefore, json language features formatter was run instead of prettier to see if that fixes the
issue.
* test(cypress): add only missing jobs to the cypress settings
* ci: attempt at trying to get formatter to pass on cypress config json file
* refactor: revert the changes brought to try and fix formatter
added back the rest of the cypress settings and removed cypress settings from .prettierignore
* refactor(settings): better erorr logging when jellyfin connection test fails in settings page
* refactor: decoupled PTR by removing import and creating new touch logic
* fix: overscroll behavior on mobile is now prevented on the y axis
* feat: added shadow effects to icon
* fix: modified cypress test
* fix: added better scroll lock functionality
* fix: hide icon if scroll value is negative
* fix: changed to allow usage on all touch devices
* feat: pull down to refresh functionality
Custom pull down to refresh added to replace the default browser pull down to refresh. This will
allow you to manually reload the page if you are using it as a PWA.
* test: update test to check api call correctly
changed api call for test and made sure it pulls down all the way to trigger refresh
* fix: changed positioning of pull to refresh
Refresh indicator now has absolute positioning and will prevent the top edge from pulling down.
* feat(perms): add new permission for viewing recently added media
* test: update login test to check for Trending instead of Recently Added
* fix: avoid conflict with new watchlist perms
The delete user modal will now show the user that is being deleted and the delete button will now
ask you to confirm deletion similar to the delete request button.