118 lines
5.9 KiB
HTML
118 lines
5.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
{{template "head" .}}
|
|
<script src="scripts/index.js" type="module"></script>
|
|
<script src="modules/wfa.js" type="module"></script>
|
|
<link rel="modulepreload" href="scripts/utils.js">
|
|
<link rel="modulepreload" href="scripts/dialog.js">
|
|
<link rel="modulepreload" href="scripts/clientsync.js">
|
|
<style>
|
|
#instance-container > div {
|
|
border-bottom: 1px solid white;
|
|
}
|
|
#instance-container > div:last-child {
|
|
border-bottom: none;
|
|
}
|
|
@media screen and (width >= 440px) {
|
|
#vm-search {
|
|
max-width: calc(100% - 10px - 152px);
|
|
}
|
|
}
|
|
@media screen and (width <= 440px) {
|
|
#vm-search {
|
|
max-width: calc(100% - 10px - 47px);
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<header>
|
|
{{template "header" .}}
|
|
</header>
|
|
<main>
|
|
<section>
|
|
<h2>Instances</h2>
|
|
<div class="w3-card w3-padding">
|
|
<div class="flex row nowrap" style="margin-top: 1em; justify-content: space-between;">
|
|
<form id="vm-search" role="search" class="flex row nowrap" tabindex="0">
|
|
<svg role="img" aria-label="Search Instances"><use href="images/common/search.svg#symb"></use></svg>
|
|
<input type="search" id="search" class="w3-input w3-border" style="height: 1lh; max-width: fit-content;" aria-label="search instances by name">
|
|
</form>
|
|
<button type="button" id="instance-add" class="w3-button" aria-label="create new instance">
|
|
<span class="large" style="margin: 0;">Create Instance</span>
|
|
<svg class="small" style="height: 1lh; width: 1lh;" role="img" aria-label="Create New Instance"><use href="images/actions/instance/add.svg#symb"></use></svg>
|
|
</button>
|
|
</div>
|
|
<div>
|
|
<div class="w3-row w3-hide-small" style="border-bottom: 1px solid;">
|
|
<p class="w3-col l1 m2 w3-hide-small">ID</p>
|
|
<p class="w3-col l2 m3 w3-hide-small">Name</p>
|
|
<p class="w3-col l1 m2 w3-hide-small">Type</p>
|
|
<p class="w3-col l2 m3 w3-hide-small">Status</p>
|
|
<p class="w3-col l2 w3-hide-medium w3-hide-small">Host Name</p>
|
|
<p class="w3-col l2 w3-hide-medium w3-hide-small">Host Status</p>
|
|
<p class="w3-col l2 m2 w3-hide-small">Actions</p>
|
|
</div>
|
|
<div id="instance-container">
|
|
{{range .instances}}
|
|
{{template "instance-card" .}}
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
</body>
|
|
|
|
<modal-dialog id="create-instance-dialog">
|
|
<template shadowrootmode="open">
|
|
<link rel="stylesheet" href="modules/w3.css">
|
|
<link rel="stylesheet" href="css/style.css">
|
|
<link rel="stylesheet" href="css/form.css">
|
|
<dialog class="w3-container w3-card w3-border-0">
|
|
<p class="w3-large" id="prompt" style="text-align: center;">
|
|
Create New Instance
|
|
</p>
|
|
<div id="body">
|
|
<form method="dialog" class="input-grid" style="grid-template-columns: auto 1fr;" id="form">
|
|
<label for="type">Instance Type</label>
|
|
<select class="w3-select w3-border" name="type" id="type" selected-index="-1" required>
|
|
<option value="lxc">Container</option>
|
|
<option value="qemu">Virtual Machine</option>
|
|
</select>
|
|
<label for="node">Node</label>
|
|
<select class="w3-select w3-border" name="node" id="node" required></select>
|
|
<label for="name">Name</label>
|
|
<input class="w3-input w3-border" name="name" id="name" type="text" required>
|
|
<label for="vmid">ID</label>
|
|
<input class="w3-input w3-border" name="vmid" id="vmid" type="number" required>
|
|
<label for="pool">Pool</label>
|
|
<select class="w3-select w3-border" name="pool" id="pool" required></select>
|
|
<label for="cores">Cores (Threads)</label>
|
|
<input class="w3-input w3-border" name="cores" id="cores" type="number" min="1" max="8192" required>
|
|
<label for="memory">Memory (MiB)</label>
|
|
<input class="w3-input w3-border" name="memory" id="memory" type="number" min="16" step="1" required>
|
|
<p class="container-specific none" style="grid-column: 1 / span 2; text-align: center;">Container Options</p>
|
|
<label class="container-specific none" for="swap">Swap (MiB)</label>
|
|
<input class="w3-input w3-border container-specific none" name="swap" id="swap" type="number" min="0" step="1" required disabled>
|
|
<label class="container-specific none" for="template-image">Template Image</label>
|
|
<select class="w3-select w3-border container-specific none" name="template-image" id="template-image" required disabled></select>
|
|
<label class="container-specific none" for="rootfs-storage">ROOTFS Storage</label>
|
|
<select class="w3-select w3-border container-specific none" name="rootfs-storage" id="rootfs-storage" required disabled></select>
|
|
<label class="container-specific none" for="rootfs-size">ROOTFS Size (GiB)</label>
|
|
<input class="w3-input w3-border container-specific none" name="rootfs-size" id="rootfs-size" type="number" min="0" max="131072" required disabled>
|
|
<label class="container-specific none" for="password">Password</label>
|
|
<input class="w3-input w3-border container-specific none" name="password" id="password" type="password" required disabled>
|
|
<label class="container-specific none" for="confirm-password">Confirm Password</label>
|
|
<input class="w3-input w3-border container-specific none" name="confirm-password" id="confirm-password" type="password" required disabled>
|
|
</form>
|
|
</div>
|
|
<div id="controls" class="w3-center w3-container">
|
|
<button id="cancel" type="submit" value="cancel" form="form" class="w3-button w3-margin" style="background-color: var(--negative-color, #f00); color: var(--lightbg-text-color, black);" formnovalidate>CANCEL</button>
|
|
<button id="confirm" type="submit" value="confirm" form="form" class="w3-button w3-margin" style="background-color: var(--positive-color, #0f0); color: var(--lightbg-text-color, black);">CONFIRM</button>
|
|
</div>
|
|
</dialog>
|
|
</template>
|
|
</modal-dialog>
|
|
</html> |