Commit Graph

50 Commits

Author SHA1 Message Date
Harvey Tindall 28440a9096 accounts: add "record count", start searchable user cache
RecordCounter class created from that in activityList, and put in
accountsList. PageCount-type route standardized and made for /users
(/users/count). Created userCache, which regularly generates the
respUser list returned by /users. Added a currently dumb POST /users for
searching/pagination, GET /users is now just for getting -all- users.
go-getted expr, an expression language that seems like it'll be useful
for evaluating local searches. We don't store this data in the badger
    DB, so we can't use the nice query form provided by badgerhold.
2025-05-15 19:19:51 +01:00
Harvey Tindall 58c2fa3dde scripts: fix typo from PR 388
was /usr/env/bin instead of /usr/bin/env.
2025-02-26 14:09:42 +00:00
quasigod c1a2fb2d4a scripts: use more portable shebang 2025-02-24 10:40:54 -05:00
Harvey Tindall a4c60c71ea update go.mods
tried to lower required version, most subpackages worked, however some
other dependency means the main package requires 1.22.
2024-08-26 17:26:04 +01:00
Harvey Tindall 9e9f46d97b build: remove compile_mjml script, no python!
if I had taken a second to actually read the documentation, i'd have
    realized the mjml command can process a bunch of files at once.
    On my machine, cuts time down from ~800ms to ~500ms.
While there are still some scripts using python, none are needed to
build the software anymore, so no python build deps!
2024-08-26 17:01:34 +01:00
Harvey Tindall f063b970b4 config: migrate to new yaml format
config-base.yaml is almost identical to json version, except there's no "order" field, as
"sections" and "settings" fields are now lists themselves and so Go can
parse the correct order. As such, removed enumerate_config.py. Also,
rewrote scripts/generate_ini.py in Go as scripts/ini/. Config structure
in Go form is now in common/config.go, and is used by jfa-go and the ini
script. app.configBase is now untouched once read from config-base.yaml,
and instead copied to and patched in app.patchedConfig. Patching occurs
at program start and config modification, so GetConfig is now just a
couple of lines. Discord role patching still occurs in GetConfig, as the
available roles can change regularly. Also added new "Disabled" field to
sections, to avoid the nightmare of deleting from an array.
2024-08-26 15:43:28 +01:00
Harvey Tindall 2057823b7a setup: flex-ify, light/dark, keep page position on reload
got rid of a bunch of m[l/r/x/y]-x tailwind classes and used more
flex-[row/col] gap-2's. UI should be more consistent in general, and
with the admin UI.

The page you were on is actually read from the URL on reload, however
does not keep settings (implemented just for ease of UI editing,
really).

`missing-colors.js` preprocessor script now applies dark prefixes for
<section>s, but like with cards, does not apply a default ~neutral to
those without, so that <section class=""> looks different to <section
class="~neutral">.

Light/dark selector added to setup too, and the actual mode given to the
browser through CSS `color-scheme` is correct, meaning things like textareas, checkboxes and
controls are now colored according to the theme.
2024-08-21 18:31:54 +01:00
Harvey Tindall d2c7bf06f7 build: correct updater on docker 2024-08-11 17:39:58 +01:00
Harvey Tindall 2d7f44eeec build: use goreleaser within dockerfile
jfa-go-build-docker has also been updated with libolm deps for all
arches, and version.sh now tells goreleaser to do internal or external.
2024-08-11 16:28:21 +01:00
Harvey Tindall a4d436b16b build: increase goreleaser build timeout
CI server is quite slow, so the 30m timeout of goreleaser was being
exceeded. Bumped to 60m, as defined by "TIMEOUT" in version.sh.
2024-07-21 14:29:35 +01:00
Harvey Tindall 311ecb7030 userpage: generate & display referral links
shown on a new card, with an explanation, the number of remaining uses,
and expiry of the current referral.
2023-09-07 16:25:47 +01:00
Harvey Tindall f72960635d build: include debug symbols & sourcemaps in unstable builds
should help with debugging.
2023-06-26 23:48:16 +01:00
Harvey Tindall 753f5fc517 compile_mjml: use multiprocessing instead of thread 2023-06-24 11:36:15 +01:00
Harvey Tindall f1b7ef303d Makefile: GOESBUIILD changes
doesn't ever install it if it's already present. Also moved it to
optional dependencies in package.json.
2023-06-23 21:31:33 +01:00
Harvey Tindall b7b3aa1eb7 build: fix goreleaser, include optional builder name
builder name shows up in about section again, as does the build time.
2023-06-23 14:41:21 +01:00
Harvey Tindall f083d6b53f updater: include build date, check against updates
build time is included in the binary, so the buildrone release date is
compared to it when deciding if something is an update or not.
2023-06-23 14:16:36 +01:00
Harvey Tindall 920161b920 settings: add "note" type, shows as card
also comes with a "style" attribute, to apply a color to the aside it's
shown in. Used in User Page/Messages to mention the customize button,
and on User page w/ a critical color to mention the jellyfin login
requirement.
2023-06-21 12:28:52 +01:00
Harvey Tindall 8e153cd92f userpage: unlink accounts 2023-06-20 16:44:12 +01:00
Harvey Tindall 609039baeb userpage: change email (+ confirmation)
edit/add button added for email address. Confirmation works too.
2023-06-18 19:38:09 +01:00
Harvey Tindall 5beeeb958b userpage: show expiry 2023-06-18 12:27:18 +01:00
Harvey Tindall a22f032924 userpage: show and allow modification of contact methods 2023-06-17 17:27:44 +01:00
Harvey Tindall 96c62f556b langmover: rewrite whole directory when using --extract
--extract now takes a path argument, a new copy of the source folder is
made there. Rebuilding the whole folder gets rid of annoying things like
mis-capitalized files.
2023-06-17 12:45:00 +01:00
Harvey Tindall ebdad3f7c7 scripts: fix langmover for non-ascii chars 2023-06-16 20:59:06 +01:00
Harvey Tindall a1af6e3892 scripts: add langmover
a tool to move strings between language file sections. Will be used to
move login strings from admin into their own "login" file section.
2023-06-16 17:27:09 +01:00
Harvey Tindall 0e241f56fb scripts: add script to generate fake accounts
might be useful for screenshots too, currently just using for testing
the sorting/filtering.
2023-06-14 11:50:22 +01:00
Harvey Tindall baffa4a38c add NOTEMPLATE env var to missing-colors.js 2022-01-30 14:41:11 +00:00
Harvey Tindall 8758d74e32 fix titles for some pages 2022-01-10 00:46:01 +00:00
Harvey Tindall 77c05a4d4f prefix css with version to avoid cache conflict 2022-01-08 16:42:36 +00:00
Harvey Tindall 3294b27029 add replaceAll polyfill 2022-01-08 00:22:21 +00:00
Harvey Tindall 1ebc648158 fix broken go template if statements
All available DOM parsers for node would move the contents of if
statements outside of them, breaking things like the accounts tab. Fixed
with a regex pre and post process to comment out then uncomment all template usage.

builds now depend on perl for some regex, this can likely be changed in
future though.
2022-01-08 00:07:23 +00:00
Harvey Tindall e86f5f4c3c site: use tailwind 2022-01-04 21:14:12 +00:00
Harvey Tindall 3b0701e772 fix dark mode script 2022-01-04 20:46:22 +00:00
Harvey Tindall 9874dce520 merge tailwind and upgraded a17t
a17t v0.10 became a tailwind plugin rather than standalone css, and made
some other changes. Much of the original custom CSS now uses tailwind
classes, and there have been some other UI changes.
2022-01-04 20:28:36 +00:00
Harvey Tindall dd5eecf9f9 fix textareas 2022-01-01 02:17:24 +00:00
Harvey Tindall d1b5b74060 make most modals white 2021-12-31 17:28:08 +00:00
Harvey Tindall 277690ef79 allow for defining custom dark: variants, ignore querySelector, shrink margins 2021-12-31 16:01:17 +00:00
Harvey Tindall 508168b49e fix more oddities 2021-12-31 01:51:42 +00:00
Harvey Tindall e73ecb7a52 fix some padding issues 2021-12-31 00:22:28 +00:00
Harvey Tindall acc8892f26 switch to DOM based variant adding 2021-12-30 23:52:53 +00:00
Harvey Tindall 0f0355fd01 fix inline 2021-12-30 02:59:44 +00:00
Harvey Tindall a31f174375 add dark variants to ts
janky but works, and should report if theres a situation its not ready
to handle.
2021-12-30 02:45:29 +00:00
Harvey Tindall 18ae03554f tailwind: upgrade a17t, somewhat functional dark mode
instead of adding dark: variants to each element, a preprocessor script
adds them. still needs to be implemented to typescript.
2021-12-30 00:49:43 +00:00
Harvey Tindall 9092f42834 remove vulnerable node deps, cleanup 2021-11-14 14:50:40 +00:00
Harvey Tindall d7ab01063a apt: Use commit count to fix version comparisons
previous fix only worked because the numerical portion of the commit
hash happened to be greater. This should do properly fix it.
2021-05-31 22:11:43 +01:00
Harvey Tindall 0f3ad8bb69 fix generate_ini for multiline descriptions 2021-05-16 23:00:37 +01:00
Harvey Tindall e16f05b130 use build constraints for embed, clean up makefile
internal-files/external-files and compile-debug are gone, the
environment variables INTERNAL=on/off and DEBUG=on/off replace them.
2021-04-01 14:22:11 +01:00
Harvey Tindall 5892899114 thread compile_mjml 2021-03-13 17:05:59 +00:00
Harvey Tindall eb8f2777ae fix naming conflict with goreleaser, add buildrone key to other steps 2021-03-07 15:54:32 +00:00
Harvey Tindall 92332206f0 add basic update functionality
If enabled, jfa-go pings buildrone (hosted at builds.hrfee.pw) every 30
min for new updates. If there is one, it gets information (and if
applicable, a binary) from the appropriate source (buildrone, github, or
dockerhub) and displays it on the admin page. You can switch update
channels between stable and unstable. For binary releases, updates are
downloaded automatically and installed when the user presses update.

Since this obviously introduces some "phone-home" functionality into
jfa-go, I just want to say IPs are not and will not be logged by
buildrone, although I may later introduce functionality to give a rough
idea of the number of users (again, no IPs stored). The whole thing can
also be turned off in settings.
2021-03-07 15:23:44 +00:00
Harvey Tindall 403ad58274 move all scripts to scripts/ 2021-02-17 14:32:03 +00:00