AgeCommit message (Collapse)AuthorFilesLines
8 hoursSQL: Allow tags_vn.uid to be NULL for deleted usersHEADmasterYorhel7-54/+21
This fixes the issue of tag votes getting deleted when a user account is deleted, despite these votes being part of the kept "database contributions" mentioned in the privacy policy.
4 daysVN::Tagmod: Allow voting on non-applicable tags when they have existing votesYorhel1-2/+7
5 daysStaff::Edit: Disallow name=original in aliasesYorhel2-2/+6
5 daysTagmod.elm: Allow setting a note when downvoting a tagYorhel1-1/+1
8 Force noindex tags on pages with a ?view= parameterYorhel1-1/+1
Wouldn't want google to link to spoiler pages.
8 daysStaff::Page: Use server-side spoiler hidingYorhel3-42/+9
Using the new viewget/viewset infrastructure. This is *much* simpler in implementation and also solves the table striping anomaly when some rows are hidden.
8 daysLib.Autocomplete: Don't try to autocomplete whitespaceYorhel1-1/+1
8 daysChars::Page: Styling: Add "key" class to all keys in the tableYorhel1-2/+2
There's no always-present row in the info table, so each row needs to have the key...
8 daysChars::Page: Only show spoiler & sexual traits settings when they do somethingYorhel1-12/+24
i.e. when there's something on the page that would be hidden with different settings. For individual fields, just knowing that something is a spoiler is in itself a spoiler. But when it comes to the entire page, I can't imagine a case where "there is a spoiler somewhere on this page" would by itself be a spoiler, so this should be safe enough. Better than clicking on spoiler settings that don't do anything.
8 daysValidation: Actually honor spoiler preference if no view= parameter is setYorhel1-1/+1
Subtle bug: I had assumed $1 to be undef if the spoiler wasn't set in the view= parameter, but I put the '?' within the capture group so it would match an empty string... so $1 was an empty string rather than undef.
8 daysv2rw: Add instance listing to Chars::PageYorhel2-92/+43
I wasn't sure how to handle the fetching of multiple character entries; whether to extend/re-use db_entry() or write a separate function. Ended up going with the latter solution, as db_entry() already has other functionality (and overhead) that we won't be needing in this case. This overhead will matter when this function is used for the character listing on VN pages.
8 daysv2rw: WIP: Convert character pagesYorhel6-6/+266
This uses an alternative (non-JS) approach to spoiler hiding, which is both much simpler to implement and properly handles all cases. Downside is that it requires a page reload. It also allows direct linking to a character page with a particular view, but I'm not entirely sure if this is a welcome feature. This is a WIP because it doesn't display instances yet.
9 daysTagmod.elm: Add warning about unsaved changesYorhel1-12/+21
I'm pretty sure nobody will see that warning, considering its location next to the save button, but it's a start. Not sure where else I should put it.
9 Fix extraction of votesYorhel1-1/+2
12 daysTagmod.elm: Use onBlur rather than other-element-onMouseOver to hide note ↵Yorhel1-4/+4
edit input
12 daysTagmod: Add "notes" field to tag voting thingYorhel6-22/+66
Currently only displayed in the tag link browser and the tag editing form, but I'm hoping to display these on the VN page as well (on hover or something, not sure about the UI).
12 daysVNWeb::HTML: Sync "anonymous" name for deleted users in user_displayname()Yorhel1-1/+1
Should have been part of acd63f13d6a7878fc61bd375c5ec90882eae6c10
2020-02-06Cache Markdown-to-HTML in the database for doc pagesYorhel8-46/+66
Strips about 500ms off the page generation time for d11. The previous in-memory cache kinda worked, too, but it still often happens that the cache is empty. This cache also applies for docs_hist, so browsing through earlier revisions is now faster as well.
2020-01-29Discussions.Edit: Make sure the "title" field is marked as requiredYorhel1-1/+1
This is normally handled by the TUWF::Validate-generated HTML5 validation attributes, but in this case the title field does not have the 'required' attribute because it is absent for replies.
2020-01-29Discussions.Edit: Fix board linksYorhel1-1/+1
2020-01-28Tagmod.elm: Fix silly typoYorhel1-1/+1
2020-01-28v2rw: Convert the VN tagmod interfaceYorhel15-387/+421
This also changes the voting interface a little bit: - Spoiler options are a bit more concise - Mouse-over a button indicates what it does - The -1 and -2 options are not available anymore - Downvoted tags are hidden by default - Moderators can now vote-and-overrule in a single go
2020-01-24Use TUWF::XML's new xml_string()Yorhel2-15/+4
2020-01-23v2rw: Re-add "User options" functionality on release pagesYorhel4-53/+107
2020-01-23v2rw: Convert release pagesYorhel7-300/+226
This removes the user list management functionality, I'll reimplement those in a bit.
2020-01-22User::Lists: Don't throw error when there are multiple ?q= parametersYorhel1-1/+1
Just ignore the query in that case, consistent with other invalid parameters. (It's amazing to see the kind of crap that can accidentally get into the query string as a result of bad URL parsing/formatting/copy-pasting)
2020-01-19Display "[deleted]" users as grayedout "anonymous" insteadYorhel1-1/+1
Not sure what I want to achieve with this, to be honest. Just trying something out.
2020-01-19Tags::Links: Fix tag filter linkYorhel1-1/+1
2020-01-14UList.DateEdit: Consider empty dates validYorhel1-1/+1
2020-01-13UList.VNPage: Improve styling to make inputs stand out moreYorhel4-13/+14
Basically use the same form styling as the old select boxes and put use a different default text than "-".
2020-01-12Docker: Add image version check to docker-init.shYorhel3-8/+18
This adds a method to signal that the docker image should be rebuilt after a change or update to the dependencies - which is much better than getting weird hard-to-debug errors because an older version of TUWF happens to be missing a function or something.
2020-01-12Docker: Switch to AlpineYorhel3-52/+37
Main reason is because I'm more familiar with it, it has less weird surprises than Ubuntu (well, apart from musl + busybox, but that only helps increase VNDB's portability) and it's easier to update to later software versions. Current image comes with PostgreSQL 12 and Perl 5.30, which I will no doubt want to use in the future.
2020-01-10UList.VoteEdit: Fix enter key when setting custom vote in Chrome-based browsersYorhel1-8/+3
By using a form.onsubmit rather than input.onkeydown. The latter behaves really strange in Chrome for some reason I wasn't able to figure out. (The Elm 'Save' message was fired twice, but the corresponding Cmd returned by the update function was never actually performed)
2020-01-09UList.VNPage: Keep the "compact" vote input, prevent wrappingYorhel1-1/+1
2020-01-09ulist: Rework VN "User options" tab to be more prominent and convenientYorhel4-70/+60
Personally not a big fan of this taking so much space when it's not on the user's list, but people want instant options so there we go. It probably still blends in too well with the rest of the VN info though, styling isn't my thing. And there's no need to hit "Add to list" anymore now.
2020-01-08ulist: Display vote stats for public votes even when "Vote" label is privateYorhel2-12/+13
Fixes the last paragraph of
2020-01-08ulist: Uh, let's also allow changing a vote when there already is oneYorhel1-1/+1
2020-01-08ulist: Disable voting from /u+/ulist for unreleased VNsYorhel1-1/+3
The logic to determine whether it's been released is different from the vote widget on the VN page - that one is more lax in that it also allows trials. This inconsistency is ugly but not easy to fix.
2020-01-08ulist: Hide "voted" in label listing on VN pagesYorhel1-1/+1
That's already indicated by the vote below it.
2020-01-08ulist: Add vote dropdown againYorhel4-41/+74
As in: Provide some voting guidance again and optimize for the common case where you vote with a whole number.
2020-01-08Slightly less ugly tagscore displayYorhel6-73/+39
And get rid of the spoiler warning in the tag link browser. There are lots of pages that would need it if we applied it consistently.
2020-01-08v2rw: Convert tag link browserYorhel5-121/+149
2020-01-06Staff::Page: Add spoiler hiding options for voiced character listingYorhel3-13/+57
2020-01-06CSS: Make "select columns" have the same appearance as a nav linkYorhel1-1/+2
2020-01-06xmas is overYorhel1-1/+1
2020-01-06Char/VN filters: Keep tagspoil level even if no tags/traits are selectedYorhel1-3/+0
2020-01-06Handler::Chars: Fix empty lines from hidden spoilers in VN relations on char ↵Yorhel1-1/+2
2020-01-05ulist: Fix loading of saved default for the wishlistYorhel1-1/+1
2020-01-05refactor: Combine json_api() & elm_form() + generate Elm function to msg API ↵Yorhel35-338/+252
endpoint The new elm_api() function now creates an API endpoint (like json_api()) and generates a corresponding Elm module to interact with that API (like elm_form()). The API endpoint URL is now derived from the name of the Elm module, so there's no need to think of a separate URL and less prone to making typos when using that URL from Elm. Reduces the boilerplace a bit as well.
2020-01-04ulist/API: Fix returning vnlist status=0 instead of buggy nullYorhel1-1/+1