76 lines
4.1 KiB
HTML
76 lines
4.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link rel="stylesheet" href="../assets/css/style.css">
|
|
<link rel="icon" type="image/x-icon" href="../favicon.ico">
|
|
<script>
|
|
// Apply theme immediately to prevent flash
|
|
(function() {
|
|
const theme = localStorage.getItem('theme') ||
|
|
(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
|
|
document.documentElement.setAttribute('data-theme', theme);
|
|
})();
|
|
</script>
|
|
<title>Analytics - Launch Pad</title>
|
|
</head>
|
|
<body>
|
|
<button class="theme-toggle" id="themeToggle" aria-label="Toggle dark mode">
|
|
<svg class="theme-icon theme-icon-moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>
|
|
<svg class="theme-icon theme-icon-sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display: none;"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
|
|
</button>
|
|
<div class="analytics-container">
|
|
<h1 class="blog-page-title">Analytics Dashboard</h1>
|
|
|
|
<div class="date-selector-container">
|
|
<div class="date-selectors-wrapper">
|
|
<div class="date-selector-wrapper">
|
|
<label for="dateSelect" class="date-label">Start Date</label>
|
|
<input type="date" id="dateSelect" class="date-selector" value="">
|
|
<div id="customCalendar" class="custom-calendar"></div>
|
|
</div>
|
|
<div class="date-selector-wrapper" id="endDateWrapper">
|
|
<label for="endDateSelect" class="date-label">End Date</label>
|
|
<input type="date" id="endDateSelect" class="date-selector" value="">
|
|
<div id="customCalendarEnd" class="custom-calendar"></div>
|
|
</div>
|
|
<div class="date-go-button-wrapper">
|
|
<button id="goButton" class="go-button">Go</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<h2 class="analytics-section-title">Traffic Statistics</h2>
|
|
|
|
<div class="stats-grid" id="statsGrid">
|
|
<!-- Stats will be loaded here -->
|
|
</div>
|
|
|
|
<h2 class="analytics-section-title">Traffic by Hour <span class="timezone-note">(Server Time: AST/ADT)</span></h2>
|
|
<div class="stat-card">
|
|
<div class="hour-chart" id="hourChart">
|
|
<!-- Hour chart will be loaded here -->
|
|
</div>
|
|
</div>
|
|
|
|
<h2 class="analytics-section-title">Recent Visitors <span class="timezone-note">(Your Local Time)</span></h2>
|
|
<div class="stat-card">
|
|
<div id="recentVisitors">
|
|
<!-- Recent visitors will be loaded here -->
|
|
</div>
|
|
</div>
|
|
|
|
<h2 class="analytics-section-title">Blog Post Statistics</h2>
|
|
<div class="blog-posts-stats">
|
|
<div id="blogPostsStats">
|
|
<!-- Blog post stats will be loaded here -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="analytics.js"></script>
|
|
<script src="../assets/js/theme.js"></script>
|
|
</body>
|
|
</html>
|