Age | Commit message (Collapse) | Author | Files | Lines |
|
My goals, in particular, were to:
- Make use of a more efficient jpeg encoder; jpegli in this case.
- Sandbox the image handling process to protect against codec
vulnerabilities; implemented with seccomp.
This isn't easy to do with software packaged in typical Linux repos, so
I had to improvise a bit. I switched to libvips as that is easier to
sandbox than ImageMagick and provided a Makefile to fetch and build a
custom libvips that uses jpegli. None of this is very portable, so to
simplify testing setups a simpler "imgproc-portable" binary is built
instead.
Also experimented with different resizing and encoding options,
but the defaults were mostly okay. See https://vndb.org/t21692
(This breaks the Docker setup, I'll fix that later. I'll also see if I
can drop the ImageMagick dependency that's still used for pngsprite.pl,
as it seems a little redundant)
|
|
Fixes https://vndb.org/t950.1680
|
|
https://vndb.org/t21372.3
|
|
Fixes https://vndb.org/t21372.1
|
|
...because I wanted to make a few minor changes.
|
|
|
|
Pointless busywork, because my brain is too mushy to work on useful
stuff. :(
|
|
No major changes compared to the Elm version, just a few minor
improvements:
- Better error reporting of invalid URLs
- Language field does not have a default anymore
- Duplicate staff list also displays alttitle
- Allow romanization for Greek names
|
|
Fixes https://vndb.org/t950.1659
|
|
|
|
Unfinished, primarily for testing.
https://vndb.org/t20399.36
|
|
This one got priority because many people appear to be stumbling on the
URL validation bug in this form. Staff edit form is still affected by
it, but that's less commonly a problem.
New form also doesn't pre-fill a language anymore and instead requires
the user to input one manually. Fixes a problem with non-JP producer
entries having JP selected by default.
|
|
|
|
|
|
|
|
For completeness.
|
|
For some reason people manage to fail the old input validation even on
this form.
|
|
|
|
|
|
|
|
|
|
How about I test the code before deploying?
|
|
Workaround for https://vndb.org/t8242.1461 - Not anywhere near perfect,
but tends to cover most titles. I might adjust the forms later on to
turn the romanization requirement into a warning, but for now this'll
do.
|
|
I'm sure this will have some false positives, i.e. titles that contain
non-latin characters but do not need a romanization, but forgetting to
add a romanization when it is necessary is now becoming a (too) common
mistake.
|
|
As discussed in https://vndb.org/t20453
|
|
As suggested in https://vndb.org/t13470.28 - with a few minor
adjustments.
This took me a few hours to code & test, SQL is hard :(
|
|
Fixes https://vndb.org/t2520.773
|
|
So that the save/load functionality is also available on a user's list.
Suggested by https://vndb.org/t950.1537
|
|
|
|
It's rather quircky, but it works. Suggested by
https://vndb.org/t950.1537.
|
|
Main reason for this rewrite is that I realized that many mobile
browsers don't properly support reportValidity() yet. The new form code
still heavily uses the HTML5 validation API, but doesn't rely on
reportValidity() as much since it has CSS :invalid fallbacks. And even
if that fails, the error messages reported by the server are slightly
more useful.
Also removed the bot verification question as an experiment, might come
back if it turns out to be needed.
Also added a silly checkbox to check if people read checkbox labels.
Also used <input type="email"> to help mobile browsers select the right
keyboard.
|
|
elm.min.js.gz shrunk by 9919 bytes. user.min.js.gz is now 9681 bytes.
Not a totally fair comparison and those few bytes are completely
irrelevant, but it at least shows that I'm not making things more bloated.
|
|
Yak shaving at its finest. I was working on an edit form for the new
franchises system, but then realized that the form JS and HTML kind of
sucked and a completely new form isn't the best way to experiment with a
new implementation. I also had some ideas to improve the user edit form,
so decided to rewrite that first, but then realized it's better to lay
down a smaller foundation before doing the complex stuff. So here we
are, a completely useless rewrite of a tiny little login form.
But I did improve error messages a bit while I was at it.
There's still a bunch of unknowns regarding form implementations: to see
if there's a more convenient way to set custom validations; to see if
HTML5 validation works well with form tabs; to see if URL fragments can
be used to select form tabs; mobile-friendly form layouts (should be
easier with this new approach); dropdown search improvements, etc. The
user edit form should prove a good testing ground for all of that.
|
|
|
|
|
|
Previous solution relied on negative margins more than I liked. This
solution is still surprisingly fiddly.
This requires TUWF commit 4b0e2df89fe180bfa2f3da195a80684a46a649db
|
|
Hopefully without breaking anything.
Switched to using flexbox for the homepage boxes instead of grid, in
order to fix an overflow issue on Pale Moon. But I later fixed a similar
issue with the relation graphs and history tables, so perhaps that
switch wasn't necessary.
|
|
So that there aren't any columns in need of quoting anymore.
|
|
The idea behind the list icon CSS filters was that they could be
adjusted in themes, but (1) that never happened and (2) even with colors
embedded in the SVG they can still be adjusted with the same mechanism.
In that light, embedding the colors in the SVG is the cleaner solution.
|
|
Unique classes have lower chance of clashing with anything else.
Automatically generating the dimensions increases the size of the CSS
file a bit, but it simplifies maintenance. The only thing that's still
done manually is the selection between the .svg and .png image.
|
|
Couldn't get fragment identifiers to work satisfyingly, so ended up
going back to old-fashioned CSS background-position. Oh well.
|
|
Honestly, this is all pretty pointless. I expect we'll see some real
wins in the conversion of the UList & AdvSearch stuff, but I'm not
very motivated to work on that soon.
|
|
|
|
Not that this is any less messy, but hopefully makes it easier to build
upon.
|
|
|
|
To reserve <b> for the standout styling.
|
|
Which is also kind of an abuse, but at least the semantics are much
closer.
(Next up: the standout class. Slowly working towards a "font: inherit"
and "color: inherit" reset, which'll remove the need for a bunch of ugly
workarounds)
|
|
|
|
Slowly preparing to get rid of Elm, starting with the easy stuff.
This is the real test: let's see if I can write Javascript without
introducing too many bugs.
I wasted three days trying to figure out how to integrate and use
Preact, only to come to the conclusion that I hate it. Its API has so
many awkward issues and rough edges that it makes one wonder how it ever
got so popular. So back to fiddling with mithril.js, which sure feels a
lot better designed. I threw out its routing & request features so
what's left is just a tiny vdom library - exactly what I wanted from
Preact.
The Subscribe widget code is kind of ugly, but that's unrelated to this
Elm->JS rewrite. I might look into cleaning it up later.
|
|
With a samesite cookie check, to see if that can be relied on.
|