This commit fixes spurious scrolling in DeriveReliableWindowDimensions()
on mobile. It also fixes centring of Vimeo videos on mobile.
In addition, it replaces some deprecated JavaScript:
• window.orientation → screen.orientation.type
• window.onorientationchange → screen.orientation.onchange
This commit adds keyboard navigation of the indices, documented in the
"Help" text box. It also improves scrolling of menus to follow progress
through the video, with the ability to centre the scrolling around a
range of references. Finally in this UI work, it enables the keyboard
and mouse to work more cooperatively.
Other changes:
• Added a "Clear" so the player's initial sizing happens invisibly.
• Fixed getBackgroundColourRGB() to handle both rgb() and rgba().
• Deduplicated code, including spurious querySelectorAll() calls.
• Moved global variables into the Player object.
To use it, source the cinera_clear.js file at the position in the HTML
file to be obscured while further processing occurs. (Make sure not to
"defer" it.)
After processing is complete, call FlipClear()
The search page could auto-scroll to the top when the grid is not
displayed. This commit fixes that problem by ensuring that the grid
element has a width and height before seeking to auto-scroll to it.
Thanks to Leonardo Serafim Eid for the report
• Max{Height,Width}OfElement() should now produce saner values
• Video can now resize upon orientation change on mobile
• Search grid now sizes to the correct area
• CSS rule setting only tries to touch local stylesheets
• Video size may be based on the height if the width-based is too tall
• Auto-scrolling improvements:
• It now cannot oscillate
• It doesn't happen at all if scrolled to the very top / bottom
Thanks to @Freak_ on freenode for the report
Better text fitting
Account for the scrollbar width in our max width considerations
Don't bother to compute the grid size merely when toggling the view
Both pages:
Derive reliable window dimensions ourselves
Set the orientation from the window dimensions
Use "box-sizing: content-box" on the help keys, to fix sizing
Search page:
Support irregular (i.e. non-square) grids
General sizing fixes
Fix text fitting when toggling back from List to Grid view
Fix text fitting when textNode would overflow container
Correctly compute optimal grid size after orientation change
Rename .text to .cineraText to avoid CSS selector clash
Only add click events for the main set of buttons (not its clone)
Player page:
Size the video and timestamps bar more sensibly
Major features:
Search page: Subdivision grid layout
Player page: Device orientation-specific layout
Fixes:
Strip slashes of the URLs: base_url, etc.
Fix SnipeChecksumAndCloseFile() to not null-terminate the checksum string
Fix hover background colouration of medium icons of current timestamp
Fix DeriveLineageWithoutOriginOfProject() to call InitBookOfPointers()
Fix SortAndAbbreviateSpeakers() to use the person's ID if Name is blank
More directly display the "unit", if set, in the search results
Fix VideoIsPrivate() to find the apparently relocated privacyStatus
Make VideoIsPrivate() default to TRUE for non-youtube
Output as keywords all topics that do not match "nullTopic"
Deleted asset:
cinera_search.js
New assets:
cinera_search_pre.js
cinera_search_post.js
Database version 5
Major features:
Config file parsing
Multiple projects per instance
Searching across multiple projects
Art sprites, usable by project, medium and support
Minor features:
The search results are now sortable
Optimised the search page sorting
Fixes:
More reliable file system monitoring
Well-formed templates are now valid, even with the absence of assets
Correctly resove ~ in paths
Gracefully handle the lack of an internet connection
Renamed "annotator" to "indexer"
Removed PlayerURLPrefix, in favour of .hmml "output" parameter
Replaced the flags collection with:
-0 Dry-run mode
-c Set the config file path
-e Examine the database
-v Print version
-h Print help
New template tags:
__CINERA_NAV__ dropdown
__CINERA_NAV__ horizontal
__CINERA_NAV__ plain
__CINERA_PROJECT_PLAIN__
Deleted template tags:
__CINERA_MENUS__
__CINERA_SCRIPT__