Commit Graph

76 Commits

Author SHA1 Message Date
TheCatLady
5d73bc2238 fix: check perms to view watchlist slider on user profile (#2980) 2022-08-25 02:43:25 +04:00
TheCatLady
0839718806 feat: view other users' watchlists (#2959)
* feat: view other users' watchlists

* test: add cypress tests

* feat(lang): translation keys

* refactor: yarn format

* fix: manage requests perm is parent of view watchlist perm
2022-08-22 05:50:27 +00:00
TheCatLady
950b1712b7 feat(frontend): add more tooltips (#2961)
* feat(frontend): add more tooltips

* fix: remove styling from Tooltip

* refactor: tooltip expects a single child
2022-08-22 14:37:22 +09:00
Ryan Cohen
c6a133d4e5 refactor: absolute imports with path alias (#2960) [skip ci] 2022-08-22 11:02:46 +09:00
Ryan Cohen
301f2bf7ab feat: plex watchlist sync integration (#2885) 2022-08-21 16:33:49 +09:00
TheCatLady
9bc1f89777 fix(frontend): better request/media cards for items without valid TMDb IDs (#2181) 2022-08-20 11:21:53 +09:00
Danshil Kokil Mungur
fd0ff4bd5f chore: remove empty lines from imports section (#2951) [skip ci] 2022-08-19 10:59:27 +00:00
Ryan Cohen
16545eec22 feat: tooltip foundation (#2950)
* feat: add foundation for tooltips

* fix: add lang

* refactor: remove React import where no longer necessary
2022-08-19 19:35:50 +09:00
Ryan Cohen
e5d8c93ab8 chore(deps): update react to 18 (#2943) 2022-08-18 17:05:58 +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
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
Chun Yeung Wong
9da8461225 fix: update Discord ID regex to include 19 digit IDs (#2860) 2022-08-03 10:24:57 +09:00
Samuel Bartík
db05172d8b fix(ui): rectangular avatars getting stretched (#2782) 2022-05-25 20:42:17 +04:00
TheCatLady
086f0b6ce2 fix(css): rename form-input to form-input-area (#2613) 2022-03-14 11:24:39 +04:00
TheCatLady
eff665ef4b fix: add Discord ID setting to general user settings page (#2406) 2022-02-10 07:31:01 +00:00
Ryan Cohen
822ae9eec7 style: add new tailwind prettier plugin (#2465) 2022-01-25 21:09:41 +09: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
114366fa4b build(deps): bump dependencies (#2427)
* 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
2022-01-20 10:04:34 +09:00
TheCatLady
216447121b fix(frontend): use consistent formatting & strings (#2231)
* fix(frontend): use consistent formatting & strings

* fix(lang): remove duplicated status strings

* fix(frontend): reduce height of items in request & issue lists

* fix(frontend): issue description textarea label should be a label element

* refactor: remove unnecessary reduce

* fix: remove small avatar underneath issue comments

* fix(frontend): don't hide Pushover app token tip
2021-10-26 00:07:00 +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
TheCatLady
8b960acf73 refactor(ui): add/tweak icons (#1819)
* 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>
2021-07-13 09:44:15 +00:00
TheCatLady
3841fb06eb fix(ui): do not display negative remaining quota (#1859)
* fix(ui): do not display negative remaining quota

* fix: correct remaining quota count on API side
2021-07-01 00:16:40 +09:00
TheCatLady
4eab2fea73 refactor(ui): tweak styling of sidebar & user profile quota display (#1823)
* 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>
2021-06-23 07:38:07 +00:00
TheCatLady
910d00c195 fix(ui): do not allow submission of invalid form inputs (#1799) 2021-06-17 04:59:20 +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
59b2ec11fa fix(ui): improve QuotaSelector display of unlimited and singular values (#1704) 2021-05-31 00:29:43 +00: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
TheCatLady
22415642e8 feat(lang): add Greek display language (#1605)
* 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
2021-05-16 14:56:49 +09:00
sct
aa86809dc9 style: bump prettier and format app 2021-05-13 23:48:08 +09:00
Jabster28
d0703aa377 fix: switch PGP regex to span multiple lines (#1598)
* fix: switch PGP regex to span multiple lines

* also change the regex in this file
2021-05-11 10:58:27 +09:00
TheCatLady
549103f6f6 fix(locale): default user locale should be the server setting (#1574)
* 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
2021-05-05 13:33:43 +09:00
TheCatLady
b05b177776 fix(webpush): only prompt user to allow notifications if enabled in user settings (#1552) 2021-05-04 03:40:32 +00:00
TheCatLady
1123fce089 fix(ui): apply rounded-l-only to SensitiveInput textareas and increase visible text input area (#1561) 2021-05-04 09:37:51 +09:00
TheCatLady
f256a444c5 feat: add server default locale setting (#1536)
* feat: add server default locale setting

* fix: do not modify defaultLocale property of IntlProvider
2021-05-03 13:11:28 +00:00
Jakob Ankarhem
4fd452dd18 feat(inputs): add support for toggling security on input fields (#1404) 2021-05-03 21:59:52 +09:00
TheCatLady
189313e94a fix: correctly fall back to English name in LanguageSelector (#1537)
* fix: correctly fall back to English name in LanguageSelector

* refactor: clean up language sort & name logic

* refactor: also clean up region sort & name logic

* refactor: use arrow functions
2021-04-30 18:02:59 +00:00
TheCatLady
3e5e9c0ad1 refactor(css): add styles targeting SVG button/modal icons (#1464)
* refactor(css): add global classes for common icon types

* refactor(css): target child SVGs instead of creating new icon classes

* fix: fix ButtonWithDropdown style class spacing
2021-04-26 10:09:58 +00:00
TheCatLady
079645c2c7 feat(notif): show success/failure toast for test notifications (#1442)
* feat(notif): show success/failure toast for test notifications

* fix(lang): remove 'successfully' from test notif success strings
2021-04-26 10:01:31 +00:00
TheCatLady
48587719e9 fix: do not set locale when modifying other users (#1499) 2021-04-26 07:39:19 +09:00
sct
28830d4ef8 feat: PWA Support (#1488) 2021-04-25 20:44:12 +09:00
TheCatLady
8fc71bea08 refactor(icons): install and use @heroicons/react (#1438) 2021-04-17 18:07:23 +09:00
TheCatLady
4b5e355df9 fix(ui): correctly set autocomplete attribute for password fields (#1430) 2021-04-16 12:45:50 +09:00
TheCatLady
2cd952d1ca refactor(ui): improved alerts for services settings & removed alert titles (#1280)
* refactor(ui): improved alerts for services settings & removed alert titles

* fix(ui): set styling of alert links to be consistent w/ others

* fix(ui): clarify appropriate 4K setting when user has not configured a default non-4K server

* fix: remove unused var/eslint-disable & correct string
2021-04-14 02:20:25 +00:00
TheCatLady
46c4ee1625 feat(notif): allow users to enable/disable specific agents (#1172)
* refactor(ui): add tabs to user notification settings

* feat(notif): allow users to enable/disable specific agents

* fix(ui): only enforce required fields when agent is enabled

* fix(ui): hide unavailable notification agents

* feat(notif): mention admin users for admin Discord notifications

* fix(ui): modify styling of PGP key textareas to suit expected input

* fix(notif): mention all admins when there are multiple and fix rebase error

* fix: add missing form values, and fix Yup validation

* refactor: reduce repeated logic/code in email notif agent

* refactor: move 'Notification Types' label into NotificationTypeSelector component

* fix(email): correct inconsistencies in email template formatting

* refactor: use bitfields for storing user-enabled notif agent types

* feat: improve notification agent logging

* fix(ui): mark string fields as nullable so empty values are not type errors

* fix: add validation for PGP-related inputs

* fix: correctly fetch user in user settings & log mentioned IDs for Discord notifs

* fix(ui): fix mobile nav dropdown text & add hover effect to button-style tabs

* fix(notif): process admin email notifications asynchronously

* fix(logging): log name of notification type instead of its enum value

* fix: mark required fields and pass all user settings values to API

* fix(frontend): call mutate after changing email/Discord/Telegram global notif settings

* refactor: get global notif settings from relevant API endpoints instead of adding to public settings

* fix(notif): fall back to email notifications being enabled (default) if user settings do not exist

* fix(notif): do not set notifyUser for MEDIA_PENDING or MEDIA_AUTO_APPROVED

* fix: expose notif enabled settings in user notif endpoints & remove global enable notif setting

* fix(notif): remove unnecessary allowed_mentions object from Discord payload

* fix(notif): use form values for email test notification

* fix: make suggested changes and regenerate DB migration

* fix: loosen validation of PGP keys

* fix: fix user profile settings routes

* fix: remove route guard from profile pages
2021-04-13 03:31:31 +00:00
TheCatLady
13e1595c6e fix(lang): remove unused strings (#1330) 2021-03-31 15:34:36 +09:00
sct
a908c07670 feat(frontend): allow selecting multiple original languages 2021-03-30 19:50:12 +09:00
TheCatLady
a9461f760d feat(ui): Add user requests page (#936)
* feat(ui): add user requests page

* fix: return error if user attempts to fetch another user's requests without adequate perms

* fix(ui): make user name on request page link back to user profile

* feat(ui): link user request count to their filtered request list view

* fix(frontend): only display user requests on profiles if current user has adequate perms

* fix: use 'all' filter for user-filtered request list

* fix(frontend): pass userId to router.push()

* fix: do not pass userId in query for non-user-filtered requests page

* fix(frontend): also allow REQUEST_VIEW perm through route guard

* fix(frontend): only link request count to user request list if current user has required perms
2021-03-29 13:16:03 +09:00
TheCatLady
2059fc1cd4 fix(ui): restore saved states of quota override checkboxes (#1282)
* fix(ui): restore saved states of quota override checkboxes

* fix: check if value is undefined or null, not just truthy

Co-authored-by: sct <ryan@sct.dev>
2021-03-25 05:54:04 +00:00
TheCatLady
e393b53b29 refactor(lang): use global strings where appropriate and remove unused strings (#1265) 2021-03-24 21:45:07 +09:00
TheCatLady
8546b0ef53 fix(ui): fix label formatting in general user settings (#1275) 2021-03-24 19:34:39 +09:00