Cross-tool header inconsistencies cleaned up after the audit
prompted by the browse Phase 2 work:
- landing/template.html: title was 'ZDDC Archive' (a holdover from
when landing WAS the archive). The page is now the project
picker — title shortened to plain 'ZDDC'. Browser tab title
follows: 'ZDDC Archive — Projects' → 'ZDDC — Projects'. Title +
build label wrapped in title-group div for layout consistency
with archive/classifier/mdedit/browse.
- form/template.html: title was bare; same title-group wrapping.
The id='form-title' stays — its content is overwritten at
runtime by form.js based on the form schema's name.
- classifier/template.html: refresh button text 'Refresh' →
'⟳' icon to match archive + browse. Same title attribute, just
smaller visual weight.
Untouched (intentionally):
- archive's button stays 'Add Local Directory' + addDirectoryBtn
id — semantically different from the others (archive
accumulates multiple directories; everyone else operates on
one). The naming reflects that.
- transmittal — different layout entirely (page-header with
sender/receiver logo cells); not a candidate for app-header
standardization.
98 lines
4.1 KiB
HTML
98 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">
|
|
<title>ZDDC — Projects</title>
|
|
<link rel="icon" type="image/svg+xml" href="{{FAVICON}}">
|
|
<style>
|
|
{{CSS_PLACEHOLDER}}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<header class="app-header">
|
|
<div class="header-left">
|
|
<svg class="app-header__logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" aria-hidden="true">
|
|
<rect width="64" height="64" rx="12" fill="#1e3a5f"/>
|
|
<g fill="#fff">
|
|
<rect x="14" y="18" width="36" height="7"/>
|
|
<polygon points="43,25 50,25 21,43 14,43"/>
|
|
<rect x="14" y="43" width="36" height="7"/>
|
|
</g>
|
|
</svg>
|
|
<div class="header-title-group">
|
|
<span class="app-header__title">ZDDC</span>
|
|
<span class="build-timestamp">{{BUILD_LABEL}}</span>
|
|
</div>
|
|
</div>
|
|
<div class="header-right">
|
|
<button id="theme-btn" class="btn btn-secondary" title="Theme: auto (follows OS)" aria-label="Theme: auto (follows OS)">◐</button>
|
|
</div>
|
|
</header>
|
|
|
|
<main class="landing-main">
|
|
<!-- Welcome / hero -->
|
|
<section class="landing-hero">
|
|
<h1>Welcome to the ZDDC Archive</h1>
|
|
<p class="landing-hero-sub">
|
|
Click a group or project below to open the archive. Use
|
|
<strong>+ New group</strong> to bundle a set of projects you open together.
|
|
</p>
|
|
</section>
|
|
|
|
<!-- Access warning banner (shown when URL ?projects= contains inaccessible items) -->
|
|
<div id="accessWarningBanner" class="access-warning-banner hidden" role="alert">
|
|
<span id="accessWarningText"></span>
|
|
<button class="warning-dismiss-btn" onclick="LandingApp.dismissWarning()" aria-label="Dismiss">×</button>
|
|
</div>
|
|
|
|
<!-- Groups card -->
|
|
<div class="landing-card">
|
|
<div class="landing-card-header">
|
|
<div class="landing-card-title">
|
|
<h2>Groups</h2>
|
|
<span id="groupCount" class="landing-count"></span>
|
|
</div>
|
|
<div class="landing-header-actions">
|
|
<button id="newGroupBtn" class="btn btn-secondary btn-sm" onclick="LandingApp.startCreateGroup()">+ New group</button>
|
|
</div>
|
|
</div>
|
|
<div id="groupsContainer" class="groups-container">
|
|
<!-- Populated by JS -->
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Projects card -->
|
|
<div class="landing-card">
|
|
<!-- Action bar (only visible in select-mode) -->
|
|
<div id="selectActionBar" class="select-action-bar hidden">
|
|
<div class="select-action-bar__label">
|
|
<span id="selectModeTitle"></span>
|
|
<input id="groupNameInput" type="text" class="group-name-input" placeholder="Group name">
|
|
</div>
|
|
<div class="select-action-bar__buttons">
|
|
<button id="cancelSelectBtn" class="btn btn-secondary btn-sm" onclick="LandingApp.cancelSelect()">Cancel</button>
|
|
<button id="openSelectedBtn" class="btn btn-secondary btn-sm" onclick="LandingApp.openSelectedVisible()">Open selected</button>
|
|
<button id="saveGroupBtn" class="btn btn-primary btn-sm" onclick="LandingApp.saveGroup()">Save group</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="landing-card-header">
|
|
<div class="landing-card-title">
|
|
<h2>Projects</h2>
|
|
<span id="projectCount" class="landing-count"></span>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="projectListContainer" class="project-list-container">
|
|
<!-- Populated by JS -->
|
|
<div class="project-list-loading">Loading projects…</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
|
|
<script>
|
|
{{JS_PLACEHOLDER}}
|
|
</script>
|
|
</body>
|
|
</html>
|