first commit
This commit is contained in:
35
public/app.js
Executable file
35
public/app.js
Executable file
@@ -0,0 +1,35 @@
|
||||
const services = [
|
||||
{
|
||||
id: "abc",
|
||||
name: "Control GamePad",
|
||||
url: "https://thinkcentre.local:10010/"
|
||||
},
|
||||
{
|
||||
id: "xyz",
|
||||
name: "Guacamole",
|
||||
url: "http://thinkcentre.local:8080/"
|
||||
}
|
||||
];
|
||||
|
||||
const nav = document.getElementById("services");
|
||||
const grid = document.getElementById("service-grid");
|
||||
|
||||
services.forEach(svc => {
|
||||
// Header Button
|
||||
const btn = document.createElement("button");
|
||||
btn.textContent = svc.name;
|
||||
btn.onclick = () => go(svc);
|
||||
nav.appendChild(btn);
|
||||
|
||||
// Card
|
||||
const card = document.createElement("div");
|
||||
card.className = "service-card";
|
||||
card.textContent = svc.name;
|
||||
card.onclick = () => go(svc);
|
||||
grid.appendChild(card);
|
||||
});
|
||||
|
||||
function go(service) {
|
||||
localStorage.setItem("lastService", service.id);
|
||||
window.location.href = service.url;
|
||||
}
|
||||
27
public/index.html
Executable file
27
public/index.html
Executable file
@@ -0,0 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Service Portal</title>
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header id="header">
|
||||
<div class="logo">schooltech</div>
|
||||
<nav id="services">
|
||||
<!-- dynamisch -->
|
||||
</nav>
|
||||
<div class="user">User</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<h1>Willkommen</h1>
|
||||
<p>Bitte wählen Sie einen Service.</p>
|
||||
|
||||
<div id="service-grid"></div>
|
||||
</main>
|
||||
|
||||
<script src="app.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
61
public/style.css
Executable file
61
public/style.css
Executable file
@@ -0,0 +1,61 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
font-family: system-ui, sans-serif;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
background: #f5f6f8;
|
||||
}
|
||||
|
||||
header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 64px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
padding: 0 24px;
|
||||
backdrop-filter: blur(6px);
|
||||
background: rgba(0,0,0,0.35);
|
||||
color: white;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
nav button {
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
nav button:hover {
|
||||
background: rgba(255,255,255,0.15);
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
main {
|
||||
padding: 100px 40px;
|
||||
}
|
||||
|
||||
#service-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
||||
gap: 20px;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.service-card {
|
||||
background: white;
|
||||
padding: 20px;
|
||||
border-radius: 10px;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 4px 10px rgba(0,0,0,0.08);
|
||||
}
|
||||
Reference in New Issue
Block a user