go/index.html
2026-06-09 12:52:47 +00:00

141 lines
5.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>GO Vacation Planner</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header class="floating-header">
<section class="cards header-cards" id="dashboard" aria-live="polite"></section>
<section class="header-entries" aria-label="Entries">
<div class="table-wrap">
<table id="entriesTable" class="compact-entries-table">
<thead>
<tr>
<th id="entriesHeaderTitle">VACATIONS</th>
<th class="num">Days</th>
<th class="num">Vac. days</th>
<th class="num">FF</th>
<th class="num">FLEX</th>
<th>Status</th>
<th></th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</section>
<div class="header-warning-row" aria-live="polite">
<span id="headerWarnings" class="header-warning-list"></span>
<span class="header-action-list">
<button id="addEntryBtn" class="header-action-button" type="button">Add entry</button>
<button id="settingsBtn" class="header-action-button" type="button">Settings</button>
</span>
</div>
<div class="planner-column-header table-wrap" aria-label="Monthly planner column names">
<table class="month-table planner-header-table">
<thead>
<tr>
<th>Month</th>
<th>Vacation</th>
<th class="num">Vacation days</th>
<th class="num">Feriefridage</th>
<th class="num">FLEX</th>
<th class="num important-col">Available days</th>
</tr>
</thead>
</table>
</div>
</header>
<main>
<section class="panel planner-panel">
<div id="planner" class="years"></div>
</section>
</main>
<dialog id="entryDialog" class="modal">
<div class="modal-heading">
<h2 id="entryFormTitle">Add date-range entry</h2>
<button type="button" id="closeEntryDialogBtn" class="ghost small">Close</button>
</div>
<form id="entryForm" class="form-grid">
<input type="hidden" id="entryId">
<label>
Title
<input id="title" required placeholder="e.g. Summer holiday">
</label>
<label>
Start date
<input id="startDate" type="date" required>
</label>
<label>
End date
<input id="endDate" type="date" required>
</label>
<label>
Use source
<select id="source">
<option value="auto">Smart: feriefridage → vacation → FLEX</option>
<option value="feriefridag">Feriefridage only</option>
<option value="vacation">Vacation days only</option>
<option value="flex">FLEX only</option>
<option value="unpaid">Unpaid only</option>
</select>
</label>
<label>
Status
<select id="status">
<option value="planned">Planned</option>
<option value="approved">Approved</option>
</select>
</label>
<label>
Additional non-working days
<input id="nonWorkingDays" type="number" step="0.5" min="0" value="0">
</label>
<div id="workdayPreview" class="workday-preview full">Set dates to see calculated working days.</div>
<label class="checkbox-row">
<input id="allowUnpaid" type="checkbox">
<span>If this entry goes negative, convert missing days in this date range to unpaid</span>
</label>
<label class="full">
Note
<textarea id="note" rows="3" placeholder="Optional note"></textarea>
</label>
<div class="actions full">
<button type="button" id="cancelEditBtn" class="ghost hidden">Cancel edit</button>
<button type="submit" id="saveEntryBtn">Save entry</button>
</div>
</form>
</dialog>
<dialog id="settingsDialog" class="modal wide">
<div class="modal-heading">
<h2>Settings</h2>
<button type="button" id="closeSettingsDialogBtn" class="ghost small">Close</button>
</div>
<form id="settingsForm" class="form-grid compact">
<label>Previous months shown<input id="previous_months" type="number" step="1" min="0" max="120"></label>
<label>Future months shown<input id="future_months" type="number" step="1" min="0" max="120"></label>
<label>Vacation/month<input id="vacation_days_per_month" type="number" step="0.01"></label>
<label>Feriefridage/year<input id="feriefridage_per_year" type="number" step="0.01"></label>
<label>FF deadline month<input id="feriefridage_expiry_month" type="number" step="1" min="1" max="12"></label>
<label>MonThu hours<input id="normal_day_hours" type="number" step="0.25"></label>
<label>Friday hours<input id="friday_hours" type="number" step="0.25"></label>
<p class="full help-text">Monthly vacation, feriefridage, and FLEX balances are edited directly in the planner table. Clear a value to return to the calculated balance.</p>
<div class="full danger-zone">
<button type="button" id="deleteHiddenEntriesBtn" class="danger">Delete entries outside displayed months</button>
</div>
<div class="actions full">
<button type="submit">Save settings</button>
</div>
</form>
</dialog>
<div id="toast" class="toast hidden"></div>
<script src="app.js"></script>
</body>
</html>