summaryrefslogtreecommitdiff
path: root/vrsite/templates/projects.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'vrsite/templates/projects.tmpl')
-rw-r--r--vrsite/templates/projects.tmpl112
1 files changed, 0 insertions, 112 deletions
diff --git a/vrsite/templates/projects.tmpl b/vrsite/templates/projects.tmpl
deleted file mode 100644
index 3e3c670..0000000
--- a/vrsite/templates/projects.tmpl
+++ /dev/null
@@ -1,112 +0,0 @@
-{{define "projects"}}<!doctype html>
-<html lang="en" data-live="1">
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1">
-<title>{{.Title}}</title>
-<link rel="stylesheet" href="/style.css">
-<script>
-// Match project pages: wear the saved theme before first paint, and load the
-// installed-theme stylesheet now only when that saved choice requires it.
-{const d = document.documentElement, t = localStorage.getItem("vrsite-theme");
- if (t && t !== "system") d.dataset.theme = t;
- if (t && !/^(system|dark|light)$/.test(t)) {
- const l = document.createElement("link");
- l.rel = "stylesheet"; l.id = "themescss"; l.href = "/themes.css";
- document.head.append(l);
- }
- d.dataset.mode = localStorage.getItem("vrsite-mode") || "trace";}
-</script>
-<script src="/app.js" defer></script>
-</head>
-<body class="projects">
-<nav aria-label="projects" id="nav">
- <header><a class="brand" href="/">{{.Title}}</a></header>
- <p class="meta">one process · every local vr sidecar</p>
- <input id="projectfind" class="find" type="search" placeholder="find project…" aria-label="find project" autocomplete="off" spellcheck="false">
- <form method="post" action="/projects/refresh" class="project-refresh">
- <button type="submit">refresh repositories</button>
- </form>
- <p class="meta">scans <code>{{.ScanRoot}}</code></p>
- <p class="meta">last refresh {{.Scanned}}</p>
- <footer>
- <span>selection and scan results stay in memory</span>
- <div class="themepick" id="themepick"
- data-js="/themes.js" data-css="/themes.css"
- data-dark="{{.Theme.Name}}" data-light="{{.Light.Name}}"
- data-darkid="{{.Theme.ID}}" data-lightid="{{.Light.ID}}">
- <button type="button" id="themebtn" aria-haspopup="listbox" aria-expanded="false"
- title="theme — every one installed here (T)">theme</button>
- <div class="thememenu" id="thememenu" hidden>
- <input id="themefind" type="search" placeholder="filter themes…" aria-label="filter themes"
- role="combobox" aria-controls="themelist" aria-autocomplete="list"
- autocomplete="off" spellcheck="false">
- <ul id="themelist" role="listbox" aria-label="themes"></ul>
- <p class="meta hint">↑↓ preview · enter keeps · esc puts it back</p>
- </div>
- </div>
- </footer>
-</nav>
-
-<main class="projects-main">
- <header class="filehead">
- <h1>Projects</h1>
- <p class="meta">Choose a vr log, start one in a jj repository, or colocate jj with an existing Git repository.</p>
- </header>
- {{if .Message}}<p class="ok project-message">{{.Message}}</p>{{end}}
- {{if .Err}}<p class="err project-message">{{.Err}}</p>{{end}}
-
- <section>
- <h2>Logs <span class="meta">— {{len .Active}} repositories with a private sidecar</span></h2>
- <div class="project-grid">
- {{range .Active}}
- <article class="project-card" data-project="{{.Name}} {{.Relative}}">
- <header><h3><a href="/p/{{.ID}}/">{{.Name}}</a></h3><span class="project-state active">log</span></header>
- <p class="project-path" title="{{.Path}}"><code>{{.Relative}}</code></p>
- <p class="meta">{{.Entries}} entries · {{.Notes}} notes · {{.Agents}} agents · {{.Updated}}</p>
- {{if gt (len .Workspaces) 1}}<p class="meta">{{len .Workspaces}} jj workspaces share this log</p>{{end}}
- {{if .Err}}<p class="err">{{.Err}}</p>{{end}}
- <a class="project-action" href="/p/{{.ID}}/">open project</a>
- </article>
- {{end}}
- {{if not .Active}}<p class="meta hint">no vr sidecars found yet</p>{{end}}
- </div>
- </section>
-
- <section>
- <h2>Ready to start <span class="meta">— {{len .Ready}} jj repositories without a vr sidecar</span></h2>
- <div class="project-grid">
- {{range .Ready}}
- <article class="project-card" data-project="{{.Name}} {{.Relative}}">
- <header><h3>{{.Name}}</h3><span class="project-state">jj</span></header>
- <p class="project-path" title="{{.Path}}"><code>{{.Relative}}</code></p>
- {{if gt (len .Workspaces) 1}}<p class="meta">{{len .Workspaces}} workspaces</p>{{end}}
- {{if .Err}}<p class="err">{{.Err}}</p>{{end}}
- <form method="post" action="/projects/{{.ID}}/start">
- <button type="submit">start private sidecar</button>
- </form>
- </article>
- {{end}}
- {{if not .Ready}}<p class="meta hint">every detected jj repository already has a sidecar</p>{{end}}
- </div>
- </section>
-
- <section>
- <h2>Git repositories <span class="meta">— {{len .Git}} without jj metadata</span></h2>
- <p class="meta">Initializing adds colocated <code>.jj</code> metadata; it does not create a sidecar until you choose “start private sidecar”.</p>
- <div class="project-grid">
- {{range .Git}}
- <article class="project-card" data-project="{{.Name}} {{.Relative}}">
- <header><h3>{{.Name}}</h3><span class="project-state git">git</span></header>
- <p class="project-path" title="{{.Path}}"><code>{{.Relative}}</code></p>
- <form method="post" action="/git/{{.ID}}/init">
- <button type="submit">initialize colocated jj</button>
- </form>
- </article>
- {{end}}
- {{if not .Git}}<p class="meta hint">no Git-only repositories detected</p>{{end}}
- </div>
- </section>
-</main>
-</body>
-</html>{{end}}