7e5fa6cbf1
- Add HTMX CDN to layout - Replace client-side table rendering (displayRatings, displayCourses) with server-rendered EJS partials via hx-get - Add server-side course search with debounced hx-trigger - Lazy-load player history and course layouts via htmx.ajax() - Render rating chart via htmx:afterSwap with data attributes - Add partial routes: ratings-table, course-table, player-history, course-layouts
39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title><%= title %></title>
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
<script src="https://unpkg.com/htmx.org@2.0.4"></script>
|
|
<link rel="stylesheet" href="/css/shared.css">
|
|
<% if (typeof cssFiles !== 'undefined') { %>
|
|
<% cssFiles.forEach(function(file) { %>
|
|
<link rel="stylesheet" href="/css/<%= file %>">
|
|
<% }); %>
|
|
<% } %>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<h1><%= heading %></h1>
|
|
<%- include('../partials/nav') %>
|
|
<%- body %>
|
|
</div>
|
|
|
|
<% if (typeof modals !== 'undefined') { %>
|
|
<%- modals %>
|
|
<% } %>
|
|
|
|
<% if (typeof jsFiles !== 'undefined') { %>
|
|
<% jsFiles.forEach(function(file) { %>
|
|
<script src="/js/<%= file %>"></script>
|
|
<% }); %>
|
|
<% } %>
|
|
|
|
<% if (typeof initScript !== 'undefined') { %>
|
|
<script>
|
|
<%- initScript %>
|
|
</script>
|
|
<% } %>
|
|
</body>
|
|
</html> |