Страница ISO была переведена на единое меню
Этот коммит содержится в:
@@ -7,93 +7,96 @@
|
|||||||
<link rel="stylesheet" href="/static/app.css">
|
<link rel="stylesheet" href="/static/app.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="shell">
|
<div class="v-layout">
|
||||||
<header class="topbar">
|
{% include "_sidebar.html" %}
|
||||||
<div>
|
|
||||||
<div class="brand">ISO</div>
|
|
||||||
<div class="muted">Установочные образы только .iso в /var/lib/virtuality/iso</div>
|
|
||||||
</div>
|
|
||||||
<div class="top-meta">
|
|
||||||
<span>user: {{ user }}</span>
|
|
||||||
<a class="link-pill" href="/">← Дашборд</a>
|
|
||||||
<a class="link-pill accent" href="/vm/create">+ Создать VM</a>
|
|
||||||
<form method="post" action="/logout" class="logout-form"><button class="ghost">Выйти</button></form>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
{% if error %}
|
<main class="v-main">
|
||||||
<div class="alert danger">{{ error }}</div>
|
<header class="v-topbar">
|
||||||
{% endif %}
|
<div>
|
||||||
|
<div class="v-title">ISO</div>
|
||||||
<section class="grid two">
|
<div class="v-subtitle">Установочные образы только .iso в /var/lib/virtuality/iso</div>
|
||||||
<article class="card">
|
|
||||||
<div class="card-head">
|
|
||||||
<h2>Загрузить установочный ISO</h2>
|
|
||||||
<span class="pill">только .iso</span>
|
|
||||||
</div>
|
</div>
|
||||||
<form id="iso-upload-form" method="post" action="/iso/upload" enctype="multipart/form-data" class="form-grid">
|
<div class="top-meta">
|
||||||
<label class="upload-box">
|
<span>user: {{ user }}</span>
|
||||||
<span>Выбери ISO-файл установочного диска</span>
|
<a class="link-pill" href="/">← Дашборд</a>
|
||||||
<input id="iso-file-input" type="file" name="iso_file" accept=".iso" required>
|
<form method="post" action="/logout" class="logout-form"><button class="ghost">Выйти</button></form>
|
||||||
</label>
|
</div>
|
||||||
<div id="iso-file-hint" class="muted small-note">Файл ещё не выбран. В этом разделе разрешены только установочные образы .iso.</div>
|
</header>
|
||||||
<div id="upload-progress-wrap" class="upload-progress-wrap" hidden>
|
|
||||||
<div class="upload-progress-head">
|
{% if error %}
|
||||||
<strong id="upload-status">Подготовка…</strong>
|
<div class="alert danger">{{ error }}</div>
|
||||||
<span id="upload-percent">0%</span>
|
{% endif %}
|
||||||
</div>
|
|
||||||
<div class="progress big"><span id="upload-progress-bar"></span></div>
|
<section class="grid two">
|
||||||
<div class="upload-progress-meta">
|
<article class="card">
|
||||||
<span id="upload-loaded">0 MB</span>
|
<div class="card-head">
|
||||||
<span id="upload-speed">скорость считается…</span>
|
<h2>Загрузить установочный ISO</h2>
|
||||||
</div>
|
<span class="pill">только .iso</span>
|
||||||
</div>
|
</div>
|
||||||
<button id="iso-upload-button" type="submit" class="primary wide">Загрузить ISO</button>
|
<form id="iso-upload-form" method="post" action="/iso/upload" enctype="multipart/form-data" class="form-grid">
|
||||||
</form>
|
<label class="upload-box">
|
||||||
<p class="muted small-note">Файл попадёт в <b>/var/lib/virtuality/iso</b>. Для готовых системных дисков используй раздел <b>Диски</b>: .img / .raw / .qcow2.</p>
|
<span>Выбери ISO-файл установочного диска</span>
|
||||||
</article>
|
<input id="iso-file-input" type="file" name="iso_file" accept=".iso" required>
|
||||||
|
</label>
|
||||||
|
<div id="iso-file-hint" class="muted small-note">Файл ещё не выбран. В этом разделе разрешены только установочные образы .iso.</div>
|
||||||
|
<div id="upload-progress-wrap" class="upload-progress-wrap" hidden>
|
||||||
|
<div class="upload-progress-head">
|
||||||
|
<strong id="upload-status">Подготовка…</strong>
|
||||||
|
<span id="upload-percent">0%</span>
|
||||||
|
</div>
|
||||||
|
<div class="progress big"><span id="upload-progress-bar"></span></div>
|
||||||
|
<div class="upload-progress-meta">
|
||||||
|
<span id="upload-loaded">0 MB</span>
|
||||||
|
<span id="upload-speed">скорость считается…</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button id="iso-upload-button" type="submit" class="primary wide">Загрузить ISO</button>
|
||||||
|
</form>
|
||||||
|
<p class="muted small-note">Файл попадёт в <b>/var/lib/virtuality/iso</b>. Для готовых системных дисков используй раздел <b>Диски</b>: .img / .raw / .qcow2.</p>
|
||||||
|
</article>
|
||||||
|
|
||||||
<article class="card">
|
<article class="card">
|
||||||
<div class="card-head">
|
<div class="card-head">
|
||||||
<h2>Действия</h2>
|
<h2>Действия</h2>
|
||||||
<span class="pill">pool</span>
|
<span class="pill">pool</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="actions big-actions">
|
<div class="actions big-actions">
|
||||||
<form method="post" action="/iso/refresh"><button>Обновить ISO pool</button></form>
|
<form method="post" action="/iso/refresh"><button>Обновить ISO pool</button></form>
|
||||||
<a class="link-pill accent" href="/vm/create">Создать VM</a>
|
<a class="link-pill accent" href="/vm/create">Создать VM</a>
|
||||||
</div>
|
</div>
|
||||||
<pre>sudo virsh pool-refresh virtuality-iso
|
<pre>sudo virsh pool-refresh virtuality-iso
|
||||||
ls -lh /var/lib/virtuality/iso</pre>
|
ls -lh /var/lib/virtuality/iso</pre>
|
||||||
</article>
|
</article>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="card">
|
<section class="card">
|
||||||
<div class="card-head">
|
<div class="card-head">
|
||||||
<h2>ISO-образы</h2>
|
<h2>ISO-образы</h2>
|
||||||
<span class="pill">{{ isos|length }} файлов</span>
|
<span class="pill">{{ isos|length }} файлов</span>
|
||||||
</div>
|
</div>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr><th>Файл</th><th>Размер</th><th>Обновлён</th><th>Действия</th></tr>
|
<tr><th>Файл</th><th>Размер</th><th>Обновлён</th><th>Действия</th></tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for iso in isos %}
|
{% for iso in isos %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="strong">{{ iso.name }}</td>
|
<td class="strong">{{ iso.name }}</td>
|
||||||
<td>{{ iso.size }}</td>
|
<td>{{ iso.size }}</td>
|
||||||
<td>{{ iso.updated }}</td>
|
<td>{{ iso.updated }}</td>
|
||||||
<td class="actions">
|
<td class="actions">
|
||||||
<form method="post" action="/iso/{{ iso.name }}/delete" onsubmit="return confirm('Удалить ISO {{ iso.name }}?');">
|
<form method="post" action="/iso/{{ iso.name }}/delete" onsubmit="return confirm('Удалить ISO {{ iso.name }}?');">
|
||||||
<button class="danger">Удалить</button>
|
<button class="danger">Удалить</button>
|
||||||
</form>
|
</form>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr><td colspan="4" class="muted">ISO пока нет. Загрузи первый установочный .iso через форму выше.</td></tr>
|
<tr><td colspan="4" class="muted">ISO пока нет. Загрузи первый установочный .iso через форму выше.</td></tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</section>
|
</section>
|
||||||
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -232,5 +235,6 @@ ls -lh /var/lib/virtuality/iso</pre>
|
|||||||
xhr.send(data);
|
xhr.send(data);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
<script src="/static/panel.js" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user