Files
2025-06-05 07:12:12 +07:00

113 lines
3.6 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>cal app</title>
<link rel="stylesheet" href="/src/style.css" />
<script type="module" src="/src/main.js" defer></script>
</head>
<body>
<div class="container mt-5">
<header class="text-center mb-4">
<h1 class="display-4">🗓️ Calendar Filter App</h1>
<p class="lead">Load, filter, and combine calendars with style.</p>
</header>
<form class="row g-3" onsubmit="return false;">
<div class="col-auto">
<label for="url_mode" class="form-label">Select Mode</label>
<select id="url_mode" class="form-select">
<option value="manual">Manual URL</option>
<option value="args">Send Arguments to Proxy</option>
</select>
</div>
<div id="manual-url-input" class="col">
<label for="ics_file" class="form-label">ICS URL</label>
<input
type="text"
id="ics_file"
class="form-control"
placeholder="Paste .ics URL or API endpoint here"
/>
</div>
<div id="args-form" class="col-12" style="display: none">
<label for="be_url" class="form-label">Calendar URL</label>
<input
type="text"
id="be_url"
class="form-control mb-2"
placeholder="Enter .ics URL to query"
/>
<label for="regex_exc" class="form-label">Regex Exclude Rules</label>
<input
type="text"
id="regex_exc"
class="form-control mb-2"
placeholder="Enter regex to exclude events"
/>
<label for="regex_inc" class="form-label">Regex Include Rules</label>
<input
type="text"
id="regex_inc"
class="form-control mb-2"
placeholder="Enter regex to include events"
/>
</div>
<div class="col-12 d-flex justify-content-end flex-wrap gap-2">
<button type="button" class="btn btn-primary" id="ics_run">
New Calendar
</button>
<button type="button" class="btn btn-secondary" id="ics_add">
Add a Calendar
</button>
</div>
</form>
<div id="placeholder-message" class="alert alert-warning mt-4">
No calendar loaded yet. Paste a URL to get started!
</div>
<div id="event-source-management" class="card mt-4" style="display: none">
<div
class="card-header mt-1 d-flex justify-content-between align-items-center bg-transparent border-0"
>
<h4 class="mb-0">Event Sources</h4>
<div>
<button id="reload" class="btn btn-outline-primary btn-sm">
<i class="bi bi-arrow-clockwise"></i> Reload
</button>
<button id="refetch_all" class="btn btn-outline-primary btn-sm">
<i class="bi bi-arrow-clockwise"></i> Refetch All
</button>
</div>
</div>
<div id="event-source-list" class="card-body">
<!-- Event source cards will be dynamically added here -->
<div id="placeholder-message" class="alert alert-warning">
no source
</div>
</div>
</div>
<div id="calendar" class="mt-4"></div>
<footer class="text-center mt-4">
<p>Made with Rust, TS, and ❤️</p>
<p>
by
<a href="//ldlda.com" target="_blank" rel="noopener noreferrer"
>lđa</a
>
</p>
</footer>
</div>
</body>
</html>