mirror of
https://github.com/blw1138/cross-py-builder.git
synced 2026-09-07 21:41:09 -05:00
- Parse optional http:// scheme prefix on worker specs so a scheme-typed IP is stored cleanly and its remove button works. - Delete workers by their stored DB host/port instead of re-parsing the rendered URL, and surface add/remove errors in the UI. - Default new builds to git URL instead of zip upload. - Show worker hostname/IP from agent status in the address column. - Always include DB host/port in worker API output.
79 lines
2.3 KiB
HTML
79 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Cross-Py-Builder</title>
|
|
<link rel="stylesheet" href="/style.css">
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<h1>Cross-Py-Builder</h1>
|
|
<p id="worker-summary"></p>
|
|
</header>
|
|
|
|
<main>
|
|
<section class="card">
|
|
<h2>Workers</h2>
|
|
<form id="worker-form" class="inline-form">
|
|
<input type="text" id="worker-spec" placeholder="host:port (e.g. 192.168.1.40:9001)">
|
|
<button type="submit">Add worker</button>
|
|
</form>
|
|
<p id="worker-msg" class="msg"></p>
|
|
<div id="workers"></div>
|
|
</section>
|
|
|
|
<section class="card" id="submit-card">
|
|
<h2>New build</h2>
|
|
<form id="job-form">
|
|
<div class="field">
|
|
<label for="mode">Source</label>
|
|
<select id="mode">
|
|
<option value="git">Git repo</option>
|
|
<option value="upload">Upload zip</option>
|
|
</select>
|
|
</div>
|
|
<div class="field" id="url-field">
|
|
<label for="url">Git URL</label>
|
|
<input type="text" id="url" placeholder="https://…">
|
|
</div>
|
|
<div class="field" id="upload-field" hidden>
|
|
<label for="file">Project zip</label>
|
|
<input type="file" id="file" accept=".zip">
|
|
</div>
|
|
<div class="fields-row">
|
|
<div class="field">
|
|
<label for="os">OS</label>
|
|
<select id="os"><option value="">Any</option></select>
|
|
</div>
|
|
<div class="field">
|
|
<label for="cpu">CPU</label>
|
|
<select id="cpu"><option value="">Any</option></select>
|
|
</div>
|
|
</div>
|
|
<button type="submit">Submit build</button>
|
|
<p id="submit-msg" class="msg"></p>
|
|
</form>
|
|
</section>
|
|
|
|
<section class="card">
|
|
<h2>Jobs</h2>
|
|
<div id="jobs"><p class="muted">Loading…</p></div>
|
|
</section>
|
|
</main>
|
|
|
|
<div id="modal" class="modal" hidden>
|
|
<div class="modal-body">
|
|
<button id="modal-close" class="close" aria-label="Close">×</button>
|
|
<h3 id="modal-title"></h3>
|
|
<div class="job-meta"><code id="modal-meta"></code></div>
|
|
<div id="status-badge" class="badge"></div>
|
|
<div id="artifacts"></div>
|
|
<pre id="log"></pre>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="/app.js"></script>
|
|
</body>
|
|
</html>
|