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>
 | 
						|
 |