summaryrefslogtreecommitdiff
path: root/lib/VNWeb/User
AgeCommit message (Collapse)AuthorFilesLines
2019-12-07ulist: Display useful message when list is empty or privateYorhel1-5/+10
2019-12-05ulist: Add search box + tabindex on filter input fieldsYorhel1-6/+10
2019-11-28ulist: Fix display of vote date when not votedYorhel1-1/+1
2019-11-27ulist: Add column selection + voted, modified, release date & rating columnsYorhel1-26/+60
It works pretty well, but Lists.pm is getting *really* ugly now. :(
2019-11-23ulist: Add some test menu linksYorhel1-0/+8
2019-11-23ulist: Make labels column sortableYorhel1-17/+18
This is pretty slow for large lists, but let's just see how it goes.
2019-11-19ulist: Keep sort column when updating filtersYorhel1-0/+2
2019-11-19ulist: Remove the notes iconYorhel1-1/+0
It's redundant. The goal was to make the notes feature more prominent so it'd stand out more, but in hindsight it seems more like a distraction.
2019-11-19Minor refactor: Use dbPage() in scalar context where applicableYorhel3-3/+3
Requires the latest git version of TUWF.
2019-11-15Move pubskin fetching responsibility to VNWeb::HTML::framework_Yorhel1-2/+2
Requiring callers to fetch the right fields and pass it along to framework_() just seems brittle. This implementation requires an extra query but does make an effort to avoid fetching the skin and css when it's not needed.
2019-11-11ulist: Add a "no label" filterYorhel1-9/+29
2019-11-11ulist: Update lastmod when changing labels or voteYorhel1-1/+3
2019-11-10ulist: Beta modeYorhel1-0/+17
2019-11-10ulist: SQL: Create labels for new users + auto-assign Voted label + import ↵Yorhel1-0/+1
rlisted VNs
2019-11-10ulist: Add feature to add releases to the listYorhel1-4/+6
2019-11-10ulist: Dynamically update releases summary on changeYorhel1-4/+3
2019-11-10ulist: Generalize Elm dropdown + add release status change & removalYorhel1-0/+20
Found a cleaner way to recognize outside-of-dropdown clicks, so that gets rid of the weird and unreliable message timing workarounds. TODO: - Dynamically updating that releases summary thing (1/1 blah) - Adding releases - Add "linkradio" styling for plain <a> tags? These hidden checkboxes are silly for stuff that requires JS anyway.
2019-11-10ulist: Implement notes editing + small code reorgYorhel1-113/+136
2019-11-10ulist: Implement deletion of items from the listYorhel1-1/+18
2019-11-10ulist: Add (nonfunctional) releases + options UI; More consistent namingYorhel1-13/+35
2019-11-10ulist: Add comment and "this item is public" iconsYorhel1-7/+18
Dynamically updating the visibility state of the "this item is public" icon kind of sucks. But meh, you really want that state to update correctly.
2019-11-10Reorganize JS and Elm instantiation + more efficient ulist loadingYorhel1-5/+6
The order in which .js files are concatenated is (and always has been) important, so rather than relying on name order I've changed that to an explicit $JS_FILES list in the Makefile. Less convenient, but at least we have more freedom regarding .js file naming and organization now. Rather than encoding the Elm flags as JSON in 'data-' attributes, I've added a system for global page variables (pagevars) where the Elm flags are now stored separately from their HTML tags. This has the advantage of more efficient encoding (no more &quot;s), faster parsing (just a single JSON.parse()), and easier/more efficient modification of the Elm arguments from JS. The pagevars provide a unified way of passing other variables to JS as well, which I've used to deduplicate the list of labels on the new ulist page. That shaves off a good 40 KiB on the page size for a typical listing. Whether all of this actually improves the page loading time, I don't really know. Most of the slowness in Firefox seems to come from simply instantiating many <input time="date"> objects.
2019-11-10ulist: Rename tables to something more sensibleYorhel1-21/+21
2019-11-10ulist: "End date" -> "Finish date" + put placeholder values in Elm divsYorhel1-9/+9
2019-11-10ulist: Inline start/end date editingYorhel1-2/+30
2019-11-10ulist: Inline assigning labels to VNsYorhel1-6/+47
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.
2019-11-10ulist: Inline editable votesYorhel1-4/+31
2019-11-10ulist: Add some styling, sorting and a framework for extended info/optionsYorhel1-32/+70
2019-11-10ulist: Use lower numbers for custom labels + add VN listingYorhel1-37/+135
2019-11-10ulist: Add data model for new lists + Perl/Elm for label managementYorhel1-0/+119
Very much experimental. I'm not sure this is even the right model.
2019-10-18User::Edit: Throw 404 if user does not existYorhel1-1/+1
2019-10-16HTML: Make "noindex" the defaultYorhel8-9/+9
Adding 'index => 0' to all pages is error-prone, and the majority of the pages aren't indexed. Requiring an 'index => 1' for pages that may be indexed is less work and a safer solution. (Doesn't affect the v2 codebase, which still requires an explicit 'noindex => 1')
2019-10-14v2rw: Convert user listingYorhel1-0/+96
2019-10-14User::PassSet: Show a CSRF error when the reset token is invalidYorhel1-1/+4
2019-10-13Fix 500 when posting notification form with empty selectionYorhel1-1/+1
Broken in 0be1aa6acb62c13b4bcb4bd52a9c76df5f248e45
2019-10-12Revert username capitalization in main menu and user pageYorhel1-1/+1
2019-10-12rewards: Fix applying the public skin even when disabledYorhel1-1/+1
2019-10-12v2rw: Convert user notifications interface (/u+/notifies)Yorhel1-0/+174
2019-10-11Two rewards-related bug fixesYorhel1-1/+1
2019-10-10rewards: Honor public custom css/skinYorhel1-2/+2
2019-10-10rewards: Apply supporters badge and unicode name (almost) everywhereYorhel1-4/+17
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.
2019-10-10rewards: Add user settingsYorhel1-3/+23
They don't do anything yet.
2019-10-04v2rw: Convert user pagesYorhel1-0/+152
Pretty simple conversion, not much special. Did change a few minor display thingies to be more consistent.
2019-10-03Disallow changing email address to one already used by another accountYorhel2-1/+2
2019-10-03Require email confirmation when changing email addressYorhel1-3/+50
This ensures that the email address linked to a user is always valid and actually belong(s|ed) to that user.
2019-10-03SQL: Get rid of the users_prefs table, store preferences in users tableYorhel1-9/+7
This bloats the users table a little bit, but that's fine. The main advantage of this change is that we now have a proper schema for user preferences, rather than the schemaless key-value mess we had before. This commit also splits the 'tags_cat' preference up into tags_cont, tags_ero and tags_tech bools, as that's more compact to store and easier to work with. This commit also changes the 'notify_nodbedit' preference to 'notify_dbedit' with inverted meaning. The reason the value was negated in the first place was because the old schemaless approach did not support positive defaults.
2019-10-02v2rw: Convert user preferences formYorhel1-6/+95
And add a small 'formField' function to shrink the Elm form generation code a bit.
2019-10-01Minor refactor: Actually, let's split up RegReset.pmYorhel6-152/+157
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.
2019-10-01v2rw: Convert registration, account activation and password resetYorhel1-0/+143
This is largely copy-paste from v3.
2019-09-30v2rw: Convert login, logout & insecure-password-change formsYorhel1-0/+69
The insecure-password-change flow is now slightly more friendly. The logout functionality has been hardened to use POST and require CSRF.