This commit is contained in:
@@ -74,7 +74,7 @@ func (s *Server) middleware(next http.Handler) http.Handler {
|
|||||||
|
|
||||||
w.Header().Set("X-Content-Type-Options", "nosniff")
|
w.Header().Set("X-Content-Type-Options", "nosniff")
|
||||||
w.Header().Set("Referrer-Policy", "same-origin")
|
w.Header().Set("Referrer-Policy", "same-origin")
|
||||||
w.Header().Set("Content-Security-Policy", "default-src 'self'; script-src 'self' https://unpkg.com https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self';")
|
w.Header().Set("Content-Security-Policy", "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self';")
|
||||||
if r.TLS != nil || strings.EqualFold(r.Header.Get("X-Forwarded-Proto"), "https") {
|
if r.TLS != nil || strings.EqualFold(r.Header.Get("X-Forwarded-Proto"), "https") {
|
||||||
w.Header().Set("Strict-Transport-Security", "max-age=31536000; includeSubDomains")
|
w.Header().Set("Strict-Transport-Security", "max-age=31536000; includeSubDomains")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,17 +83,22 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||||||
fileCount.textContent = count === 1 ? fileInput.files[0].name : `${count} files selected`;
|
fileCount.textContent = count === 1 ? fileInput.files[0].name : `${count} files selected`;
|
||||||
});
|
});
|
||||||
|
|
||||||
parseForm.addEventListener("htmx:afterRequest", async (event) => {
|
parseForm.addEventListener("submit", async (event) => {
|
||||||
const xhr = event.detail.xhr;
|
event.preventDefault();
|
||||||
if (xhr.status < 200 || xhr.status >= 300) {
|
const formData = new FormData(parseForm);
|
||||||
const detail = (xhr.responseText || "").trim();
|
const res = await fetch("/api/manifests/parse", {
|
||||||
|
method: "POST",
|
||||||
|
body: formData,
|
||||||
|
});
|
||||||
|
if (!res.ok) {
|
||||||
|
const detail = (await res.text()).trim();
|
||||||
const suffix = detail ? ` ${detail}` : " Check YAML syntax and try again.";
|
const suffix = detail ? ` ${detail}` : " Check YAML syntax and try again.";
|
||||||
setStatus(`Parse failed (${xhr.status}).${suffix}`, "error");
|
setStatus(`Parse failed (${res.status}).${suffix}`, "error");
|
||||||
renderParseIssues([]);
|
renderParseIssues([]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const payload = JSON.parse(xhr.responseText);
|
const payload = await res.json();
|
||||||
const parseIssues = payload.summary?.issues || [];
|
const parseIssues = payload.summary?.issues || [];
|
||||||
const issues = parseIssues.length;
|
const issues = parseIssues.length;
|
||||||
window.KubeViz.lastParsedResources = payload.summary?.resources || 0;
|
window.KubeViz.lastParsedResources = payload.summary?.resources || 0;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>{{ .Title }}</title>
|
<title>{{ .Title }}</title>
|
||||||
<link rel="stylesheet" href="/static/styles.css">
|
<link rel="stylesheet" href="/static/styles.css">
|
||||||
<script defer src="https://unpkg.com/htmx.org@1.9.12"></script>
|
|
||||||
<script defer src="/static/app.js"></script>
|
<script defer src="/static/app.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -28,7 +27,7 @@
|
|||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<section id="tab-data" class="tab-pane active">
|
<section id="tab-data" class="tab-pane active">
|
||||||
<form id="manifest-form" hx-post="/api/manifests/parse" hx-encoding="multipart/form-data" hx-swap="none">
|
<form id="manifest-form">
|
||||||
<label for="manifestText">Paste YAML</label>
|
<label for="manifestText">Paste YAML</label>
|
||||||
<textarea id="manifestText" name="manifestText" rows="10" placeholder="apiVersion: apps/v1 kind: Deployment ..."></textarea>
|
<textarea id="manifestText" name="manifestText" rows="10" placeholder="apiVersion: apps/v1 kind: Deployment ..."></textarea>
|
||||||
|
|
||||||
@@ -97,7 +96,7 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id="tab-filter" class="tab-pane">
|
<section id="tab-filter" class="tab-pane">
|
||||||
<form id="filter-form" hx-get="/api/graph" hx-swap="none">
|
<form id="filter-form">
|
||||||
<h3>Quick Filters</h3>
|
<h3>Quick Filters</h3>
|
||||||
<label for="query">Search</label>
|
<label for="query">Search</label>
|
||||||
<input id="query" name="q" type="text" placeholder="name, kind, namespace or id">
|
<input id="query" name="q" type="text" placeholder="name, kind, namespace or id">
|
||||||
|
|||||||
Reference in New Issue
Block a user