57 lines
2.1 KiB
Text
57 lines
2.1 KiB
Text
.server_show
|
|
h2 = @server.name
|
|
|
|
.server-info
|
|
p
|
|
strong Status:
|
|
span[class="status status--#{@server.status}"] = @server.status.humanize
|
|
p
|
|
strong Port:
|
|
= @server.port
|
|
p
|
|
strong Template:
|
|
= link_to @server.server_template.name, @server.server_template
|
|
- if @server.last_health_check_at
|
|
p
|
|
strong Last Health Check:
|
|
= time_ago_in_words(@server.last_health_check_at)
|
|
|
|
.server-actions
|
|
- case @server.status
|
|
- when "stopped", "failed"
|
|
= button_to "Spawn Server", spawn_server_path(@server), method: :post, class: "btn btn--primary"
|
|
= button_to "Start Server", start_server_path(@server), method: :post, class: "btn btn--success"
|
|
- when "starting", "running"
|
|
= button_to "Stop Server", stop_server_path(@server), method: :post, class: "btn btn--warning"
|
|
= button_to "Restart Server", restart_server_path(@server), method: :post, class: "btn btn--warning"
|
|
|
|
= button_to "Delete Server", server_path(@server), method: :delete, data: { confirm: "Are you sure? This will stop and remove the server." }, class: "btn btn--danger"
|
|
= link_to "Back to Servers", servers_path, class: "btn"
|
|
|
|
section.logs
|
|
h3 Live Logs
|
|
#log-output
|
|
em Loading logs...
|
|
|
|
javascript:
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const serverId = #{@server.id};
|
|
const consumer = ActionCable.createConsumer();
|
|
const logOutput = document.getElementById('log-output');
|
|
|
|
consumer.subscriptions.create({channel: "LogChannel", server_id: serverId}, {
|
|
received: function(data) {
|
|
if (data.line) {
|
|
const line = document.createElement('div');
|
|
line.textContent = data.line;
|
|
logOutput.appendChild(line);
|
|
logOutput.scrollTop = logOutput.scrollHeight;
|
|
} else if (data.error) {
|
|
const error = document.createElement('div');
|
|
error.className = 'error';
|
|
error.textContent = data.error;
|
|
logOutput.appendChild(error);
|
|
}
|
|
}
|
|
});
|
|
});
|