2023-11-18 19:51:10 +00:00
|
|
|
{% extends "base.html" %}
|
|
|
|
|
2023-11-19 14:08:47 +00:00
|
|
|
{% block title %}Stack {{stack_name}}{% endblock %}
|
2023-11-18 19:51:10 +00:00
|
|
|
|
|
|
|
{% block content %}
|
|
|
|
<main>
|
2023-11-21 00:36:42 +00:00
|
|
|
<header>
|
|
|
|
<h1>Stack details for <span class="stack-name">{{stack_name}}</span></h1>
|
|
|
|
<div class="actions">
|
|
|
|
<form action="./start" method="POST"><button type="submit">Start</button></form>
|
|
|
|
<form action="./restart" method="POST"><button type="submit">Restart</button></form>
|
|
|
|
<form action="./stop" method="POST"><button type="submit">Stop</button></form>
|
|
|
|
<form action="./down" method="POST"><button type="submit">Down</button></form>
|
|
|
|
</div>
|
|
|
|
</header>
|
|
|
|
<section class="container-list">
|
|
|
|
<h2>Containers</h2>
|
2023-11-22 09:59:51 +00:00
|
|
|
<table class="containers table">
|
2023-11-21 00:36:42 +00:00
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>Name</th>
|
|
|
|
<th>State</th>
|
|
|
|
<th>Image</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
{% for container in containers %}
|
|
|
|
<tr>
|
|
|
|
<td><a href="/container/{{container.name}}/">{{container.name}}</a></td>
|
|
|
|
<td class="status {{container.state}}">{{container.state}}</td>
|
|
|
|
<td>{{container.image}}</td>
|
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</section>
|
|
|
|
<section class="editor">
|
|
|
|
<h2>Editor</h2>
|
2023-11-23 00:38:39 +00:00
|
|
|
<form method="POST" action="./edit" id="editor-form">
|
|
|
|
<textarea name="source" id="editor">{{file_contents}}</textarea>
|
|
|
|
<div class="row">
|
|
|
|
<input style="flex:1" name="commit_message" type="text"
|
|
|
|
placeholder="What did you change?" />
|
2023-11-23 23:17:03 +00:00
|
|
|
<div id="editor-extra"></div>
|
2023-11-23 00:38:39 +00:00
|
|
|
<button class="wide" type="submit">Deploy</button>
|
|
|
|
</div>
|
|
|
|
</form>
|
2023-11-21 00:36:42 +00:00
|
|
|
</section>
|
2023-11-18 19:51:10 +00:00
|
|
|
</main>
|
2023-11-18 22:17:05 +00:00
|
|
|
|
2023-11-23 13:18:00 +00:00
|
|
|
<link rel="stylesheet" href="/static/css/editor.css" />
|
2023-11-18 22:17:05 +00:00
|
|
|
<style scoped>
|
|
|
|
main {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
gap: 1rem;
|
|
|
|
}
|
|
|
|
|
|
|
|
h2 {
|
|
|
|
text-transform: uppercase;
|
|
|
|
}
|
|
|
|
|
|
|
|
pre {
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.containers {
|
|
|
|
& .status {
|
|
|
|
text-align: center;
|
|
|
|
font-weight: bold;
|
|
|
|
color: white;
|
2023-11-21 00:36:42 +00:00
|
|
|
padding: 0 10px;
|
2023-11-18 22:17:05 +00:00
|
|
|
|
|
|
|
&.exited {
|
|
|
|
background-color: #E5484D;
|
|
|
|
}
|
|
|
|
|
|
|
|
&.running {
|
|
|
|
background-color: #46A758;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.stack-name {
|
|
|
|
color: #E796F3;
|
|
|
|
}
|
|
|
|
|
2023-11-21 00:36:42 +00:00
|
|
|
.actions {
|
|
|
|
display: flex;
|
|
|
|
gap: 0.5rem;
|
|
|
|
|
|
|
|
& form {
|
|
|
|
display: flex;
|
|
|
|
min-width: 80px;
|
|
|
|
}
|
|
|
|
|
|
|
|
& button {
|
|
|
|
flex: 1;
|
|
|
|
}
|
|
|
|
}
|
2023-11-18 22:17:05 +00:00
|
|
|
</style>
|
|
|
|
|
2023-11-23 13:18:00 +00:00
|
|
|
|
|
|
|
<script type="module">
|
|
|
|
import Editor from "/static/js/ace.mjs";
|
|
|
|
|
2023-11-23 23:17:03 +00:00
|
|
|
const editor = new Editor("editor");
|
|
|
|
|
|
|
|
/* Add extra buttons */
|
|
|
|
const extraContainer = document.getElementById("editor-extra");
|
|
|
|
|
|
|
|
/* Check button */
|
|
|
|
const checkButton = document.createElement("button");
|
|
|
|
checkButton.appendChild(document.createTextNode("Check"));
|
|
|
|
checkButton.type = "button";
|
|
|
|
checkButton.addEventListener("click", async () => {
|
|
|
|
const body = editor.editor.getValue();
|
|
|
|
const response = await fetch("/stack/_/check", {
|
|
|
|
method: "POST",
|
|
|
|
headers: {
|
|
|
|
"Accept": "application/json",
|
|
|
|
"Content-Type": "text/plain",
|
|
|
|
},
|
|
|
|
body
|
|
|
|
});
|
|
|
|
})
|
|
|
|
extraContainer.appendChild(checkButton);
|
2023-11-18 22:17:05 +00:00
|
|
|
</script>
|
|
|
|
|
2023-11-18 19:51:10 +00:00
|
|
|
{% endblock %}
|