* fixed touch not working on carousels
* fixed touch not working
* Movie details component fixes
Fixed recommendations and similar not changing the data on the component by calling the init function again on param change
Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel.
* removed unused line, added scroll to top on init
* updated recommendation refresh implementation
Changed the implementation to use the router instead in order to reload the component instead of just reloading the data.
This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page.
A TV show will be 'Denied' if all its episodes are denied (replaces very recently added 'FullyDenied' property).
Individual episodes will show the correct denied status along with the reason.
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
This removes the generic admin email setting.
Instead we use the email addresses set on the users' profile.
Allows for notifications to many recipients in case of multiple admins.
Email testing now sends the test email to the currently logged in user.
* feat: updated radarr settings API to support 4k
* feat: refactored the radarr setting page to support the new model
* feat: Added 4k radarr to the settings page
* feat: Added the new Movie 4k Request
* feat: Got some of the backend rules done
* feat: Made a load of progress
* Removed the csproj ref
* feat: fixed the radarr ui
* feat: fixed up all the movie requests page
* feat: Hide the 4K buttons when the user does not have the 4k permission
* fix: fixed the templateref issue
* test: fixed up all the tests
* feat: Added migrations for media sever quality. Emby and Radarr Sync jobs now pull the quality
* feat: Done the media sync jobs
* feat: plex availability checker
* feat: Updated the jellyfin availability checker to check for 4k
* feat: updated emby availbility checker to check for 4k
* feat: almost got it all working now
* feat: Added 4k approve to the request list options
* feat: Added 4k to the requests list and bulk approve
* feat: Added the features service
* feat: added feature update to the frontend
* feat: got the features page working
* feat: Applied the feature service on the backend
* feat: added the feature flag on the UI
* feat: added 4k to the card
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* Send new request email notifications to power users
* Send new request to power users as convention
Remove option to toggle it off
* Send New Request notification to power users in app
* Better wording + fix mobile notifications
* Localize a few isolated strings
* Localize paginator
* Localize a few isolated strings
* Make button width dynamic for better i18n
* Localize a few isolated strings
* Fix technical typo
* Secure ManageOwnRequests API paths
Fixes#4391
* Hide delete request option if user is not allowed
* Refactor CheckOwnRequests
* Fix deleteRequest test
* Improve performance and clean up code
* Fix manageOwnRequests check
* Refactor CheckCanManageRequest
* Update pomelo framework for net 6 support
* Aspnetcore v6
* Revert spaservices
* Update all references to old pomelo
* Note problem line
* Disable charsetoption in databaseextensions, version left
* fix: fixed the compiler error
Co-authored-by: Dyson Parkes <dyson@berserkir.net>
* chore: updated tfm to net6
* chore: updated main packages
* chore: fixed some warnings
* core: Added workflow_dispatch to some of the CI pipelines [skip ci] (#4392)
* chore: bump the net version
* ci: use the dotnet ver task everywhere
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* fix(translations): 🌐 New translations from Crowdin [skip ci]
* Localize TV and movies titles in requests
* Add missing release statuses
* Localize collection request
* Localize TV shows in newsletter
Uses TMDB instead of TVMaze for title, genres and synopsis
* Localize error messages
* Localize albums requests
* Use current language for TV and movies requests
* Remove unecessary console log