converted dpw section to SPA using htmx; renamed moongate new-document route to match other route prefixes; removed unused route names; removed unused all_documents() subs from all route files; new test file for htmx requests
renamed access_denied page; moved configuration of link & label settings from record.tt to routes using vars.next_route; moved alert notifications (success & error) into own template; fixed js to auto-resize textarea on page load
get log level in App::LogAnyAdapter direct from D2 config instead of passing as arg from DocsLib; caller line in logger_engine->log is ignored so derived calling file from caller() and appended to message text; replaced deprecated Log::Any Callback method with Capture
reverted to earlier (uncommited) version of Log::Any function because most recently commited version was ignoring moinimum log level of tests (info), and presumably production (warnings) - note that use of Callback supposed to be deprecated in favour of Capture, but cannot make this method honour the min log-level setting
moved Dancer2::Plugin::Auth::Tiny->extend() into its own package; dev login exempt from requiring username; added 'needs admin' to InfoLib edit route so it features in routes.t tests
extended Dancer2::Plugin::Auth::Tiny to register 'admin' keyword; added access_denied page; amended default capture route to exclude access_denied route; organised routes into lists calling sub-routines in main Routes file to align with the other Routes::* packages
provide session object to tt for use with debugging premature session expiry; provide redirect for requests without trailing slash (instead of receiving 404 page)