- DocsLibrary.git
- views
- layouts
- main.tt
This file ( 6kB ) exceeds the allowed full mode (48 kb) size.
The editor full hight is disabled, only scrolling is allowed..
If you wish to edit a file, it is recommended to use the scroll mode as some users do not like the full height
mode, although some users like it.
### NO LONGER IN USE - REPLACED BY home.tt ###
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="[% settings.charset %]">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>[% settings.appname %]</title>
<!-- bootstrap 5 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css"
rel="stylesheet" integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr"
crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ndDqU0Gzau9qJ1lfW4pNLlhNTkCfHzAVBReH9diLvGRem5+R9g2FzA8ZGN954O5Q"
crossorigin="anonymous"></script>
<!-- Latest Bootstrap Icons -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css"
rel="stylesheet">
<!-- BEGIN function-specific css -->
[% IF request.path.match('login') %]
<link rel="stylesheet" type="text/css" href="[% request.uri_base %]/css/login.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"
integrity="sha512-Fo3rlrZj/k7ujTnHg4CGR2D7kSs0v4LLanw2qksYuRlEzO+tcaEPQogQ0KaoGN26/zrn20ImR1DfuLWnOo7aBA=="
crossorigin="anonymous" referrerpolicy="no-referrer" />
[% ELSIF request.path.match('moongate|dpw') %]
<!-- Flatpickr JS -->
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
<!-- // bootstrap fileuploader -->
<script src="[% request.uri_base %]/javascripts/bootstrap-fileupload.js"></script>
[% FOREACH file IN ['bootstrap-fileupload', 'flatpickr.min' ] %]
<!-- // [% file %].css -->
<link rel="stylesheet" type="text/css" href="[% request.uri_base %]/css/[% file %].css" />
[% END; END %]<!-- END function-specific css -->
<!-- local.css last to provide overrides -->
<link rel="stylesheet" type="text/css" href="[% request.uri_base %]/css/local.css">
<!-- Grab jQuery from a CDN, fall back to local if necessary -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" crossorigin="anonymous"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="></script>
<script type="text/javascript">/* <![CDATA[ */
!window.jQuery && document.write('<script type="text/javascript" src="[% request.uri_base %]/javascripts/jquery.js"><\/script>')
/* ]]> */
</script>
<script src="[% request.uri_base %]/javascripts/jquery.timeago.js" type="text/javascript"></script>
<!-- htmx javascripts -->
<script src="[% request.uri_base %]/javascripts/htmx.min.js" type="text/javascript"></script>
</head>
[% USE date %]
<body>
<div>
<a href="#session-data" data-bs-toggle="collapse">
<i class="bi bi-arrows-expand"></i></a>
</div>
<div class="collapse" id="session-data">
<div class="card card-body" style="font-size: 12px">
<div>Session expires: [% date.format(session_object.expires) %]</div>
<div style="font-size: 13px">
[% PROCESS dumper.tt dump = session_object %]
[% # PROCESS dumper.tt dump = request %]
</div>
</div>
</div>
[% content %]
[% IF request.path.match('moongate|dpw') # this must go *after* htmx loaded: %]
<script type="text/javascript">
document.body.addEventListener("htmx:afterSwap", function(evt) {
const el = document.querySelector("#datepicker");
// onsole.log("htmx:afterSwap fired. #datepicker found?", !!el);
if (el && !el._flatpickr) {
// console.log("Initialising flatpickr on", el);
flatpickr(el, {
dateFormat: "Y-m-d",
allowInput: true
});
}
});
</script>
[% END %]
<div id="hx-container" class="container"></div>
<div id="hx-error"></div>
[% IF settings.environment.match('development') AND session.user # ie not login page %]
<div class="container my-2">
<button class="btn btn-outline-secondary btn-sm" id="dump-to-file">
Download Live HTML</button>
</div>
<script src="[% request.uri_base %]/javascripts/dump-html-to-file.js"></script>
[% END %]
<script type="text/javascript">
jQuery.timeago.settings.allowFuture = true;
jQuery(document).ready(function() {
jQuery("abbr.timeago").timeago();
});
</script>
<hr class="my-3">
<!-- footer -->
<div class="container" id="footer">
[% SET prefix = request.route.prefix; # can't use uri_for_section.$section
IF prefix; section = prefix.remove('/'); # eg /infolib %]
<div id="count-loader"
hx-get="[% request.uri_for('/total_count', { section => "$section" }) %]"
hx-target="#total_count"
hx-swap="innerHTML"
style="display:none;">
</div>
<script>
document.body.addEventListener('htmx:afterSwap', function (evt) {
// evt.detail.requestConfig.elt is the element that triggered the request
const sourceElt = evt.detail.requestConfig && evt.detail.requestConfig.elt;
if (sourceElt && sourceElt.id === 'create') {
htmx.trigger('#count-loader', 'click');
}
});
</script>
<a href='#' hx-get="[% request.uri_for('/gitlog') %]"
hx-target="#hx-container">App version</a>
[% app_version %]
::
<a href='#' hx-get="[% uri_for_section.$section.summary %]"
hx-target="#hx-container">Total records</a>
<span id="total_count">[% total_count( section ) %]</span>
::
<a href="[% request.uri_for('/logout') _ "?prefix=$prefix" %]">Log Out</a>
::
[% END %]
Powered by <a href="http://perldancer.org/">Dancer2</a> [% dancer_version %]
</div>
<div class="container" id="session">
Session expires: [% IF session_expires; # session_expires.strftime('%R on %x') %]
<abbr class="timeago" title="[% session_expires %]"></abbr>
[% ELSE %][not defined][% END%]
</div>
<!-- // keep at the end -->
<script src="[% request.uri_base %]/javascripts/missing-hx-target-error.js"></script>
</body>
</html>