mirror of
git://f0xx.org/ac/ac-be-builder
synced 2026-07-29 04:18:20 +03:00
feat(builder): shared nav shell, fail notify, sanitizer wiring
Signed-off-by: Anton Afanasyeu <a.afanasieff@gmail.com>
This commit is contained in:
@@ -15,6 +15,7 @@ if ($pipelineYaml === '') {
|
||||
}
|
||||
$stepLabels = [
|
||||
'git' => 'Git checkout / shallow clone',
|
||||
'docker-setup' => 'Builder host (Docker daemon)',
|
||||
'docker-build' => 'Docker image build',
|
||||
'docker-run' => 'Gradle pipeline (docker run)',
|
||||
];
|
||||
|
||||
@@ -32,6 +32,14 @@
|
||||
<label><input type="checkbox" name="auto_ota"> Create OTA artifacts</label>
|
||||
<label><input type="checkbox" name="auto_deploy"> Publish OTA to mount</label>
|
||||
</div>
|
||||
<div class="build-form-grid" style="margin-top:10px">
|
||||
<label><input type="checkbox" name="notify_on_fail" checked> Alert me if this build fails</label>
|
||||
<label>Alert channel<select name="notify_channel">
|
||||
<option value="email" selected>Email</option>
|
||||
<option value="telegram">Telegram</option>
|
||||
<option value="both">Email + Telegram</option>
|
||||
</select></label>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Start build</button>
|
||||
<span id="build-trigger-status" class="muted"></span>
|
||||
</form>
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
<?php declare(strict_types=1);
|
||||
$ab = assets_base();
|
||||
$links = cfg('links', []);
|
||||
$projectBase = Auth::projectBasePath();
|
||||
$issuesBase = rtrim((string) cfg('links.crashes', $projectBase . '/issues'), '/');
|
||||
$navActive = 'builder';
|
||||
$user = Auth::user();
|
||||
$navUser = is_array($user) ? trim((string) ($user['username'] ?? '')) : '';
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" data-theme="dark">
|
||||
@@ -17,6 +22,7 @@ $links = cfg('links', []);
|
||||
})();
|
||||
</script>
|
||||
<link rel="stylesheet" href="<?= h($ab) ?>/assets/css/app.css">
|
||||
<script src="<?= h($ab) ?>/assets/js/nav_shell.js" defer></script>
|
||||
<script src="<?= h($ab) ?>/assets/js/i18n.js" defer></script>
|
||||
<script src="<?= h(Auth::basePath()) ?>/assets/js/builder.js" defer></script>
|
||||
</head>
|
||||
@@ -25,28 +31,24 @@ $links = cfg('links', []);
|
||||
<?= (($view ?? '') === 'build' && !empty($build['id'])) ? ' data-build-id="' . (int) $build['id'] . '"' : '' ?>
|
||||
<?= (($view ?? '') === 'build' && !empty($build['status'])) ? ' data-build-status="' . h((string) $build['status']) . '"' : '' ?>>
|
||||
<div class="shell">
|
||||
<nav class="nav-pane" id="nav-pane" aria-label="Builder navigation">
|
||||
<button type="button" class="nav-handle" id="nav-handle" aria-label="Toggle navigation">
|
||||
<span class="nav-icon nav-icon--menu" aria-hidden="true"></span>
|
||||
</button>
|
||||
<ul class="nav-list">
|
||||
<li><a href="<?= h(Auth::basePath()) ?>/" class="nav-link <?= ($view ?? '') === 'home' ? 'active' : '' ?>"><span class="nav-icon nav-icon--home"></span><span class="nav-label">Builder</span></a></li>
|
||||
<li><a href="<?= h($links['crashes'] ?? '') ?>?view=reports" class="nav-link"><span class="nav-icon nav-icon--reports"></span><span class="nav-label">Crashes</span></a></li>
|
||||
<li><a href="<?= h($links['tickets'] ?? '') ?>" class="nav-link"><span class="nav-icon nav-icon--tickets"></span><span class="nav-label">Tickets</span></a></li>
|
||||
<li><a href="<?= h($links['git'] ?? '') ?>" class="nav-link"><span class="nav-icon nav-icon--git"></span><span class="nav-label">Git</span></a></li>
|
||||
<li><a href="<?= h($links['hub'] ?? '') ?>" class="nav-link"><span class="nav-icon nav-icon--home"></span><span class="nav-label">Hub</span></a></li>
|
||||
</ul>
|
||||
<div class="nav-locale">
|
||||
<label class="toolbar-select"><span>Theme</span>
|
||||
<select id="theme-select" aria-label="UI theme"><option value="dark">Dark</option><option value="light">Light</option></select>
|
||||
</label>
|
||||
</div>
|
||||
<div class="nav-user">
|
||||
<span class="nav-user-name"><?= h(Auth::user()['username'] ?? '') ?></span>
|
||||
<a href="<?= h(Auth::basePath()) ?>/logout" class="nav-link nav-link--logout">Logout</a>
|
||||
</div>
|
||||
</nav>
|
||||
<?php platform_render_nav_shell([
|
||||
'project_base' => $projectBase,
|
||||
'issues_base' => $issuesBase,
|
||||
'active' => $navActive,
|
||||
'username' => $navUser,
|
||||
]); ?>
|
||||
<main class="main-pane">
|
||||
<div class="toolbar reports-toolbar" style="margin-bottom:12px">
|
||||
<div class="toolbar-actions" style="margin-left:auto">
|
||||
<label class="toolbar-select">
|
||||
<span data-i18n="theme.label">Theme</span>
|
||||
<select id="theme-select" aria-label="UI theme">
|
||||
<option value="dark">Dark</option>
|
||||
<option value="light">Light</option>
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<?php if (($view ?? '') === 'build' && !empty($build)): ?>
|
||||
<?php require __DIR__ . '/build_detail.php'; ?>
|
||||
<?php else: ?>
|
||||
|
||||
Reference in New Issue
Block a user