+ Create new sql column for file last modified time (flmt)
+ Implement uploading of flmt to server
+ Implement flmt in post model
+ Ability to read flmt thru API
+ New section in post_readonly_sidebar that shows flmt
! Somehow flmt is the same as post creation time
! Implement proper alembic migrations
! Implement ability to sort by flmt
! Implement ability to filter posts by flmt
! Code cleanup
~ Polish post sidebar
~ Implement flmt visibility in post listing hover text
~ Implement function in misc.js that formats to absolute date
Anonymous node does not exist in view when a user without anonymous upload permission tries to post upload. So in this case we should check for the existence of anonymousNode first.
In e464e69 I removed href='#' but I noticed that it broke some things.
Readding href serves two purposes:
- it makes links reachable with Tab key
- it makes links clickable with Enter key
The alternative to this approach was to introduce [tabindex] and [role]
attributes. But not only using tabindex=0 with <a/> is questionable,
it'd require adding a keyboard handler that'd intercept space and return
key presses and simulated link clicks. Since it's best to leave this
kind of thing to the native UI, I went with readding hrefs instead. I
believe that hash hrefs, even though being a common practice, are silly,
so I decided to settle down with empty hrefs.
As a bonus, I added a snippet that prevents middle mouse clicks from
opening such links/buttons in new tabs, which was the motivation for
e464e69.