Recount-Server/web/templates/index.html

95 lines
3.4 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
2024-01-12 20:50:41 -08:00
<link rel="stylesheet" href="/static/site.css">
<script src="/static/htmx.min.js"></script>
2024-01-15 13:47:16 -08:00
<script src="/static/feather.min.js"></script>
2024-01-20 15:05:06 -08:00
<title>{{ .ActivePage }}</title>
</head>
2024-01-14 18:00:51 -08:00
<body class="latte">
2024-01-12 21:59:19 -08:00
<header>
2024-01-12 21:59:19 -08:00
</header>
2024-01-14 18:00:51 -08:00
<div class="d-flex" id="below-header">
2024-01-12 20:50:41 -08:00
<div id="left-col">
<nav>
<ul>
2024-01-14 18:00:51 -08:00
<li>
<a id="logo-a">Recount</a>
</li>
<li>
<a
hx-get="/"
hx-swap="innerHtml swap:0.2s settle:0.2s"
hx-push-url="true"
hx-boost="true"
hx-target="#main-body-content"
2024-01-20 15:05:06 -08:00
{{ if (eq .ActivePage "Dashboard") }}
class="active"
{{ end }}
>
2024-01-20 15:05:06 -08:00
Dashboard
</a>
2024-01-12 20:50:41 -08:00
</li>
<li>
<a
2024-01-20 15:05:06 -08:00
hx-get="/transactions"
hx-swap="innerHtml swap:0.2s settle:0.2s"
hx-push-url="true"
hx-boost="true"
hx-target="#main-body-content"
2024-01-20 15:05:06 -08:00
{{ if (eq .ActivePage "Transactions") }}
class="active"
{{ end }}
>
2024-01-20 15:05:06 -08:00
Transactions
</a>
</li>
</ul>
</nav>
</div>
<div id="main-body-content">
{{.InnerHtml}}
2024-01-12 20:50:41 -08:00
</div>
2024-01-14 18:00:51 -08:00
<div id="right-col">
</div>
</div>
2024-01-17 20:46:13 -08:00
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js" integrity="sha512-CQBWl4fJHWbryGE+Pc7UAxWMUMNMWzWxF4SQo9CgkJIN1kx6djDQZjh3Y8SZ1d+6I+1zze6Z7kHXO7q3UyZAWw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
2024-01-12 20:50:41 -08:00
<script type="module">
import {trigger_reset_handlers, trigger_table_animation, fill_chart} from "/static/index.js";
2024-01-15 19:26:51 -08:00
htmx.onLoad(function (element) {
feather.replace();
if (element.dataset.mainBody) {
trigger_reset_handlers();
}
2024-01-15 19:26:51 -08:00
if (element.localName === "tr") {
trigger_table_animation();
}
if (element.querySelectorAll("canvas").length > 0) {
element.querySelectorAll("canvas").forEach(function (el) {
fill_chart(el);
});
2024-01-15 19:26:51 -08:00
}
});
document.body.addEventListener('htmx:beforeSwap', function (event) {
// Get the target element where content will be replaced
var target = event.detail.target;
// Check if the target has Chart.js charts
var charts = target.querySelectorAll('.chartjs-chart');
charts.forEach(function (chart) {
// Destroy each Chart.js chart before swapping content
Chart.getChart(chart).destroy();
});
});
trigger_reset_handlers();
2024-01-12 20:50:41 -08:00
</script>
</body>
</html>