Loans are no longer displayed as a unified table, but instead each loan
gets a "card" that contains the relevant data for the loan.
This has had a fairly major html/css re-work as a side effect. Most views are
now structured with two div-based columns so as to avoid the large blank areas
that pure grid can lead to when elements are very different in height.
Supported length keywords are day, week, month and year. The plural forms
are also valid. There may be minor differences in the semantics of
the time string between the preset list and the default length setting,
due to the default length being computed by php's Date object,
while the preset list is computed in javascript on the client side.
- The inventory page now shows status of seen products as of when they were registered,
not as of now.
- Renamed a placeholder in fragments.html to be more intuitive.
- Added a type field to the event table in the database, so that complete events can
be constructed without complex logic.
- Refactored to support the above changes