150 lines
5.1 KiB
Plaintext
150 lines
5.1 KiB
Plaintext
<!-- filepath: /webapp/assignCapabilities.jsp -->
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Assign Capabilities</title>
|
|
</head>
|
|
<body>
|
|
<h1>Assign Capabilities to User</h1>
|
|
<form action="assignCapabilities" method="post">
|
|
<label for="userId">User ID:</label>
|
|
<input type="text" id="userId" name="userId" required><br><br>
|
|
|
|
<label for="roleId">Role:</label>
|
|
<select id="roleId" name="roleId" required>
|
|
<option value="Teller">Teller</option>
|
|
<option value="Manager">Manager</option>
|
|
<option value="Supervisor">Supervisor</option>
|
|
<option value="CMO">CMO</option>
|
|
<option value="CMD">CMD</option>
|
|
</select><br><br>
|
|
|
|
<label for="screenIds">Screens:</label><br>
|
|
<button type="button" onclick="openScreenSelectionPopup()">Select Screens</button>
|
|
<div id="selectedScreens">
|
|
<!-- Selected screens will be displayed here -->
|
|
</div>
|
|
|
|
<script>
|
|
async function fetchAndDisplayScreens() {
|
|
// Fetch screen names from the database
|
|
const response = await fetch('/getScreens');
|
|
const screens = await response.json();
|
|
|
|
// Display the screens as checkboxes directly on the page
|
|
const screenContainer = document.createElement('div');
|
|
screenContainer.id = 'screenContainer';
|
|
|
|
screenContainer.innerHTML = `
|
|
<h3>Select Screens</h3>
|
|
${screens.map(screen => `
|
|
<label><input type="checkbox" value="${screen.id}"> ${screen.name}</label><br>
|
|
`).join('')}
|
|
<br>
|
|
<button id="saveScreens">Save</button>
|
|
`;
|
|
|
|
// Append the screen container to the selectedScreens div
|
|
const selectedScreensDiv = document.getElementById('selectedScreens');
|
|
selectedScreensDiv.innerHTML = ''; // Clear any previous content
|
|
selectedScreensDiv.appendChild(screenContainer);
|
|
|
|
// Add event listener to save selected screens
|
|
document.getElementById('saveScreens').onclick = function () {
|
|
const selectedScreens = [];
|
|
const checkboxes = screenContainer.querySelectorAll('input[type="checkbox"]:checked');
|
|
checkboxes.forEach(checkbox => {
|
|
selectedScreens.push(checkbox.value);
|
|
});
|
|
|
|
// Display selected screens in the div
|
|
selectedScreensDiv.innerHTML = selectedScreens.map(screen => `<p>${screen}</p>`).join('');
|
|
};
|
|
}
|
|
|
|
// Call the function to fetch and display screens
|
|
fetchAndDisplayScreens();
|
|
</script>
|
|
<br>
|
|
|
|
<button type="submit">Assign</button>
|
|
</form>
|
|
</body>
|
|
</html>
|
|
|
|
|
|
|
|
package com.example;
|
|
|
|
import java.io.IOException;
|
|
import java.io.PrintWriter;
|
|
import java.sql.Connection;
|
|
import java.sql.DriverManager;
|
|
import java.sql.PreparedStatement;
|
|
import java.sql.ResultSet;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import javax.servlet.ServletException;
|
|
import javax.servlet.annotation.WebServlet;
|
|
import javax.servlet.http.HttpServlet;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import com.google.gson.Gson;
|
|
|
|
// Screen class to represent a screen object
|
|
class Screen {
|
|
private String id;
|
|
private String name;
|
|
|
|
public Screen(String id, String name) {
|
|
this.id = id;
|
|
this.name = name;
|
|
}
|
|
|
|
public String getId() {
|
|
return id;
|
|
}
|
|
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
}
|
|
|
|
@WebServlet("/getScreens")
|
|
public class GetScreensServlet extends HttpServlet {
|
|
private static final String DB_URL = "jdbc:oracle:thin:@localhost:1521:xe";
|
|
private static final String DB_USER = "your_db_user";
|
|
private static final String DB_PASSWORD = "your_db_password";
|
|
|
|
@Override
|
|
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
|
throws ServletException, IOException {
|
|
response.setContentType("application/json");
|
|
response.setCharacterEncoding("UTF-8");
|
|
|
|
List<Screen> screens = new ArrayList<>();
|
|
|
|
try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD)) {
|
|
String sql = "SELECT SCREEN_ID, SCREEN_NAME FROM SCREENS";
|
|
PreparedStatement pstmt = conn.prepareStatement(sql);
|
|
ResultSet rs = pstmt.executeQuery();
|
|
|
|
while (rs.next()) {
|
|
String id = rs.getString("SCREEN_ID");
|
|
String name = rs.getString("SCREEN_NAME");
|
|
screens.add(new Screen(id, name));
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
// Convert the list of screens to JSON
|
|
Gson gson = new Gson();
|
|
String json = gson.toJson(screens);
|
|
|
|
// Write the JSON response
|
|
PrintWriter out = response.getWriter();
|
|
out.print(json);
|
|
out.flush();
|
|
}
|
|
} |