Commit Graph

219 Commits

Author SHA1 Message Date
TheCatLady
c143c0b8d2 fix: better ordering of RequestButton options & properly handle failed requests (#2944)
* fix: better ordering of RequestButton options & properly handle failed requests

* fix: appease prettier
2022-08-18 08:30:40 +00:00
Danshil Kokil Mungur
0fa84eae8d build(deps): bump dependencies (#2796) 2022-08-17 20:43:35 +09:00
TheCatLady
f3e56da3b7 feat: show alert/prompt when settings changes require restart (#2401)
* fix: correct 'StatusChecker' typo

* feat: add restart required check to StatusChecker

* fix(perms): remove MANAGE_SETTINGS permission

* fix: allow alert to be dismissed

* fix(lang): add missing string in SettingsServices

* fix(frontend): fix modal icon border

* fix(frontend): un-dismiss alert if setting reverted not require server restart

* fix(backend): restart flag only needs to track main settings

* fix: rebase issue

* refactor: appease Prettier

* refactor: swap settings badge order

* fix: type import for MainSettings

* test: add cypress test for restart prompt
2022-08-16 16:58:11 +00:00
Gylesie
004e1bb17e fix(api): lookup shows using english title only (#2911)
Fixes most of the time irrelevant lookup list when using localized TMDB metadata. #2801
2022-08-16 11:56:46 -04:00
Ryan Cohen
f5864b49de refactor: update a few dev deps and convert to using type imports where possible (#2886)
* build: bump deps and add some new eslint rules

* refactor: run eslint --fix on code to convert to type imports where possible
2022-08-03 12:57:51 +09:00
Danshil Kokil Mungur
a6c1f3f7ce fix(api): ignore filter if unset in media route (#2647)
Co-authored-by: Ryan Cohen <ryan@sct.dev>
2022-05-28 12:48:23 +00:00
Danshil Kokil Mungur
e4039d09c0 feat(api): add issue counts endpoint (#2713) 2022-04-25 23:06:36 +00:00
TheCatLady
b75fc7b238 fix(auth): resolve local/password authentication issues (#2677)
* fix(auth): only add Plex ID to user after verifying server access

* fix(auth): do not fail local auth if fetching Plex users is unsuccessful
2022-04-06 08:31:14 +09:00
Danshil Kokil Mungur
0c7373c7e8 feat(about): show config directory (#2600)
* feat(about): show config directory

* feat(about): run yarn i18n:extract

* refactor(about): use existing appdata path method

* feat(about): suggested changes

* refactor(logs): rename variable to be more consistent

* feat: suggested changes
2022-03-15 09:01:11 -04:00
TheCatLady
7d19de6a4a fix(tautulli): fetch additional user history as necessary to return 20 unique media (#2446)
* fix(tautulli): fetch additional user history as necessary to return 20 unique media

* refactor: rename var for clarity

* refactor: make single DB query for recently watched media

* fix: resolve query builder weirdness

* refactor: use find instead of qb

* refactor: minor refactor

* fix: also find 4K rating keys
2022-03-14 21:31:11 +04:00
Danshil Kokil Mungur
72c825d2a5 feat(search): filter search results by year (#2460)
* feat(search): filter search results by year

* fix: typo in endpoint, blame it on new brand of coffee

* feat(search): suggested changes
2022-03-14 13:37:58 +00:00
TheCatLady
85bb30e252 feat: verify Plex server access during auth for existing users with Plex IDs (#2458)
* feat: if local sign-in disabled, verify Plex server access during auth for existing users

* fix: disable local/password login by default

* fix: set localLogin to disabled in getInitialProps

* fix: verify Plex server access on local logins as well
2022-03-13 17:53:50 +04:00
TheCatLady
eff665ef4b fix: add Discord ID setting to general user settings page (#2406) 2022-02-10 07:31:01 +00:00
TheCatLady
1dc900d5ce feat(tautulli): validate upon saving settings (#2511) 2022-02-10 02:56:00 +00:00
TheCatLady
8cba486249 fix: address unhandled promise rejections & bump node to v16.13 (#2398)
* fix: unhandled promise rejections

* build(deps): bump node from 14.18 to 16.13

* fix: unhandled promise rejection in new Plex users endpoint

* fix: build error

Co-authored-by: Ryan Cohen <ryan@sct.dev>
2022-01-27 20:00:30 +09:00
Danshil Kokil Mungur
d7779408d1 fix(logs): handle log message nested extra properties (#2459) 2022-01-25 11:00:53 +09:00
Danshil Kokil Mungur
eb9ca2e86f fix(requests): check for existing media of same type when requesting (#2445)
Co-authored-by: Ryan Cohen <ryan@sct.dev>
2022-01-20 10:42:43 +00:00
TheCatLady
0842c233d0 feat: Tautulli integration (#2230)
* 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>
2022-01-20 10:36:59 +00:00
TheCatLady
86dff12cde fix(plex): user import (#2442) 2022-01-20 06:48:35 +00:00
Danshil Kokil Mungur
ce31bef8a1 feat(logs): use separate json file to parse logs for log viewer (#2399)
Co-authored-by: Ryan Cohen <ryan@sct.dev>
2022-01-20 05:17:03 +00:00
TheCatLady
2535edcc7f feat(api): add additional request counts (#2426) 2022-01-16 17:13:35 +09:00
TheCatLady
9cb97db13c feat(plex): selective user import (#2188)
* feat(api): allow importing of only selected Plex users

* feat(frontend): modal for importing Plex users

* feat: add alert if 'Enable New Plex Sign-In' setting is enabled

* refactor: fetch all existing Plex users in a single DB query

Co-authored-by: Ryan Cohen <ryan@sct.dev>
2022-01-14 19:32:53 +09:00
Danshil Kokil Mungur
b31cdbf074 feat(search): search by id (#2082)
* feat(search): search by id

This adds the ability to search by ID (starting with TMDb ID).

Since there doesn't seem to be way of searching across movies, tv and persons,
I have to search through all 3 and use the first one in the order: movie -> tv -> person

Searching by ID is triggered using a 'prefix' just like in the *arrs.

* fix: missed some refactoring

* feat(search): use locale language

* feat(search): search using imdb id

* feat(search): search using tvdb id

* fix: alias type import

* fix: missed some refactoring

* fix(search): account for id being a string

* feat(search): account for movies/tvs/persons with the same id

* feat(search): remove non-null assertion

Co-authored-by: Ryan Cohen <ryan@sct.dev>
2022-01-14 07:52:10 +00:00
Sean Chambers
e0b6abe479 feat(notif): add Gotify agent (#2196)
* feat(notifications): adds gotify notifications

adds new settings screen for gotify notifications including url, token and types settings

fix #2183

* feat(notif): add Gotify agent
addresses PR comments, runs i18n:extract

fix #2183

* reword validationTokenRequired

change wording to indicate presence, not validity

Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>

* feat(notifications): gotify notifications fix

applies changes from #2077 in which Yup validation was failing for types

fix #2183

* feat(notifications): adds gotify notifications

adds new settings screen for gotify notifications including url, token and types settings

fix #2183

* feat(notif): add Gotify agent
addresses PR comments, runs i18n:extract

fix #2183

* reword validationTokenRequired

change wording to indicate presence, not validity

Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>

* feat(notifications): gotify notifications fix

applies changes from #2077 in which Yup validation was failing for types

fix #2183

* feat(notifications): incorporate issue feature into gotify notifications

* feat(notifications): adds gotify notifications

adds new settings screen for gotify notifications including url, token and types settings

fix #2183

* feat(notif): add Gotify agent
addresses PR comments, runs i18n:extract

fix #2183

* reword validationTokenRequired

change wording to indicate presence, not validity

Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>

* feat: add missing ts field

include notifyAdmin in test notification endpoint

* feat: apply formatting/line break items

add addition line break before conditional, change ordering of notifyAdmin/notifyUser in test
endpoint

* feat: remove duplicated endpoints

during rebase, notification endpoints were duplicated upon rebasing. remove duplicate routes

* feat: correct linting quirks

* feat: formatting improvements

* feat(gotify): refactor axios post to leverage 'getNotificationPayload'

Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
2022-01-14 01:04:25 +00:00
TheCatLady
5f7538ae2b feat(discord): add 'Enable Mentions' setting (#1779) 2022-01-11 01:39:12 +00:00
Danshil Kokil Mungur
5af06bd872 fix(logs): lazily parse log message label (#2359) 2021-12-26 07:52:57 +00:00
TheCatLady
91bfff71b7 fix(requests): do not fail request edits if acting user lacks Manage Users permission (#2338)
* fix(api): fix requestedBy logic in request edits

* fix(frontend): do not display empty advanced request options box

* fix(frontend): set max height on modal backdrop
2021-12-10 19:14:14 +09:00
Danshil Kokil Mungur
93b5ea20ca fix(servarr): handle baseurl error when testing connection (#2294)
* fix(servarr): handle base url error when testing servarr connection

* fix(servarr): suggested changes
2021-12-08 04:38:17 +04:00
Danshil Kokil Mungur
f284e4ab97 fix(logs): handle unexpected log messages (#2303)
* fix(logs): handle unexpected log messages

* fix(logs): update regexp for json to appease the lgtm gods
2021-12-08 00:20:47 +00:00
TheCatLady
c9ffac33f7 feat(notif): issue notifications (#2242)
* feat(notif): issue notifications

* refactor: dedupe test notification strings

* fix: webhook key parsing

* fix(notif): skip send for admin who requested on behalf of another user

* fix(notif): send comment notifs to admins when other admins reply

* fix(notif): also send resolved notifs to admins, and reopened notifs to issue creator

* fix: don't send duplicate notifications

* fix(lang): tweak notification description strings

* fix(notif): tweak Slack notification styling

* fix(notif): tweak Pushbullet & Telegram notification styling

* docs: reformat webhooks page

* fix(notif): add missing issue_type & issue_status variables to LunaSea notif payloads

* fix: explicitly attach media & issue objects where applicable

* fix(notif): correctly notify both notifyUser and managers where applicable

* fix: update default webhook payload for new installs

* fix(notif): add missing comment_message to LunaSea notif payload

* refactor(sw): simplify notificationclick event listener logic

* fix(notif): add missing event description for MEDIA_AVAILABLE notifications
2021-12-04 21:24:26 +09:00
TheCatLady
c79dc9f70f fix: add missing route guards to issues pages (#2235)
* fix: users should always be able to view their own issues

* fix: apply route guards to issues pages instead

* fix(api): only allow users w/ issue perms to edit comments / delete issues
2021-10-31 15:56:59 +00:00
TheCatLady
bba09d69c1 fix(issues): only allow edit of own comments & do not allow non-admin delete of issues with comments (#2248) 2021-10-31 08:54:01 +09:00
TheCatLady
aeb7a48d72 feat(notif): add Pushbullet and Pushover agents to user notification settings (#1740)
* 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
2021-10-25 19:46:05 +09:00
Ryan Cohen
e402c42aaa feat: issues (#2180) 2021-10-24 12:44:20 +00:00
TheCatLady
b3b421a674 fix(email): do not attempt to display logo if app URL not configured (#2125)
* fix(email): do not attempt to display logo if app URL not configured

* fix(email): prevent Gmail from turning usernames with periods into hyperlinks

* fix(email): fix(email): use displayName instead of username/plexUserName and improve Gmail link fix
2021-10-18 14:08:50 +00:00
Danshil Kokil Mungur
739f667b54 feat(servarr): auto fill base url when testing service if missing (#1995)
* feat(servarr): auto fill base url when testing service if missing

This will fill the base URL of the *arr service only if it's missing and the base URL hasn't been
provided beforehand

* fix(servarr): replace redundant check

* fix(servarr): suggested changes
2021-10-16 15:27:03 +00:00
TheCatLady
3486d0bf55 feat: dynamically fetch login screen backdrop images (#2206)
* feat: dynamically fetch login screen backdrop images

* fix: remove media check from backdrops endpoint

* fix: remove mapping and work with TMDb data directly
2021-10-16 09:54:15 +09:00
Danshil Kokil Mungur
82614ca441 feat(jobs): allow modifying job schedules (#1440)
* feat(jobs): backend implementation

* feat(jobs): initial frontend implementation

* feat(jobs): store job settings as Record

* feat(jobs): use heroicons/react instead of inline svgs

* feat(jobs): use presets instead of cron expressions

* feat(jobs): ran `yarn i18n:extract`

* feat(jobs): suggested changes

- use job ids in settings
- add intervalDuration to jobs to allow choosing only minutes or hours for the job schedule
- move job schedule defaults to settings.json
- better TS types for jobs in settings cache component
- make suggested changes to wording
- plural form for label when job schedule can be defined in minutes
- add fixed job interval duration
- add predefined interval choices for minutes and hours
- add new schema for job to overseerr api

* feat(jobs): required change for CI to not fail

* feat(jobs): suggested changes

* fix(jobs): revert offending type refactor
2021-10-15 21:23:39 +09:00
TheCatLady
0edb1f452b fix(api): return queried user's requests instead of own requests (#2174) 2021-10-08 23:59:21 +09:00
TheCatLady
a20f395c94 fix(api): use query builder for user requests endpoint (#2119) 2021-10-08 13:14:20 +00:00
Ryan Cohen
afda9c7dc2 feat(plex-scan): plex scanner improvements (#2105) 2021-09-20 09:39:56 +09:00
TheCatLady
8a55f85d3e fix(quota): block multi-season requests that would exceed a user's quota (#1874)
* fix(quota): block multi-season requests that would exceed a user's quota

* fix(docs): add missing request user option to API docs

Co-authored-by: sct <ryan@sct.dev>
2021-07-13 09:58:54 +00:00
sct
de0759c26a fix(requests): do not prevent duplicate requests if other requests are declined 2021-06-10 18:28:33 +09:00
sct
126d8665ee fix(requests): prevent duplicate movie requests 2021-06-10 18:19:26 +09:00
sct
0918b25413 revert(requests): go back to old modifiedBy request values for now 2021-06-05 09:17:41 +09:00
TheCatLady
a3f04b3f35 fix(requests): appropriately set modifiedBy user for new requests (#1684)
* fix(requests): do not set modifiedBy user for auto-approved requests

* fix(requests): set modifiedBy user for requests on behalf of other users
2021-06-04 17:48:04 +00:00
TheCatLady
e60598905b feat: allow users to select notification types (#1512)
* 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
2021-06-04 19:31:05 +09:00
TheCatLady
310cdb36df fix(plex): do not fail to import Plex users when Plex Home has managed users (#1699)
* 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
2021-05-31 08:38:52 +09:00
sct
7520e24e92 fix(notifications): default webpush notification agent to enabled for users for settings response
closes #1663
2021-05-18 19:52:23 +09:00
TheCatLady
928b8a71cf fix: perform case-insensitive match for local user email addresses (#1633) 2021-05-17 00:17:14 +00:00