Commit Graph

314 Commits

Author SHA1 Message Date
Harvey Tindall cc571409b9 Merge branch 'jf-log'
accidentally did a fix on the wrong branch, so i'm merging it
prematurely.
2025-12-20 11:23:18 +00:00
Harvey Tindall d7bad69d40 jf-actvitity: functioning route, ombi fixes
forgot to switch branches before doing a fix for #455, so it's in here
too. OmbiUserByJfID/getOmbiUser takes an optional email *string, to
optionally pass an override email address to search with, used when
changing it.
2025-12-20 11:21:13 +00:00
Harvey Tindall 2a41c5a393 admin: scroll current tab in nav to center
for #456, ensures you can see and press both the next and previous tabs
    even if you can't scroll for some reason.
2025-12-19 13:11:37 +00:00
Harvey Tindall e4e9369d54 theme: set theme-color for ios devices
colours the search bar, sometimes.
2025-12-11 14:47:22 +00:00
Harvey Tindall 4a9bac1027 scripts: replace dark-variant.sh with go scripts/variants
uses regex mostly, resulting in a significantly faster execution (old:
~2s, new: ~31ms). Only matches classList.add/remove and class="..."
(won't touch string literal variables or colours), but these weren't
really used anyway. Supports multi-line classList.add/remove, which was
the reason I wrote this anyway (formatting the codebase introduced some
of these).
2025-12-09 14:28:05 +00:00
Harvey Tindall 817107622a ts: format finally
formatted with biome, a config file is provided.
2025-12-08 20:38:30 +00:00
Harvey Tindall 26284e89f6 web: add more RTL fixes
For #450.
2025-12-08 15:30:24 +00:00
Harvey Tindall 362984a391 web: remove almost every use of ml/mr
replace with flex and gap mostly. For #450.
2025-12-08 15:12:40 +00:00
Harvey Tindall 9c9e55147d lang: don't show lanugages with empty name fields 2025-12-08 14:38:24 +00:00
Harvey Tindall 341dd5930e settings: force LTR always
since it's untranslatable for now.
2025-12-07 20:43:14 +00:00
Harvey Tindall b5e348ad2b ui: correct html lang tag
set according to the language picked.
2025-12-07 19:31:52 +00:00
Harvey Tindall 709c394d2d invites: use string getting func on CopyButton
should fix #449.
2025-12-07 11:40:16 +00:00
Harvey Tindall fb5ea43ef5 CopyButton: add string getting func option 2025-12-07 11:38:46 +00:00
Harvey Tindall 975c47a79b settings: fix showing advanced ones
fixes #448.
2025-12-06 20:14:44 +00:00
Harvey Tindall e5315095be invites: improve dropdown animation
involves negative margins and removing padding resulting in a messy
expand function, but it looks smooth. Could also be done on the settings
page, but it looks mostly alright there already.
2025-12-06 17:43:54 +00:00
Harvey Tindall 44e4b5fce2 invites: editable label, /invites/edit route
PATCH /invite/edit lets you edit an invite by giving new values for a
subset of inviteDTO (EditableInviteDTO). Replaces /invite/profile and
/invite/notify, and allows changing (user)label and user expiry as well
as the previously customizable values through other routes. An edit
button next to the code/label allows changing on the invites tab.
2025-12-06 15:38:06 +00:00
Harvey Tindall 51f604d061 ivnites: use actual inviteDTO for DOMInvite
no intermediary parsing step. Also, moved the date -> duration (3mo6d3h
sorta thing) to the web, there's now a ValidTill field with a unix
timestamp. Used the new Temporal api with a polyfill. Bumped api version
(although it still isn't semver).
2025-12-06 14:01:06 +00:00
Harvey Tindall 556e1411f4 invites: add "send to" to dropdown
allows sending to more people after creating the invite. Fixes #444.
2025-12-05 19:51:42 +00:00
Harvey Tindall 5fa528fd2d invites: add /invites/send, store more details in new SentTo field
deprecated SendTo string field for SentTo, which holds successful send
addresses, and failures with a reason that isn't plain text. Will soon
add an interface for sending invites after their creation. For #444
(ha).
2025-12-05 12:03:21 +00:00
Harvey Tindall 3635a13682 fix opening create profile when jellyseerr disabled
fixes #445.
2025-12-04 18:19:33 +00:00
Harvey Tindall 320e9cd9d0 mediabrowser: bump
imrpvoed UserNotFound error classification, no longer vulnerable to
random 404s from proxies or whatever (for Jellyfin only, not emby)
2025-12-01 12:43:40 +00:00
Harvey Tindall fb1b673dee settings: add "tasks" button (advanced)
added a GET /tasks route to list tasks with a description (untranslated,
but this is mostly a dev feature anyway). Loaded in a modal by enabling
advanced settings and pressing the Tasks button at the top (where logs,
backups, restart are). Also added some icons in settings, and removed
some redundant "flex flex-row"s on buttons and reduced the spacing in
those with icons to gap-1.
2025-11-29 15:43:06 +00:00
Harvey Tindall 598a389e3d jellyseerr: fix extremely long import, run only once
cache was being invalidated for every user, and on my 5000 user test
instance, this sweated jellyseerr and my computer (audibly). Also, since
this only needs to realistically run once, a flag is set in the database
to indicate it's been done, and unset once the feature is disabled.
It'll only run on boot if the flag is unset, or if triggered by the
/tasks route. Will likely add manual trigger buttons on the web as well.
2025-11-29 14:13:34 +00:00
Harvey Tindall 1a0e32504f accounts: hide js/ombi checks when not enabled correctly on modify
settings
2025-11-28 20:52:37 +00:00
Harvey Tindall cbff3085fa profiles: "add jellyseerr" checkbox on profile creation
makes things clearer to new users. Fixes #438.
2025-11-28 20:37:45 +00:00
Harvey Tindall 0ecacc6064 tasks: add /tasks/jellyseerr, document
now live in tasks.go and have actual API documentation.
/tasks/jellyseerr triggers account import.
2025-11-28 17:26:27 +00:00
Harvey Tindall 7d947015d3 pwr: allow jellyfin pwrs when not using email
switched if !emailEnabled { return } to if !messagesEnabled { return }.
Fixes #439.
2025-11-28 16:21:00 +00:00
Harvey Tindall 77d2ad3b6b profiles: add ability to directly edit profile JSON
allows for customizing small things, like changing admin status.
2025-11-28 15:13:46 +00:00
Harvey Tindall d7e4431bd8 settings: more dependency fixes 2025-11-27 17:52:49 +00:00
Harvey Tindall 96ec12f2bd settings: hide groups if all children are hidden
only really affects the "Email" group when messages|enabled is false.
2025-11-27 16:36:26 +00:00
Harvey Tindall 85eea23d98 accounts: share telegram linking modal with other pages
the one on the admin page was a little messed up anyway. Not relevant to
the other linking modals, as the process is different (simpler) on the
admin page.
2025-11-27 10:50:18 +00:00
Harvey Tindall d6d73e81d6 settings: fix (restart)required detection on save 2025-11-26 21:12:43 +00:00
Harvey Tindall 5e653c51f3 accounts: add "extend from previous expiry"
If the expiry time of an expired user is still in the activity log,
extending and re-enabling a user with this option checked will extend
the expiry from this time, rather than the current time. For #379, i
think this is basically what they wanted.
2025-11-26 15:40:02 +00:00
Harvey Tindall 875387166e settings: fix weirdness on mobile
the check and button's onclick were both firing occasionally, so added
check to button.onclick that the target isn't the check or it's icon, as
I did for the invite details toggle.
2025-11-25 21:04:12 +00:00
Harvey Tindall 909614c3e7 invites: add details expand transition
why not.
2025-11-25 20:49:24 +00:00
Harvey Tindall 3178ca7572 settings: remove badge note, add tooltips to them
change required and restart required badges to icons with tooltips, and
removed the note at the top of settings. As a result, the sidebar is
much thinner.
2025-11-25 17:13:43 +00:00
Harvey Tindall 442bdd2220 settings: leave groups opened/closed on advanced settings toggle 2025-11-25 15:04:24 +00:00
Harvey Tindall a680db92a7 settings: fix group indent
obviously groups don't need an increased margin value, they already have
a margin from the parent! Also increased it to ml-6.
2025-11-25 14:56:53 +00:00
Harvey Tindall 08c350d50b settings: fix search with groups
works now, as in searching for a group's name works, and seeing matches
within groups works.
2025-11-25 14:43:56 +00:00
Harvey Tindall 607d8e9566 settings: show updates at top if one available 2025-11-24 18:43:08 +00:00
Harvey Tindall 8f3b860cc7 settings/config: add root order and use on web, fix nesting and
animation

added an optional root "Order" field to the config. scripts/ini will
warn if you've used this and forgot to include any sections.

added more/most sections to a group now.

groups have their maxHeight set to 9999px once animation finishes, and
have it quickly set back to ~scrollHeight before they're animated
closed.
2025-11-24 18:31:35 +00:00
Harvey Tindall a3dc8b7e07 settings: render groups
a little off at the moment but works, groups show as accordions and can
be nested. Maybe add indentation, and probably show them first in the
list. Also make sure search works with them.
2025-11-24 15:19:20 +00:00
Harvey Tindall febbe27a0d emails: fix conditionals not being cleared on editor load 2025-08-31 17:31:48 +01:00
Harvey Tindall e67f1bf1a9 emails: fix and confirm function of all emails
both custom and standard emails tested, quite a few fixes made,
including to an old bug with admin notifs.
2025-08-31 17:12:50 +01:00
Harvey Tindall 492d5715fe ts: fix setTimeout return type for new tsc 2025-07-20 13:53:48 +01:00
Harvey Tindall bdd14604d5 accounts: double click "select all" to load and select -all-
Clicking once will select all visible records, and show as
indeterminate. Clicking again will load all records, and select them all
once done.
2025-07-18 18:04:23 +01:00
Harvey Tindall 488ba7be38 userpage: use window.pages.MyAccount instead of
window.location.pathname

fixes #418 hopefully.
2025-07-18 13:23:25 +01:00
Harvey Tindall 0fd3981d9b accounts: server-search user included in query param 2025-05-27 15:48:04 +01:00
Harvey Tindall 42d1abe130 admin: change path behaviour for the billionth time
URLs are made with app.ExternalURI (now included in window.pages), which
itself should include Base. Also fixed the subfolder being removed from
the url after login.
2025-05-27 15:40:08 +01:00
Harvey Tindall 1d7d82b793 search: fix server-side date behaviour
OffsetMinutesFromUTC was being passed incorrectly by the web app
(getTimezoneOffset if UTC - Timezone, we wanted Timezone - UTC), now
fixed. This value is now used if given in comparisons. Times are
truncated to minute-deep precision, and Any date comparison ignores
empty date fields (i.e. a unix timestamp being 0 or a time.Time.IsZero()
== true).
2025-05-27 14:57:56 +01:00