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("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") {
|
||||
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`;
|
||||
});
|
||||
|
||||
parseForm.addEventListener("htmx:afterRequest", async (event) => {
|
||||
const xhr = event.detail.xhr;
|
||||
if (xhr.status < 200 || xhr.status >= 300) {
|
||||
const detail = (xhr.responseText || "").trim();
|
||||
parseForm.addEventListener("submit", async (event) => {
|
||||
event.preventDefault();
|
||||
const formData = new FormData(parseForm);
|
||||
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.";
|
||||
setStatus(`Parse failed (${xhr.status}).${suffix}`, "error");
|
||||
setStatus(`Parse failed (${res.status}).${suffix}`, "error");
|
||||
renderParseIssues([]);
|
||||
return;
|
||||
}
|
||||
|
||||
const payload = JSON.parse(xhr.responseText);
|
||||
const payload = await res.json();
|
||||
const parseIssues = payload.summary?.issues || [];
|
||||
const issues = parseIssues.length;
|
||||
window.KubeViz.lastParsedResources = payload.summary?.resources || 0;
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ .Title }}</title>
|
||||
<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>
|
||||
</head>
|
||||
<body>
|
||||
@@ -28,7 +27,7 @@
|
||||
</nav>
|
||||
|
||||
<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>
|
||||
<textarea id="manifestText" name="manifestText" rows="10" placeholder="apiVersion: apps/v1 kind: Deployment ..."></textarea>
|
||||
|
||||
@@ -97,7 +96,7 @@
|
||||
</section>
|
||||
|
||||
<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>
|
||||
<label for="query">Search</label>
|
||||
<input id="query" name="q" type="text" placeholder="name, kind, namespace or id">
|
||||
|
||||
Reference in New Issue
Block a user