lute-v3
lute-v3 copied to clipboard
Persistent book view history: add sortable "Last Read" column on home page
Is your feature request related to a problem? Please describe.
Whenever I restart Lute I start in the home page. If I want to go back to the book I was reading I have to remember its title, search for it, then load it. It would be nice to have a persistent history of book views (at least the most recent one, but more would be nice) quickly accessible from the home page.
Describe the solution you'd like
Perhaps the simplest would be to add a last-read date attribute to each book, and a sortable "Last Read" column on the home page.
Describe alternatives you've considered
Add a new "History" menu heading on the home page, add a "view history" entry that shows a list of the most recent views (ideally filterable by language, possibly limited in length), and move the Statistics report from the About menu, where it seems out of place, to the new History menu.
Additional context
None
Nice idea. A last-read attribute would be best.
I'd thought that using the "last read" attribute per page (set by the page footer checkmarks) would suffice, but for very new learners (like me sometimes), that checkmark isn't used until much later.
For displaying in the listing, I'll just do a full date-time, eg. "2024-03-24 17:29:34" -- that will ensure consistent sorting, and will suffice as a first pass. We could make it prettier later, though I'm not sure how.
Dev size estimate:
First thing:
- column visible in book listing -- hidden at first? ~~Is it possible to have a default set of visible columns? This bumps up the size estimate. Perhaps a separate issue~~ -- EDIT: is trivial, just add "visible = false" with the colvis toggle css class.
- perhaps change the book table js similar to term table js, replace numbers with constants
Then:
- add nullable TxStartedDate to texts (adding this to texts, not books, because that makes sense), set on read start; unit test?
- include maximum started date in the book listing
- ensure table sorting works
- ensure table actions work