You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
5.7 KiB
164 lines
5.7 KiB
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
|
<%@ page import="java.io.BufferedReader, java.io.InputStreamReader, java.io.IOException, java.io.StringWriter, java.io.PrintWriter" %> |
|
<html> |
|
<head> |
|
<title>Ladejobs</title> |
|
<style> |
|
body { |
|
font-family: Arial, sans-serif; |
|
margin: 0; /* Ensure no extra margin */ |
|
padding: 0; /* Ensure no extra padding */ |
|
overflow: visible; /* Ensure content is fully visible */ |
|
} |
|
|
|
table { |
|
width: 100%; /* Ensure table takes full width */ |
|
border-collapse: collapse; |
|
font-size: small; |
|
} |
|
table, th, td { |
|
border: 1px solid black; |
|
} |
|
th, td { |
|
padding: 7px; |
|
text-align: left; |
|
white-space: normal; |
|
} |
|
th { |
|
background-color: #f2f2f2; |
|
} |
|
td { |
|
background-color: white; |
|
} |
|
|
|
.container { |
|
display: flex; |
|
flex-direction: row; /* Align items vertically */ |
|
align-items: flex-start; |
|
width: 100%; /* Ensure container takes full width */ |
|
height: 100%; /* Ensure container takes full height */ |
|
overflow: visible; /* Ensure content is fully visible */ |
|
} |
|
|
|
.traffic-light-container { |
|
margin-top: 10px; |
|
margin-left: 20px; /* Adjust the margin as needed */ |
|
} |
|
|
|
.traffic-light { |
|
width: 40px; /* Reduced width */ |
|
background-color: #333; |
|
padding: 10px; /* Reduced padding */ |
|
border-radius: 10px; |
|
display: flex; |
|
flex-direction: column; |
|
align-items: center; |
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); |
|
} |
|
|
|
.light { |
|
width: 30px; /* Reduced width */ |
|
height: 30px; /* Reduced height */ |
|
margin: 5px 0; /* Reduced margin */ |
|
border-radius: 50%; |
|
background-color: #555; |
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); |
|
} |
|
|
|
.light.red { |
|
background-color: rgb(70, 0, 0); |
|
} |
|
|
|
.light.red.on { |
|
background-color: red; |
|
box-shadow: 0 0 10px rgba(255, 0, 0, 0.5); |
|
} |
|
|
|
.light.yellow { |
|
background-color: rgb(70, 70, 0); |
|
} |
|
|
|
.light.yellow.on { |
|
background-color: yellow; |
|
box-shadow: 0 0 10px rgba(255, 255, 0, 0.5); |
|
} |
|
|
|
.light.green { |
|
background-color: rgb(0, 70, 0); |
|
} |
|
|
|
.light.green.on { |
|
background-color: rgb(0, 255, 0); |
|
box-shadow: 0 0 10px rgba(0, 255, 0, 0.5); |
|
} |
|
</style> |
|
</head> |
|
<body> |
|
<div class="container"> |
|
<div> |
|
<% |
|
boolean allSuccess = true; |
|
boolean anyRunning = false; |
|
try { |
|
Runtime runtime = Runtime.getRuntime(); |
|
|
|
// Execute the system command |
|
String[] commands = {"/bin/sh", "-c", "cd ~/alex_skripte/laderoutine && laderoutine.sh"}; |
|
Process process = runtime.exec(commands); |
|
|
|
// Read the output of the command |
|
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); |
|
String line; |
|
|
|
// Start HTML table |
|
out.println("<table>"); |
|
out.println("<tr><th>Modul</th><th>Start</th><th>Ende</th><th>Status</th></tr>"); |
|
|
|
// Process each line and add to the table |
|
while ((line = reader.readLine()) != null) { |
|
// Split the line into columns |
|
String[] columns = line.split("\\t"); |
|
out.println("<tr>"); |
|
for (String column : columns) { |
|
out.println("<td>" + column + "</td>"); |
|
} |
|
out.println("</tr>"); |
|
|
|
// Check the status column (assuming it's the fourth column) |
|
String status = columns[3].trim(); |
|
if (status.equals("Fehler")) { |
|
allSuccess = false; |
|
} else if (status.equals("läuft gerade...")) { |
|
anyRunning = true; |
|
} |
|
} |
|
|
|
// End HTML table |
|
out.println("</table>"); |
|
|
|
// Read the error stream of the command |
|
BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream())); |
|
while ((line = errorReader.readLine()) != null) { |
|
out.println("ERROR: " + line); |
|
} |
|
|
|
// Wait for the command to complete |
|
int exitCode = process.waitFor(); |
|
// out.println("<p>Exited with code: " + exitCode + "</p>"); |
|
} catch (IOException | InterruptedException e) { |
|
StringWriter sw = new StringWriter(); |
|
e.printStackTrace(new PrintWriter(sw)); |
|
out.println("Error: " + sw.toString()); |
|
} |
|
%> |
|
</div> |
|
<div class="traffic-light-container"> |
|
<div class="traffic-light"> |
|
<div class="light red <% if (!allSuccess) { %>on<% } %>"></div> |
|
<div class="light yellow <% if (anyRunning && allSuccess) { %>on<% } %>"></div> |
|
<div class="light green <% if (allSuccess && !anyRunning) { %>on<% } %>"></div> |
|
</div> |
|
</div> |
|
</div> |
|
</body> |
|
</html>
|
|
|