* 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>
* fix: check that application URL and email agent are configured for password reset/generation
* refactor: reverse flex direction instead of conditionally changing justify
* 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
* 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
* fix: set editRequest attribute for RequestModal
* fix: remove now-unneeded conditional
* fix(ui): only show 'View Request' for user's own requests if they don't have MANAGE_REQUESTS perm
* fix(ui): show edit button on request list for own requests & 'View Request' button on series pages
* fix(ui): do not show 'Request More' if user already has a pending request
* fix: address PR comments
* fix(lang): edit usercreatedfaileexisting string & generate translation key
* fix: users should always be able to view/edit their own requests even if their perms have changed
also fixed capitalization of 'Signing In...' string
* fix(ui): hide alert when email notifs are already configured
* fix(ui): disable instead of hide checkbox
* fix: determine if email notifications are enabled via user settings endpoint
* 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
* 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
* fix(lang): 'scan plex libraries' should actually be 'sync'
* fix(lang): also fix user import string in case of no imported users
* fix(lang): remove unused 'User Rating' strings
* fix: do not allow editing of user settings under certain conditions
* feat(lang): generate translation keys for new strings
* refactor: modify owner check for clarity
* fix(ui): hide buttons where appropriate and add missing translation string
* feat(ui): display "Owner" role instead of "Admin" for user ID 1
Also add role to user settings page, and fix the missing "Account Type" string and use the same
verbiage on the user list page
* feat(lang): generate translation keys
* fix: utilize hasPermission returned by useUser instead of importing from server/lib/permissions
* fix(frontend): full season request modal fits on a smaller mobile UI
* fix(frontend): added responsive variant and removed unnecessary padding
* fix(frontend): added in responsive design
* fix(frontend): applied the same spacing from the discovery page to the requests/users pages
* fix(frontend): revered change to keep tables edge to edge on mobile
also includes small updates to the api to prevent administrators from being deleted, as well as
migrations to cascade deletions to requests the users made
fixes#348