Age | Commit message (Collapse) | Author | Files | Lines |
|
I'm really unhappy with the workarounds to deal with the global onClick
subscription doing the right thing, but I wasn't able to find a good
alternative.
|
|
|
|
|
|
|
|
Very much experimental. I'm not sure this is even the right model.
|
|
This version requires that all .elm files given to 'elm make' export a
'main' function, so we can't pass internal libraries anymore. I didn't
feel like maintaining a separate list of entrypoints, lazy workaround:
grep for elm files with a definition of 'main'.
|
|
|
|
And I can't say the wikidata field is all that intuitive to edit. Need
to look at it later...
|
|
This is the first major editing form to be converted, so I'm expecting a
little breakage. A good chunk of this code has been copied from v3.
In terms of the UI there has been a small change: aliases that are still
referenced do not have the 'remove' link and instead have a flag that
shows that they are still referenced. This ought to be a bit friendlier
than throwing an error message after the user has submitted the form.
Some other things I'd like to improve in this form:
- BBCode preview
- Pasting in external links and letting the form figure out the Pixiv
ID, etc.
- Or perhaps even: Integrate AniDB/Wikidata search/autocompletion.
|
|
It's not very obvious when a users' account has been linked, and it
wasn't clear to some that the rewards need to be enabled manually.
Hopefully this clears up both.
|
|
|
|
|
|
Only place where this isn't applied (yet?): Sorting user lists still
goes by the old username and board names don't use the new unicode
names.
I have to say, I quite like the sql_user() and user_() pattern. It's not
without problems when applied to everything, but it's good enough for
several use cases.
|
|
They don't do anything yet.
|
|
option
Elm has a bug where the 'selected' attribute is not properly propagated,
that's fixed by patching the generated JS.
Also moved Ffi.js one level up, as it's important that that file is
loaded before any Elm modules are initialized.
|
|
This ensures that the email address linked to a user is always valid and
actually belong(s|ed) to that user.
|
|
This uses negative lookahead in the username regex so that the DB
identifiers can be matched with an HTML5 `pattern` attribute.
|
|
And add a small 'formField' function to shrink the Elm form generation
code a bit.
|
|
This way we have a 1-to-1 mapping between VNWeb::* stuff and elm/
modules, which makes it much easier to see which code belongs to what.
I did add a VNWeb::User::Edit stub for definitions that can be re-used
among the small forms.
|
|
This is largely copy-paste from v3.
|
|
|
|
The insecure-password-change flow is now slightly more friendly. The
logout functionality has been hardened to use POST and require CSRF.
|
|
Most of this is copied from v3. I did improve on a few aspects:
- db_edit() and db_entry() use VNDB::Schema rather than dynamically
querying the DB. This has the minor advantage of a faster startup.
- The Elm code generator now writes to multiple files, this avoids
the namespace pollution seen in v3's Lib.Gen and makes the dependency
graph a bit more lean (i.e. faster incremental builds).
- The Elm code generator doesn't update the timestamp of files that
haven't been modified. This also speeds up incremental builds, the elm
compiler can now skip rebuilding unmodified files.
- The Elm API response generator code now uses plain functions rather
than code references and all possible responses are now defined in
Elm.pm. Turns out most API responses were used from more than a single
place, so it makes sense to have them centrally defined.
The doc page preview function is also much nicer; I'd like to apply this
to all BBCode textareas as well.
(Elm.pm itself is ugly as hell though. And we will prolly need some HTML
form generation functions in Elm to make that part less verbose)
|