194 lines
8.3 KiB
PHP
Executable file
194 lines
8.3 KiB
PHP
Executable file
<?php require_once __DIR__ . "/session_bootstrap.php"; ?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>EVE Industry Tracker</title>
|
|
|
|
<!-- Styles -->
|
|
<link rel="stylesheet" href="assets/styles.min.css">
|
|
|
|
<!-- Meta Description -->
|
|
<meta name="description" content="Track and manage your EVE Online industry jobs efficiently. Monitor manufacturing, research, and industry activities across multiple characters in one dashboard.">
|
|
|
|
<!-- Keywords -->
|
|
<meta name="keywords" content="EVE Online, industry tracker, manufacturing, research, industry jobs, EVE Online tools">
|
|
|
|
<!-- Favicon -->
|
|
<link rel="icon" href="/assets/EIJT-FAVICON.png" type="image/png">
|
|
|
|
<!-- Preload -->
|
|
<link rel="preload" href="assets/logo.png" as="image">
|
|
|
|
<!-- Open Graph (for sharing links) -->
|
|
<meta property="og:title" content="EVE Industry Tracker - Manage Your EVE Online Industry">
|
|
<meta property="og:description" content="Track and optimize your EVE Online industry jobs across multiple characters. Free tool for manufacturing, research, and blueprint management.">
|
|
<meta property="og:image" content="assets/EIJT-FAVICON.png">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:url" content="https://your-domain/">
|
|
<meta property="og:site_name" content="EVE Industry Tracker">
|
|
<meta property="og:locale" content="en_US">
|
|
|
|
<!-- Canonical URL -->
|
|
<link rel="canonical" href="/">
|
|
|
|
<!-- Twitter Cards -->
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="EVE Industry Tracker - EVE Online Industry Management">
|
|
<meta name="twitter:description" content="Free tool to track and optimize your EVE Online industry jobs. Manage manufacturing, research, and blueprints across multiple characters.">
|
|
<meta name="twitter:image" content="assets/logo.png">
|
|
<meta name="twitter:site" content="@your-twitter-handle">
|
|
<meta name="twitter:creator" content="@your-twitter-handle">
|
|
<link rel="preload" href="assets/styles.min.css" as="style">
|
|
|
|
<!-- Mobile & Theming -->
|
|
<meta name="theme-color" content="#1b1b1b">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
|
|
<!-- Basic Security -->
|
|
<meta http-equiv="X-Content-Type-Options" content="nosniff">
|
|
<meta http-equiv="Referrer-Policy" content="no-referrer">
|
|
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src * data:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline';">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" media="print" onload="this.media='all'">
|
|
<style>
|
|
/* Styles moved to styles.css */
|
|
</style>
|
|
|
|
<!-- Schema.org markup for rich snippets -->
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "http://schema.org",
|
|
"@type": "WebApplication",
|
|
"name": "EVE Industry Tracker",
|
|
"applicationCategory": "Game Tool",
|
|
"operatingSystem": "Any",
|
|
"url": "https://your-domain/",
|
|
"offers": {
|
|
"@type": "Offer",
|
|
"price": "0",
|
|
"priceCurrency": "USD"
|
|
},
|
|
"description": "Track and manage your EVE Online industry jobs efficiently. Monitor manufacturing, research, and industry activities across multiple characters in one dashboard.",
|
|
"browserRequirements": "Requires JavaScript. Any modern web browser.",
|
|
"softwareVersion": "1.0",
|
|
"applicationSubCategory": "EVE Online Tools",
|
|
"featureList": [
|
|
"Industry jobs tracking",
|
|
"Multi-character support",
|
|
"Blueprint management",
|
|
"Real-time updates",
|
|
"Session export/import"
|
|
]
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="container" style="text-align: center; padding: 2em;">
|
|
<img src="assets/logo.png" width="50%" style="max-width: 600px; margin-bottom: 2em;" alt="EVE Jobs Tracker Logo" loading="eager">
|
|
|
|
<?php if (
|
|
!isset($_SESSION["characters"]) ||
|
|
count($_SESSION["characters"]) === 0
|
|
): ?>
|
|
<div class="section">
|
|
<a href="login.php">
|
|
<button style="padding: 0.75em 1.5em; font-size: 1.1em;">Log In</button>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="divider"><span>or</span></div>
|
|
|
|
<div class="section">
|
|
<h3>📂 Import a Saved Session</h3>
|
|
<form action="import.php" method="POST" enctype="multipart/form-data" style="margin-top: 1em;">
|
|
<input type="file" name="session_file" accept=".json" required style="margin-bottom: 1em;">
|
|
<br>
|
|
<button type="submit" style="padding: 0.5em 1.2em;">Import Session</button>
|
|
</form>
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="buttons" style="margin-top: 0.1em;">
|
|
<a href="login.php"><button>Add Another Character</button></a>
|
|
<a href="logout.php"><button>Logout All</button></a>
|
|
<a href="export.php"><button id="exportButton">Export Save</button></a>
|
|
</div>
|
|
|
|
<div class="dashboard-toggle" style="margin-top: 1em;">
|
|
<button id="jobsDashboardButton" class="active">Industry Jobs</button>
|
|
<button id="blueprintsDashboardButton">Blueprints</button>
|
|
</div>
|
|
|
|
<div id="jobsDashboard" style="margin-top: 1em;">
|
|
<?php include "dashboard.php"; ?>
|
|
</div>
|
|
|
|
<div id="blueprintsDashboard" style="margin-top: 1em; display: none;">
|
|
<?php include "blueprints_dashboard.php"; ?>
|
|
</div>
|
|
|
|
<script>
|
|
document.addEventListener("DOMContentLoaded", () => {
|
|
// Make export button flash only on first page load
|
|
const exportButton = document.getElementById("exportButton");
|
|
if (exportButton && !sessionStorage.getItem('exportButtonFlashed')) {
|
|
exportButton.classList.add('export-flash');
|
|
sessionStorage.setItem('exportButtonFlashed', 'true');
|
|
}
|
|
|
|
const jobsButton = document.getElementById("jobsDashboardButton");
|
|
const blueprintsButton = document.getElementById("blueprintsDashboardButton");
|
|
const jobsDashboard = document.getElementById("jobsDashboard");
|
|
const blueprintsDashboard = document.getElementById("blueprintsDashboard");
|
|
|
|
jobsButton.addEventListener("click", () => {
|
|
jobsDashboard.style.display = "block";
|
|
blueprintsDashboard.style.display = "none";
|
|
jobsButton.classList.add("active");
|
|
blueprintsButton.classList.remove("active");
|
|
});
|
|
|
|
blueprintsButton.addEventListener("click", () => {
|
|
jobsDashboard.style.display = "none";
|
|
blueprintsDashboard.style.display = "block";
|
|
blueprintsButton.classList.add("active");
|
|
jobsButton.classList.remove("active");
|
|
});
|
|
});
|
|
</script>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<!-- Footer -->
|
|
<footer style="text-align: center; padding: 2em 0; background-color: #222; color: #d4d4d4;">
|
|
<p>If you find this tool useful, please consider donating in-game!</p>
|
|
<p>Send ISK to <a href="https://evewho.com/character/95770276" target="_blank" style="color: #00aaff;">Clay's Accountant</a>.</p>
|
|
<p>Thank you for your support! <a href="views.php">🙏</a></p>
|
|
<p style="text-align: right; font-size: 0.7em; margin-top: 1em; color: #666;">EVE Online and all related materials are trademarks or intellectual property of CCP Games. </p>
|
|
|
|
</footer>
|
|
|
|
|
|
|
|
|
|
<!-- stats -->
|
|
<?php require_once "track_visits.php"; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
|
</html>
|