github hrfee/jfa-go v0.6.0
v0.6.0: Small features, fixes, Jellyseerr

4 hours ago

A good few fixes and small features. Quite a bit of behind the scenes reworking that doesn't affect functionality too.
You'll hopefully see a v0.6.1 in not too long, with bugs found in this one fixed and one biggish feature. After that, it'll be another 2 years till the next one (weird how it keeps ending up that way).

Important

  • More consistent links to jfa-go: Messed up links to jfa-go shouldn't be a problem anymore. You'll need to make sure "External jfa-go URL" and "Reverse proxy subfolder" is set in Settings > General, this is where you access the root of jfa-go (by default, the admin page). This value is now used for everything. (e71d492)
    • If you access jfa-go from multiple domains, set this setting to the one a signing up user would access, and enable "Use reverse-proxy reported Host when possible". This will make sure your login is saved on other domains.
    • Also, a bunch of other url-related fixes.

Strong

  • Jellyseerr integration: On par with, or better than the Ombi integration, and safer (users have had problems in the past, see the wiki):
    • Uses the "Jellyfin" account type in Jellyseerr, which does auth through Jellyfin (like jfa-go) and so passwords stay in sync automatically.
    • Email, Discord & Telegram details are synchronized when changes are made.
    • Settings profiles can be added just like Ombi, in Settings > User Profiles.
    • See Settings > Integrations > Jellyseerr
    • More info in the PR details (#351)

Medium

  • Custom page paths: Settings (Advanced) > URL Paths. Access your admin at /admin, my account at /, or whatever you want. (#405)
  • "Expiry Adjusted" message: Send optionally to the user when you change their account expiry (48a2058)
  • Remind N days before expiry: Message user N days before their account is due to expire. You can set multiple of these in Settings > User Expiry. (94efe9f)
  • Delete user N days after expiry: First disable the account, then delete it after N days if you don't intervene. In Settings > User Expiry. (86c37fb)
  • Post sign-up help card: Previously you could adjust the text shown when a user signed up with the "Success message" option, but this (editable with the pen icon on "Messages/Notifications") allows full markdown. (dabef83)
  • Faster accounts tab: Results are now cached server-side and loaded with an infinite scroll on the accounts tab. Stops them all being loaded at once, which could freeze up the whole browser for those with busy Jellyfin instances. Searches/Filtering and sorting can now be performed server-side too, for accounts and activities. (8ba6131)
    • Lots of shared functionality in list/search.ts.
  • "Extend from previous expiry": After an account expires and has been disabled, checking this new box when re-enabling and setting a new expiry will apply your extension (months, days, hours, minutes) from the time of expiry, rather than the current time. (#379)
  • Webhook(s): Currently only one for user creation, will be called when this happens with some data. See Settings > Webhooks and the corresponding wiki page. (e5f79c6)

Mild

  • Settings reorganization: There's now groups/folders for similar sections. The sidebar is easier to parse visually as a result. (a3dc8b7)
  • Disable collecting emails: "Collect on sign-up" has been in Settings > Email for ages but wasn't functional. Works now, disabling hides the email field on sign-up. (073772a)
  • Matrix E2EE: The library used added a wrapper which didn't have the previous issues I'd faced, so this is now included in most builds of the app. See the build tags for your version in Settings > About to check if it's enabled. (69569e5)
  • Statistics routes: Added /(invites|activity|users)/count[/used] "statistics" routes, for use with your own data collection/visualization software like Grafana. A summary and code example is available on the wiki.
  • Added option to keep 1 backup from each previous jfa-go version. (d6f5c91)
    • This info is now included in backup filenames as a result.
  • Added a direct link to the "My Account" password reset page, by default at /my/account/password/reset. (b5dea77)
  • Removed old discord commands: Make sure you're using the newer slash command-style. You probably already were. (15a317f)
  • Slashes in announcement template titles now work (6b576f2)
  • Fixed making an account from an invite with no profile selected. (7192221)
  • Proxy settings are now used in more places (Mailgun, API Clients) (a52dd26, 86c7551, more)
  • Fixed usernames with non-ASCII characters not working for login (i.e. Unicode B64 encode) (#364, 6347495)
  • Implemented ETags, hopefully solving the issue of stale caches on jfa-go updates. (688e941)
  • Pages will no longer be indexed by search engines (e44d11c)
  • Disallow "+" in usernames (Jellyfin doesn't like it). (6c30a1f)
  • Reduce the max size of the .vlog file created by the DB, which could get up to 2GB. Also adjustable in settings (advanced). (c5f4098)
  • Allow disabling SMTP encryption for locally-hosted things like provider bridges (da0dc7f)
  • Fixed dated wiki links in settings. (65a25a7)
  • Invite details expand with a transition now, as I originally wanted. (909614c)
  • CSS Adjustments, lots of them
  • Translations as always from many people.
  • Small PRs from @Mavyre, @michaelBelsanti, @mxkyb

Meta

  • User-related cleanup: lots of deduplication, with new user functions especially. Also, contact methods now implement a common interface (except email), and Jellyseerr/Ombi one as well. See commit notes for more information. (54e4a51)
  • Builds are now done on an arm64 host with woodpecker, rather than drone. Migration resulted in some design improvements, and much quicker builds. Unfortunately the prerequisite image with build deps is now only available in arm64 form.
  • Fixed(?) deb repo, should be up to date now.
  • Message/Email rework: Workflow for adding new ones is simpler now. Less redundant fluff in mjml files. (Customizable) messages info is now mostly defined in customcontent.go, and there's less duplication in the constructX methods for each. Guide on the wiki has been updated, and explains things the old one didn't get into.
  • Log lines (stuff printed in the console that isn't variable) consolidated in logmessages/logmessages.go. This was done to force me to review all the logging in the app for grammar and duplication. Could open up translation in the future, too. (7113942)
  • The Makefile is a proper one now, and does incremental builds properly in most cases. It's also now used in the goreleaser build process for simplicity. (ce6a577)
  • Better errors for API clients: They now mostly don't return a status code, instead generate an error from it if necessary and return that. (2310130)
  • Lots of code other code cleanup on front and back-end
  • Config base file is now in YAML, and the INI generation script is now written in Go. Python no longer required for build. (f063b97)
  • Share some stuff related to pseudo-pages across the web app, although this seems to have made things more fragile than before. (d2e5209)
  • Started writing tests for some new features. make test now exists.
  • Changed banner font, and the ones used in emails.
  • Added a "List" type for settings (6bad293)
  • Added "Groups" and "Order" to config-base: Groups are just folders made up of sections or other groups, Order is an optional root order for the settings sidebar. (6bfb345, 8f3b860) New validation script scripts/yaml as a result. (fe20187)
  • Improved ThirdPartyService interface, single function for adding, removing and setting contact pref of email/discord/telegram/matrix. Used more widely too, improving/fixing functionality of Ombi/Jellyseerr integrations. (27a8073)
  • More refactoring

Changelog

Changelog
  • cbb8de0 Added translation using Weblate (Persian)

  • 7a51acb Added translation using Weblate (Portuguese)

  • 95e77b2 Added translation using Weblate (Thai)

  • 4e7256f Added translation using Weblate (Thai)

  • dd8119d Added translation using Weblate (Thai)

  • 5a335a1 Added translation using Weblate (Thai)

  • 4f8fd7f Added translation using Weblate (Thai)

  • e75c71e Added translation using Weblate (Turkish)

  • f423b22 Added translation using Weblate (Turkish)

  • 273e5ca Added translation using Weblate (Turkish)

  • 6052329 Fix deprecated georeleaser flag

  • acfdcdb Fix referral url when subdomain contains account

  • efa113a Merge Jellyseerr Support

  • 285215c Merge branch 'main' into user-pagination

  • 9339992 Merge branch 'main' of github.com:hrfee/jfa-go

  • 1780aa5 Merge branch 'main' of github.com:hrfee/jfa-go

  • 0b92060 Merge branch 'main' of github.com:hrfee/jfa-go

  • 275d918 Merge branch 'main' of github.com:hrfee/jfa-go

  • 3c0f3e9 Merge branch 'main' of github.com:hrfee/jfa-go

  • 0c257b7 Merge branch 'main' of github.com:hrfee/jfa-go

  • 024b692 Merge branch 'main' of github.com:hrfee/jfa-go

  • a11ac1b Merge branch 'main' of github.com:hrfee/jfa-go

  • 37bdf50 Merge branch 'user-pagination' of github.com:hrfee/jfa-go into user-pagination

  • 37545e1 Merge pull request #297 from hrfee/dependabot/npm_and_yarn/postcss-8.4.31

  • a085e91 Merge pull request #347 from jeppevinkel/patch-1

  • 73197df Merge pull request #359 from hrfee/dependabot/go_modules/easyproxy/golang.org/x/net-0.23.0

  • bc66f46 Merge pull request #360 from hrfee/dependabot/npm_and_yarn/multi-e3a4bbf809

  • eefd350 Merge pull request #361 from hrfee/dependabot/npm_and_yarn/site/word-wrap-1.2.5

  • a492c06 Merge pull request #362 from hrfee/dependabot/npm_and_yarn/word-wrap-1.2.5

  • c7995cd Merge pull request #366 from hrfee/dependabot/npm_and_yarn/site/ws-6.2.3

  • 3133996 Merge pull request #376 from Mavyre/main

  • 8f3f1fc Merge pull request #380 from hrfee/dependabot/npm_and_yarn/nanoid-3.3.8

  • 93ae2ac Merge pull request #386 from hrfee/dependabot/npm_and_yarn/site/esbuild-0.25.0

  • 56ee548 Merge pull request #388 from michaelBelsanti/shebangs

  • 6404fda Merge pull request #392 from hrfee/dependabot/go_modules/easyproxy/golang.org/x/net-0.36.0

  • b47a481 Merge pull request #405 from hrfee/paramaterized-paths

  • 908e9f0 Merge pull request #420 from hrfee/dependabot/npm_and_yarn/multi-1083d179d6

  • fc4cd4c Merge pull request #432 from mxkyb/fix-template-key

  • 59e9d45 README: Add e2ee explanation, config note

  • 2d066ea README: update supported version, mention jellyseerr, update ci link, embed font in banner

  • 27a8073 ThirdPartyServices: SetContactMethods for setting, enable/disable

  • 9c353f2 Translated using Weblate (English (United Kingdom))

  • b8a1e41 Translated using Weblate (English (United Kingdom))

  • 722e7e6 Translated using Weblate (English)

  • c8b89f4 Translated using Weblate (French)

  • f4038f0 Translated using Weblate (French)

  • 8091d4c Translated using Weblate (French)

  • a7529c7 Translated using Weblate (German)

  • 7c3f84b Translated using Weblate (Greek)

  • 03367b2 Translated using Weblate (Hungarian)

  • cecf9ba Translated using Weblate (Hungarian)

  • 442ce1f Translated using Weblate (Hungarian)

  • a2d212e Translated using Weblate (Hungarian)

  • c2b08a3 Translated using Weblate (Indonesian)

  • 3c38a0e Translated using Weblate (Indonesian)

  • 423d8f5 Translated using Weblate (Indonesian)

  • e464661 Translated using Weblate (Italian)

  • cae22a9 Translated using Weblate (Polish)

  • 97f42b2 Translated using Weblate (Portuguese (Brazil))

  • 0a56f7c Translated using Weblate (Portuguese (Brazil))

  • d5531ed Translated using Weblate (Portuguese (Brazil))

  • ae208a8 Translated using Weblate (Portuguese (Brazil))

  • a2e263a Translated using Weblate (Portuguese (Portugal))

  • d90617c Translated using Weblate (Spanish)

  • d123d6a Translated using Weblate (Spanish)

  • d40acc8 Translated using Weblate (Spanish)

  • 3c5826a Translated using Weblate (Spanish)

  • 3ea8f27 Translated using Weblate (Swedish)

  • 25ed44a Translated using Weblate (Thai)

  • 12e7456 Translated using Weblate (Thai)

  • 4ea695d Translated using Weblate (Thai)

  • dd91a5c Translated using Weblate (Thai)

  • 9998aff Translated using Weblate (Thai)

  • 0152acd Translated using Weblate (Turkish)

  • 0b06dd2 Translated using Weblate (Turkish)

  • 3b956ca Translated using Weblate (Turkish)

  • e7fcdf0 Translated using Weblate (Vietnamese)

  • 5e653c5 accounts: add "extend from previous expiry"

  • ebff016 accounts: add "record count", start searchable user cache

  • 28440a9 accounts: add "record count", start searchable user cache

  • ac56ad1 accounts: add credit for infinite scroll

  • bdae52f accounts: add credit for infinite scroll

  • a161294 accounts: css adjustments

  • bdd1460 accounts: double click "select all" to load and select -all-

  • 6ebc7d1 accounts: fix bool queries on (some) string fields

  • 4dcec4b accounts: fix infinite scroll over-loading, use scrollend+polyfill

  • 47188da accounts: fix infinite scroll over-loading, use scrollend+polyfill

  • 3559e32 accounts: fix profile list for enabling referrals

  • d09ee59 accounts: infinite scroll for performance

  • 1ec3dda accounts: infinite scroll for performance

  • d88194b accounts: invalidate user cache in more/all places

  • d8e624a accounts: invalidate web user cache on changes as well

  • d60dea6 accounts: make all components of profile application optional

  • 2a69372 accounts: make ombi/jellyseerr appliction optional on "modify settings"

  • 48a2058 accounts: notify users of expiry adjustment

  • 8ba6131 accounts: pagination, server-side search

  • 94e0764 accounts: pagination, server-side search

  • 0fd3981 accounts: server-search user included in query param

  • 85eea23 accounts: share telegram linking modal with other pages

  • ae808c5 accounts: standardise "text with edit button" component

  • 1dfe139 activities: fix slow load w/ lots of users

  • 58c7b69 activities: fix slow load w/ lots of users

  • 31d3e52 activities: fix updateExistingElements, rename

  • 0a7093a activities: fix updateExistingElements, rename

  • 399ce3b activity: Just use window.URLBase

  • 3c87b78 activity: add filtered count route

  • 792296e activity: basic query support

  • 6fff8a8 activity: basic query support

  • 598859a add translation from Weblate (Kurdish (Central))

  • 9cca1d9 add translation from Weblate (Portuguese)

  • bd573f3 add translation from Weblate (Thai)

  • c60f93d add translation from Weblate (Thai)

  • e2543bd add translation from Weblate (Turkish)

  • 8d5aa0d add translation from Weblate (Turkish)

  • 465ed9f adjust template key

  • cd98e51 adjust wording in expiry adjusted email

  • ab3989f admin: add build tags to "About"

  • 42d1abe admin: change path behaviour for the billionth time

  • 617f7ee admin: fix pseudo-urls again

  • 39f6d14 admin: hide scrollbar on navbar on chrome

  • da4470b admin: store email on manual account creation

  • 6b576f2 announce: URL encode/decode template labels

  • 2310130 api clients: return data, error, no status

  • 006fde5 api-users: GetUserCount with app.jf, not userCache

  • 6d2e517 api-users: trigger tps contact info link on admin newUser

  • 7c808b5 api: adjust a couple of URIs

  • 79e8b24 args: add arg to disable api auth (for development!)

  • c5d4535 attempt 2 at BUILT_BY in Docker CI

  • 6347495 auth: use unicode b64 encoding on browser

  • 711b817 auth: add note for self about secure cookies

  • 2f4e689 auth: fix default retry count value

  • b2771e6 auth: source cookie hostname from jfa_url

  • a0165f6 auth: strip port from domain if present

  • d6f5c91 backups: add more info, keep 1 of each version opt

  • 0b73e3f build(deps): bump esbuild from 0.18.1 to 0.25.0 in /site

  • c2bdc67 build(deps): bump golang.org/x/net from 0.15.0 to 0.23.0 in /easyproxy

  • cef84fa build(deps): bump golang.org/x/net from 0.23.0 to 0.36.0 in /easyproxy

  • 0e9a7d0 build(deps): bump nanoid from 3.3.6 to 3.3.8

  • 92f8259 build(deps): bump on-headers and morgan

  • 19495be build(deps): bump postcss from 8.4.24 to 8.4.31

  • 494b8b2 build(deps): bump word-wrap from 1.2.3 to 1.2.5

  • e901ba6 build(deps): bump word-wrap from 1.2.3 to 1.2.5 in /site

  • 4455c15 build(deps): bump ws

  • 436a1db build(deps): bump ws from 6.2.2 to 6.2.3 in /site

  • 51e3c37 build: DBEUG=on disables minification

  • 790accc build: Update dockerfile for new Makefile

  • fd32b73 build: attempt to fix dockerfile

  • 37a062e build: change deprecated goreleaser option

  • 302c4c1 build: check and re-copy modified config-base

  • 3f59312 build: copy data into correct location in dockerfile

  • d2c7bf0 build: correct updater on docker

  • ef7132b build: de-dupe goreleaser

  • 1aa100d build: dont go build when INTERNAL=off and no changes

  • 010ce5f build: downgrade swaggo

  • 48be756 build: e2ee as separate build

  • 2237286 build: enable E2EE by default, partially in CI

  • acba411 build: fix constant re-build of css

  • 418f3c4 build: fix crash css/js inlining

  • cf5ec3b build: fix dockerfile for E2EE

  • d62add0 build: fix nfpm packaging for e2ee

  • 62e27c3 build: include latest banner automatically

  • a4d436b build: increase goreleaser build timeout

  • 6308db4 build: push redoc after build

  • 9e9f46d build: remove compile_mjml script, no python!

  • ce6a577 build: rewrite Makefile properly (incremental builds)

  • 2d7f44e build: use goreleaser within dockerfile

  • 704157b bump api version

  • d7c94ed bump api version

  • e623897 bump mediabrowser again

  • ee05f4f bump mediabrowser again

  • 4b564d7 bump mediabrowser again, log authed account name

  • f4a7238 bump mediabrowser version, always verbose

  • eab33d9 captcha: fix for custom invite form subpath

  • bc4c63b ci: another amendment foor woodpecker 3.x

  • 98d9bc6 ci: attempt to fix deb repo processing

  • 96983d7 ci: fix stable, add gh token for publishing

  • e9e361a ci: full clone for valid rev-list

  • 7c8e463 ci: migrate to woodpecker on arm64

  • eb94179 ci: run tests

  • 6f0f6e6 ci: switch deb repo address

  • 537b459 ci: update for woodpecker 3.x

  • 6bfb345 config add "Group" notion

  • 941367f config: MustSetValue all MustInts

  • 44e8035 config: add http:// to all urls if needed, fix invite link generation

  • 6bad293 config: add support for "list" type

  • 3299398 config: add user cache async/sync timeout options

  • 64a1440 config: add user cache async/sync timeout options

  • 3a0f61e config: add wiki links

  • f26042a config: change base url-related text

  • e71d492 config: migrate "url_base" dupes to "jfa_url"

  • f063b97 config: migrate to new yaml format

  • 787d0e7 config: rename some sections

  • c52ba21 config: start adding path parameters

  • 65a25a7 config: update wiki links

  • 033319a css: bump CSSVERSION

  • 6f5fc09 css: fix inv creation card width on mobile

  • c5f4098 db: add max vlog size setting

  • d710b9a db: fix valuelogfilesize calc

  • dca83dc db: reduce default vlog size to 256M

  • 785395d disable request logging

  • 28ca022 discord: also check disabled users in housekeeping daemon

  • 0fe574f discord: clarify "Invite channel" setting

  • 448955c discord: ensure discord housekeeping enable for previous feature

  • 07d02f8 discord: fix admin-check for /inv

  • ffd46ff discord: option to add/remove role on enable/disable/deletion

  • 15a317f discord: remove old message-based commands

  • db1e812 discord: retry auth/command register, do latter in bulk

  • 8f04f49 docker: use jfa-go-build-docker for quicker builds

  • da0dc7f email: Allow no SMTP encryption

  • fbbb03a email: add new "expiry adjusted email"

  • 8781e48 email: change font, template common parts

  • fe4097a email: remove ssltls mention

  • a52dd26 email: use proxy for mailgun, too

  • 87c0f54 email_test: allow running with INTERNAL=on

  • e67f1bf emails: fix and confirm function of all emails

  • febbe27 emails: fix conditionals not being cleared on editor load

  • 94efe9f expiry: add "remind N days before"

  • 86c37fb expiry: add option to delete after n days

  • bb41bc3 fix disable/re-enable text/color on button on accounts

  • dda363b fix: added discord and telegram linking verification on sign up page

  • 6c30a1f form/admin: don't allow "+" in username/email

  • dabef83 form: add more customizable success card

  • bcb6346 form: allow relative redirect_url

  • 7192221 form: fix account creation with no profile

  • ea57d65 form: fix contact details/profile application when using email confirmation

  • 073772a form: functional "collect on sign-up" setting

  • 0ccc314 go: update deps

  • a92f449 go: update deps; mediabrowser thread-safe cache

  • 5cc97ea goreleaser: fix deprecations

  • 214d16c goreleaser: increment version

  • ec2f826 goreleaser: support building on non-x86-64 host

  • 11eb907 html/css: fix overlap of top button row on some pages

  • e44d11c html: add noindex tag to header.html

  • 7cb66e2 http: add "Use reverse proxy host" option

  • c7ba994 images: change banner font

  • 80fd7c9 invite: add /count/used route

  • 9409370 invites: add /count route

  • 909614c invites: add details expand transition

  • 41ddf73 invites: emails -> messages, log when sendTo attempted when disabled

  • eb619b6 invites: fix /count routes

  • 769a7c4 jellyseer: auto-null NotifTypes field

  • 35f8337 jellyseer: revert auto-nulling of NotifTypes

  • 7b9cdf3 jellyseerr: add notifications related methods

  • 1fa340f jellyseerr: add option to auto-import users

  • 73e985c jellyseerr: add user modification methods

  • db1c62c jellyseerr: cleanup requests method, read proper errors

  • 385953b jellyseerr: fix email setting, cover all contact adjustment areas

  • 982d3ec jellyseerr: fix error message parsing

  • 1d4ea7d jellyseerr: fix unlinking discord/telegram

  • 51961d1 jellyseerr: format telegram ChatID as string

  • a136800 jellyseerr: set appropriate daemon period

  • 9c34192 jellyseerr: start API client

  • a97bccc jellyseerr: use in profiles, apply on user creation and modification

  • 3c28537 lang: rename ckb.json

  • 0162638 lang: report section error comes from

  • 18f8921 list: add back default sort to _load

  • b40abaf list: cleanup, include offset in DateAttempt

  • d8fe593 list: fix RecordCounter, inf scroll in search, activities

  • 4a92712 list: fix RecordCounter, inf scroll in search, activities

  • 70e35b8 list: fix activities sort, css improvements

  • f604457 list: fix activities sort, css improvements

  • 364b010 list: refactor loading methods

  • e9b8d97 logging: start consolidating log lines

  • 7113942 logmessages: all log strings in one file

  • f348262 logmessages: finish up to api-users (alphabetically), refactor

  • 0783749 matrix: add log for matrix crypto store init

  • 69569e5 matrix: working E2EE, on by default

  • b1c578c mediabrowser: bump

  • 4cc5fd7 mediabrowser: bump for parental rating setting

  • 05d473d mediabrowser: bump version for JF 10.9.8

  • 6a8b21c mention 10.11.0 compatibility

  • b0e94a4 merge lang

  • c93211b merge user "pagination"/server search

  • 60dbfa2 messages: custom content described in customcontent.go, message tests

  • 58098a4 meta: update deps

  • 0595224 meta: update esbuild

  • 30acc4f profiles: fix "max parental rating" nil-value

  • 8307d3d proxy: use for updater

  • 86c7551 proxy: use wherever http.Client is, update mautrix

  • 11eae03 readme: cleanup and up-to-dateness

  • fb5d3c4 remove drone.yml

  • c442ff5 rename daemon files

  • fcdd4e4 revert stringResponse change

  • 9df2a82 router: correctly use local FS for custom HTML

  • c02cfff router: fix /accounts collision again, gracefully fail for others

  • 4f02c44 router: fix /accounts route in normal usage

  • e7f4de2 router: fix webFS on form subpath

  • 688e941 router: implement ETags/If-None-Match based on build time

  • fe20187 scripts: add "yaml" script

  • 58c2fa3 scripts: fix typo from PR 388

  • c1a2fb2 scripts: use more portable shebang

  • ef253de search: add localOnly to web app queries, fix string+bool queries

  • 3725147 search: add localOnly to web app queries, fix string+bool queries

  • fb83094 search: factor out date and bool comparison

  • c5683db search: factor out date and bool comparison

  • 2657e74 search: fix "search all" button disabling logic, more

  • 699cbee search: fix "search all" button disabling logic, more

  • 1d7d82b search: fix server-side date behaviour

  • c922dc5 search: fix server-side dates, add mentionedUsers, referrer, time

  • 9715f90 search: fix server-side dates, add mentionedUsers, referrer, time

  • 732ce1b search: more server-search refinement

  • b19efc4 search: more server-search refinement

  • 8f3b860 settings/config: add root order and use on web, fix nesting and animation

  • 2d98c6c settings: add email test note

  • 01a75c3 settings: add jellyseerr wiki link, clarify API key src

  • b40211a settings: add loader, improve css a bit

  • a7aa3fd settings: de-dupe settings

  • 3216113 settings: dependencies of dependencies

  • 60ccc51 settings: deprecate most custom file path settings

  • d6d73e8 settings: fix (restart)required detection on save

  • a680db9 settings: fix group indent

  • e38ac62 settings: fix search with disabled/deprecated sections/settings

  • 08c350d settings: fix search with groups

  • 8753871 settings: fix weirdness on mobile

  • 96ec12f settings: hide groups if all children are hidden

  • 442bdd2 settings: leave groups opened/closed on advanced settings toggle

  • d7e4431 settings: more dependency fixes

  • 3178ca7 settings: remove badge note, add tooltips to them

  • a3dc8b7 settings: render groups

  • 607d8e9 settings: show updates at top if one available

  • baeb89b setup: add jellyseer, reference wiki for PWR

  • d2da904 setup: add note about changed url

  • 632393b setup: adjust card width

  • 65662c5 setup: fix config application

  • f1b5626 setup: fix url-based navigation

  • 2057823 setup: flex-ify, light/dark, keep page position on reload

  • 16c5420 setup: show internal and external links on finish

  • a0bafad site: modernise makefile

  • 7c9f917 swag: add new statistics tag, add filtered user count route

  • 8f3c723 systemd: get executable path properly

  • 5d49a56 template: add tests, fix up easy holes

  • 0b43ad4 template: passed var and conditional names don't include braces

  • aab8d6e template: report errors/warnings

  • 5fe0e0a timer: add scheduler/timer with day precision

  • 7c989fd tls: don't "crash" on server close

  • 45e74f6 translation from Weblate (Chinese (Simplified))

  • 186bf30 translation from Weblate (Chinese (Simplified))

  • 8ee5377 translation from Weblate (Dutch)

  • 78c07aa translation from Weblate (Dutch)

  • 189b105 translation from Weblate (French)

  • 2c00f7e translation from Weblate (French)

  • bbc99bb translation from Weblate (German)

  • d8dcb84 translation from Weblate (German)

  • c85a784 translation from Weblate (German)

  • 37576f3 translation from Weblate (Hungarian)

  • 5aebc32 translation from Weblate (Hungarian)

  • 2543cd0 translation from Weblate (Hungarian)

  • 0094ce7 translation from Weblate (Indonesian)

  • 59654b7 translation from Weblate (Indonesian)

  • ba18366 translation from Weblate (Indonesian)

  • 98303a2 translation from Weblate (Italian)

  • aa791f1 translation from Weblate (Italian)

  • 81f137e translation from Weblate (Kurdish (Central))

  • 5fe532f translation from Weblate (Kurdish (Central))

  • c2f5922 translation from Weblate (Polish)

  • 867aad7 translation from Weblate (Portuguese (Brazil))

  • e4b335f translation from Weblate (Portuguese (Brazil))

  • b5ae5f9 translation from Weblate (Portuguese (Brazil))

  • 59fbfdc translation from Weblate (Portuguese (Brazil))

  • 9678e5c translation from Weblate (Portuguese (Brazil))

  • aa04ede translation from Weblate (Portuguese (Portugal))

  • 3fedc42 translation from Weblate (Spanish)

  • 42d5785 translation from Weblate (Spanish)

  • 45d90f7 translation from Weblate (Spanish)

  • 4df313f translation from Weblate (Spanish)

  • 35f1c06 translation from Weblate (Thai)

  • 5ebcb9d translation from Weblate (Thai)

  • a0e6900 translation from Weblate (Turkish)

  • 59400db translation from Weblate (Turkish)

  • 702e42b translation from Weblate (Turkish)

  • 848b532 ts/modal: dont close when not open!

  • 492d571 ts: fix setTimeout return type for new tsc

  • d2e5209 ts: move "page" stuff to module

  • 02f4ba6 ts: use pages modules in admin (kinda), change pseudo-links

  • 3715697 ui: fix layout when userpage card not shown on login

  • 9400a5b update LICENSE date

  • a4c60c7 update go.mods

  • 0e7245e update: distinguish E2EE builds

  • b5f28da updater: demote "tag empty" to debug log the stable tag is usually empty because i rarely update it so it'd be nice if this didn't show up so much for normal users. For #313, #329 and more, probably.

  • 0967d47 urlpaths: seemingly full functionality

  • 2190f48 user-d: dont bother attempting users w no contact

  • 6a5e97b user-d: patch holes in expiry mechanism

  • 41dff3d user: fix welcome message sent value on NewUserFromAdmin

  • 272c38e user: url split on pathname only

  • b53120f usercache: cleanup, also elsewhere

  • d0f740f usercache: cleanup, also elsewhere

  • dec5197 usercache: we'll do it ourselves

  • 3067db9 usercache: we'll do it ourselves

  • b5dea77 userpage: add password reset direct link

  • 3c3297c userpage: bump mediabrowser version

  • ab5a828 userpage: fix back to admin button

  • 4710216 userpage: fix invite code gen

  • 1296992 userpage: fix login saving, url rewriting on subpath

  • 66e6b68 userpage: make it clearer access control settings dont apply to it

  • 488ba7b userpage: use window.pages.MyAccount instead of window.location.pathname

  • 280c6e4 users: attach Jellyfin ID to contactMethodUser

  • 4431116 users: consolidate methods for disable/enable and deleting users

  • 54e4a51 users: huge cleanup/dedupe, interface-based third-party services

  • f289680 users: remove notes

  • 2843127 web: css adjustments

  • a9dc601 web: fix intermittent "coudln't connect" on page load

  • e5f79c6 webhooks: add "user created" webhook

  • 1a85feb woodpecker: add "built by" for docker builds

  • c75418d woodpecker: fix FIXME'd docker tags

Don't miss a new jfa-go release

NewReleases is sending notifications on new releases.