DweebUI/views/networks.ejs

226 lines
12 KiB
Plaintext

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/>
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
<title>DweebUI - Networks</title>
<link href="css/tabler.min.css" rel="stylesheet"/>
<link href="css/demo.min.css" rel="stylesheet"/>
<style>
@import url('fonts/inter.css');
:root {
--tblr-font-sans-serif: 'Inter Var', -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif;
}
body {
font-feature-settings: "cv03", "cv04", "cv11";
}
</style>
</head>
<body >
<div class="page">
<!-- Navbar -->
<%- include('navbar.ejs') %>
<div class="page-wrapper">
<!-- Page header -->
<!-- Page body -->
<div class="page-body">
<div class="container-xl">
<div class="row row-deck row-cards">
<div class="col-12 mt-12">
<div class="card">
<div class="card-header">
<h3 class="card-title">Docker Networks</h3>
<div class="card-options btn-list">
<a href="/refreshsites" class="btn">
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-refresh" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4"></path> <path d="M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"></path> </svg>
Scan
</a>
<a href="#" class="btn" data-bs-toggle="modal" data-bs-target="#add-site">
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-plus" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M12 5l0 14"></path> <path d="M5 12l14 0"></path> </svg>
Create Network
</a>
</div>
</div>
<div class="modal modal-blur fade" id="add-site" tabindex="-1" style="display: none;" aria-hidden="true">
<div class="modal-dialog modal-sm modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-body">
<form action="/addsite" id="addsite" method="POST">
<div class="mb-3">
<div class="form-label">Type</div>
<select class="form-select" name="type">
<option value="reverse_proxy">Reverse Proxy</option>
<option value="proxy">Proxy</option>
<option value="file_server">File Server</option>
</select>
</div>
<div class="mb-3">
<label class="form-label">Domain / Subdomain</label>
<input type="text" class="form-control" name="domain" placeholder="media.mydomainname.com">
</div>
<div class="mb-4">
<div class="row g-2">
<div class="col-8">
<label class="form-label">Hostname / Host IP</label>
<input type="text" class="form-control" name="host" placeholder="localhost">
</div>
<div class="col-4">
<label class="form-label">Port</label>
<input type="text" class="form-control" name="port" placeholder="8000">
</div>
</div>
</div>
<div class="mb-3">
<div class="divide-y">
<div>
<label class="row">
<span class="col" title="HTTP Strict Transport Security (HSTS) is a simple and widely supported standard to protect visitors by ensuring that their browsers always connect to a website over HTTPS.">HSTS</span>
<span class="col-auto">
<label class="form-check form-check-single form-switch">
<input class="form-check-input" type="checkbox" name="hsts" checked="" disabled="">
</label>
</span>
</label>
</div>
</div>
</div>
<div class="mb-3">
<div class="form-label">Container</div>
<select class="form-select" name="container" disabled="">
<option value="0" selected></option>
<option value="1">Jellyfin</option>
</select>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-link link-secondary me-auto" data-bs-dismiss="modal">Cancel</button>
<input type="submit" form="addsite" class="btn btn-success" value="Add"/>
</div>
</div>
</div>
</div>
<div id="table-default" class="table-responsive">
<table class="table">
<thead>
<tr>
<th class="w-1"><input class="form-check-input m-0 align-middle" name="select" type="checkbox" aria-label="Select all" onclick="selectAll()"></th>
<th><button class="table-sort" data-sort="sort-name">Name</button></th>
<th><button class="table-sort" data-sort="sort-city">ID</button></th>
<th><button class="table-sort" data-sort="sort-type">Tag</button></th>
<th><button class="table-sort" data-sort="sort-score">Status</button></th>
<th><button class="table-sort" data-sort="sort-date">Created</button></th>
<th><button class="table-sort" data-sort="sort-quantity">Size</button></th>
<th><button class="table-sort" data-sort="sort-progress">Action</button></th>
</tr>
</thead>
<tbody class="table-tbody"><tr>
<td><input class="form-check-input m-0 align-middle" name="select" value="" type="checkbox" aria-label="Select"></td>
<td class="sort-name">Caddy</td>
<td class="sort-city">2f148ddb6662b4245ef4ced637e928eaf67a8a1941572d69627652253e779366</td>
<td class="sort-type">Latest</td>
<td class="sort-score text-green">In use</td>
<td class="sort-date" data-date="1628122643">August 05, 2021</td>
<td class="sort-quantity">69.27 MB</td>
<td class="text-end"><a class="btn" href="#">Details</a></td>
</tr><tr>
<td><input class="form-check-input m-0 align-middle" name="select" value="" type="checkbox" aria-label="Select"></td>
<td class="sort-name">clamav/clamav</td>
<td class="sort-city">c447f9c713058cdb915c5becbef004a678cd7b8d6f5d70ec53479ba7687c3375</td>
<td class="sort-type">Latest</td>
<td class="sort-score text-green">In use</td>
<td class="sort-date" data-date="1546344668">January 01, 2019</td>
<td class="sort-quantity">546.22 MB</td>
<td class="text-end"><a class="btn" href="#">Details</a></td>
</tr><tr>
<td><input class="form-check-input m-0 align-middle" name="select" value="" type="checkbox" aria-label="Select"></td>
<td class="sort-name">linuxserver/code-server</td>
<td class="sort-city">af09184f86e955b33bef7634862430f54899cc9ca5e492d1530451caa1d99dc0</td>
<td class="sort-type">Latest</td>
<td class="sort-score text-yellow">Unused</td>
<td class="sort-date" data-date="1545977105">December 28, 2018</td>
<td class="sort-quantity">63.91 MB</td>
<td class="text-end"><a class="btn" href="#">Details</a></td>
</tr>
</tbody>
</table>
</div>
<div class="card-footer d-flex align-items-center">
<span class="dropdown">
<button class="btn dropdown-toggle align-text-top" data-bs-toggle="dropdown">Actions</button>
<div class="dropdown-menu dropdown-menu-end">
<button class="dropdown-item" type="submit" formaction="/enablesite">
Enable
</button>
<button class="dropdown-item" type="submit" formaction="/disablesite">
Disable
</button>
<button class="dropdown-item" type="submit" formaction="/removesite">
Delete
</button>
</div>
</span>
</form>
<p class="m-0 text-muted ms-auto">3 Images</p>
</div>
</div>
</div>
</div>
</div>
</div>
<%- include('footer.ejs') %>
</div>
</div>
<!-- Libs JS -->
<script src="libs/list.js/dist/list.min.js" defer></script>
<!-- Tabler Core -->
<script src="js/tabler.min.js" defer></script>
<script src="js/demo.min.js" defer></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
const list = new List('table-default', {
sortClass: 'table-sort',
listClass: 'table-tbody',
valueNames: [ 'sort-name', 'sort-type', 'sort-city', 'sort-score',
{ attr: 'data-date', name: 'sort-date' },
{ attr: 'data-progress', name: 'sort-progress' },
'sort-quantity'
]
});
})
</script>
<script>
function selectAll() {
let checkboxes = document.getElementsByName('select');
if (checkboxes[0].checked == true) {
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = true;
}
} else {
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].checked = false;
}
}
}
</script>
</body>
</html>