NetDesk 1.5.0 — source release

This commit is contained in:
NetDesk committed 2026-10-18 02:02:46 +00:00
commit 40318aafdd
227 files changed
+80798

No files matched your search

+50
View File
@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Contact — NetDesk</title>
<meta name="description" content="Contact NetDesk for sales, support, security or partnerships.">
<link rel="canonical" href="https://netdesk.space/contact">
<meta property="og:title" content="Contact — NetDesk">
<meta property="og:description" content="Contact NetDesk for sales, support, security or partnerships.">
<meta property="og:url" content="https://netdesk.space/contact">
<meta name="theme-color" content="#0a0d14">
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='7' fill='%233d7eff'/%3E%3Cpath d='M8 20l8-12 8 12-8-4z' fill='white'/%3E%3Crect x='12' y='18' width='8' height='7' rx='2' fill='white'/%3E%3C/svg%3E">
<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="site.css?v=2">
</head>
<body data-page="contact">
<div id="siteHeader"></div>
<section class="section"><div class="wrap">
<div class="sec-head"><div class="eyebrow">Contact</div><h2>Get in touch</h2><p>Sales, support, security or partnerships — we usually reply within one business day.</p></div>
<div class="contact-grid" style="max-width:960px;margin:0 auto">
<form class="feat" id="contactForm" onsubmit="return ndContact(event)">
<div class="field"><label>Name</label><input name="name" required placeholder="Your name"></div>
<div class="field"><label>Email</label><input name="email" type="email" required placeholder="you@company.com"></div>
<div class="field"><label>Topic</label><select name="topic"><option>General</option><option>Sales / Pro</option><option>Business / Enterprise</option><option>Support</option><option>Security</option><option>macOS beta</option></select></div>
<div class="field"><label>Message</label><textarea name="message" rows="5" required placeholder="How can we help?"></textarea></div>
<button class="btn btn-primary" type="submit" style="width:100%;justify-content:center">Send message</button>
<p id="cMsg" style="margin-top:12px;font-size:14px"></p>
</form>
<div>
<div class="info-row"><span class="ic">✉️</span><div><strong>Email</strong><br><a href="mailto:hello@netdesk.space" style="color:var(--accent2)">hello@netdesk.space</a></div></div>
<div class="info-row"><span class="ic">🛟</span><div><strong>Support</strong><br><a href="mailto:support@netdesk.space" style="color:var(--accent2)">support@netdesk.space</a></div></div>
<div class="info-row"><span class="ic">🔒</span><div><strong>Security</strong><br><a href="mailto:security@netdesk.space" style="color:var(--accent2)">security@netdesk.space</a></div></div>
<div class="info-row"><span class="ic">💻</span><div><strong>Open source</strong><br><a href="/git/akronlogic/netdesk" style="color:var(--accent2)">netdesk.space/git/akronlogic/netdesk</a></div></div>
<p style="color:var(--muted);font-size:14px;margin-top:18px">Prefer to self-host and never talk to us? That's the whole point — <a href="/download" style="color:var(--accent2)">just download it</a>.</p>
</div>
</div>
</div></section>
<script>
function ndContact(e){e.preventDefault();var f=e.target,m=document.getElementById("cMsg");
fetch("/api/contact",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.name.value,email:f.email.value,topic:f.topic.value,message:f.message.value})})
.then(function(r){return r.json().catch(function(){return{}})}).then(function(d){if(d&&d.ok){m.style.color="var(--ok)";m.textContent="Thanks — your message has been sent. We'll be in touch.";f.reset();}else{m.style.color="#f2666b";m.textContent=(d&&d.error)||"Could not send right now. Please email hello@netdesk.space.";}}).catch(function(){m.style.color="#f2666b";m.textContent="Could not send right now. Please email hello@netdesk.space.";});return false;}
var q=new URLSearchParams(location.search);if(q.get("plan")||q.get("topic")){var s=document.querySelector("select[name=topic]");var v=q.get("plan")==="pro"?"Sales / Pro":q.get("plan")==="business"?"Business / Enterprise":q.get("topic")==="mac"?"macOS beta":null;if(v&&s)[].forEach.call(s.options,function(o){if(o.text===v)o.selected=true;});}
</script>
<div id="siteFooter"></div>
<script src="site.js?v=3"></script>
</body>
</html>