Update Welcome.jsp
This commit is contained in:
parent
41f0a65092
commit
97ffd735d7
961
Welcome.jsp
961
Welcome.jsp
@ -1,150 +1,849 @@
|
||||
<!-- filepath: /webapp/assignCapabilities.jsp -->
|
||||
<!DOCTYPE html>
|
||||
<%--
|
||||
Document : welcome
|
||||
Created on : Apr 11, 2024, 3:49:41 PM
|
||||
Author : 2552586
|
||||
--%>
|
||||
|
||||
|
||||
<%@page contentType="text/html" pageEncoding="UTF-8"%>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<%@ page session="true" %>
|
||||
<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>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8" />
|
||||
<!-- <title>IPKS | Home</title>-->
|
||||
<title>IFSS | Home</title>
|
||||
<link rel="shortcut icon" href="img/favicon.ico?pacs=<%=((new java.util.Date()).getTime())%>" type="image/x-icon" />
|
||||
<link rel="shortcut icon" href="/IFSS/img/favicon.ico?pacs=<%=((new java.util.Date()).getTime())%>" type="image/x-icon" />
|
||||
<script type="text/javascript">
|
||||
function noBack()
|
||||
{
|
||||
window.history.forward();
|
||||
}
|
||||
</script>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" type="text/css" href="/IFSS/css/styles.css?pacs=<%=((new java.util.Date()).getTime())%>"/>
|
||||
<link rel="stylesheet" type="text/css" href="/IFSS/css/ButtonAndText.css?pacs=<%=((new java.util.Date()).getTime())%>" />
|
||||
<link rel="stylesheet" type="text/css" href="/IFSS/css/info.css?pacs=<%=((new java.util.Date()).getTime())%>" />
|
||||
<link rel="stylesheet" type="text/css" href="/IFSS/css/wrapper.css?pacs=<%=((new java.util.Date()).getTime())%>"/>
|
||||
<link rel="stylesheet" type="text/css" href="/IFSS/bootstrap/css/bootstrap.min.css?pacs=<%=((new java.util.Date()).getTime())%>"/>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap" rel="stylesheet">
|
||||
<script type="text/javascript" src="${pageContext.request.contextPath}/jquery-ui-1.10.4.custom/development-bundle/jquery-1.10.2.js?pacs=<%=((new java.util.Date()).getTime())%>"></script>
|
||||
<script type="text/javascript" src="/IFSS/chromejs/chrome.js?pacs=<%=((new java.util.Date()).getTime())%>"></script>
|
||||
<script type="text/javascript" src="/IFSS/js/iFrame_killer.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<script src="/IFSS/js/idleDetector.js"></script> <!-- Include external JS -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/sockjs-client/1.5.1/sockjs.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/stomp.js/2.3.3/stomp.min.js"></script>
|
||||
|
||||
<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>
|
||||
<style>
|
||||
body {
|
||||
height: 100vh;
|
||||
}
|
||||
/* The snackbar - position it at the bottom and in the middle of the screen */
|
||||
#snackbar {
|
||||
visibility: hidden; /* Hidden by default. Visible on click */
|
||||
min-width: 200px; /* Set a default minimum width */
|
||||
margin-left: -125px; /* Divide value of min-width by 2 */
|
||||
background-color: #333; /* Black background color */
|
||||
color: #fff; /* White text color */
|
||||
text-align: center; /* Centered text */
|
||||
border-radius: 2px; /* Rounded borders */
|
||||
padding: 16px; /* Padding */
|
||||
position: fixed; /* Sit on top of the screen */
|
||||
z-index: 1; /* Add a z-index if needed */
|
||||
left: 89%; /* Center the snackbar */
|
||||
bottom: 100px; /* 30px from the bottom */
|
||||
}
|
||||
|
||||
<script>
|
||||
async function fetchAndDisplayScreens() {
|
||||
// Fetch screen names from the database
|
||||
const response = await fetch('/getScreens');
|
||||
const screens = await response.json();
|
||||
#snackbar2 {
|
||||
visibility: hidden; /* Hidden by default. Visible on click */
|
||||
min-width: 200px; /* Set a default minimum width */
|
||||
margin-left: -125px; /* Divide value of min-width by 2 */
|
||||
background-color: #333; /* Black background color */
|
||||
color: #fff; /* White text color */
|
||||
text-align: center; /* Centered text */
|
||||
border-radius: 2px; /* Rounded borders */
|
||||
padding: 16px; /* Padding */
|
||||
position: fixed; /* Sit on top of the screen */
|
||||
z-index: 1; /* Add a z-index if needed */
|
||||
left: 12%; /* Center the snackbar */
|
||||
bottom: 100px; /* 100px from the bottom */
|
||||
}
|
||||
#snackbar3 {
|
||||
visibility: hidden; /* Hidden by default. Visible on click */
|
||||
min-width: 200px; /* Set a default minimum width */
|
||||
margin-left: -125px; /* Divide value of min-width by 2 */
|
||||
background-color: #333; /* Black background color */
|
||||
color: #fff; /* White text color */
|
||||
text-align: center; /* Centered text */
|
||||
border-radius: 2px; /* Rounded borders */
|
||||
padding: 16px; /* Padding */
|
||||
position: fixed; /* Sit on top of the screen */
|
||||
z-index: 1; /* Add a z-index if needed */
|
||||
left: 12%; /* Center the snackbar */
|
||||
bottom: 100px; /* 100px from the bottom */
|
||||
}
|
||||
#notiButton {
|
||||
|
||||
// Display the screens as checkboxes directly on the page
|
||||
const screenContainer = document.createElement('div');
|
||||
screenContainer.id = 'screenContainer';
|
||||
min-width: 100px; /* Set a default minimum width */
|
||||
margin-left: -125px; /* Divide value of min-width by 2 */
|
||||
background-color: #333; /* Black background color */
|
||||
color: #fff; /* White text color */
|
||||
text-align: center; /* Centered text */
|
||||
border-radius: 2px; /* Rounded borders */
|
||||
padding: 16px; /* Padding */
|
||||
position: fixed; /* Sit on top of the screen */
|
||||
z-index: 1; /* Add a z-index if needed */
|
||||
left: 95%; /* Center the snackbar */
|
||||
bottom: 30px; /* 30px from the bottom */
|
||||
}
|
||||
|
||||
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);
|
||||
#dReport {
|
||||
|
||||
// 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);
|
||||
min-width: 100px; /* Set a default minimum width */
|
||||
margin-left: -125px; /* Divide value of min-width by 2 */
|
||||
background-color: #333; /* Black background color */
|
||||
color: #fff; /* White text color */
|
||||
text-align: center; /* Centered text */
|
||||
border-radius: 2px; /* Rounded borders */
|
||||
padding: 16px; /* Padding */
|
||||
position: fixed; /* Sit on top of the screen */
|
||||
z-index: 1; /* Add a z-index if needed */
|
||||
left: 12%; /* Center the snackbar */
|
||||
bottom: 35px; /* 30px from the bottom */
|
||||
}
|
||||
#dReport2 {
|
||||
|
||||
min-width: 100px; /* Set a default minimum width */
|
||||
margin-left: -125px; /* Divide value of min-width by 2 */
|
||||
background-color: #333; /* Black background color */
|
||||
color: #fff; /* White text color */
|
||||
text-align: center; /* Centered text */
|
||||
border-radius: 2px; /* Rounded borders */
|
||||
padding: 16px; /* Padding */
|
||||
position: fixed; /* Sit on top of the screen */
|
||||
z-index: 1; /* Add a z-index if needed */
|
||||
left: 28%; /* Center the snackbar */
|
||||
bottom: 35px; /* 30px from the bottom */
|
||||
}
|
||||
|
||||
/*commented on 19/3/24*/
|
||||
#footer {
|
||||
width:100%;
|
||||
height:75px;
|
||||
position:fixed;
|
||||
padding-top: 130px;
|
||||
left: 0;
|
||||
padding-bottom:0px;
|
||||
/* position: fixed;
|
||||
padding: 10px 10px 0px 10px;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;*/
|
||||
/*height: 40px; Height of the footer*/
|
||||
/* background: #8dce09; 57EE0B; #B5FF33*/
|
||||
}
|
||||
/*.footerSection_New {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
min-width: 1024px !important;
|
||||
min-height: 10px;
|
||||
z-index: 111;
|
||||
background: #2b2b2b 0 0 no-repeat padding-box;
|
||||
}*/
|
||||
/*added on 19/3/24*/
|
||||
#page-footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
background-color: #f2f2df;
|
||||
font-size: 1em;
|
||||
font-weight: 500;
|
||||
color: #5C8DC5;
|
||||
font-family: "Rubik", sans-serif;
|
||||
/* position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;*/
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#page-footer div {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.privacyPol {
|
||||
right: 0;
|
||||
text-align: right;
|
||||
padding: 5px;
|
||||
border-radius: 5px;
|
||||
;
|
||||
position: fixed;
|
||||
bottom: 1;
|
||||
color: #0000e6;
|
||||
min-width: 10px !important;
|
||||
min-height: 7px;
|
||||
z-index: 111;
|
||||
/* background: #2b2b2b 0 0 no-repeat padding-box;*/
|
||||
}
|
||||
/* Show the snackbar when clicking on a button (class added with JavaScript) */
|
||||
#snackbar.show {
|
||||
visibility: visible; /* Show the snackbar */
|
||||
/* Add animation: Take 0.5 seconds to fade in and out the snackbar.
|
||||
However, delay the fade out process for 2.5 seconds */
|
||||
-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
|
||||
animation: fadein 0.5s, fadeout 0.5s 2.5s;
|
||||
}
|
||||
|
||||
#snackbar2.show {
|
||||
visibility: visible; /* Show the snackbar */
|
||||
/* Add animation: Take 0.5 seconds to fade in and out the snackbar.
|
||||
However, delay the fade out process for 2.5 seconds */
|
||||
-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
|
||||
animation: fadein 0.5s, fadeout 0.5s 2.5s;
|
||||
}
|
||||
#snackbar3.show {
|
||||
visibility: visible; /* Show the snackbar */
|
||||
/* Add animation: Take 0.5 seconds to fade in and out the snackbar.
|
||||
However, delay the fade out process for 2.5 seconds */
|
||||
-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
|
||||
animation: fadein 0.5s, fadeout 0.5s 2.5s;
|
||||
}
|
||||
/*//added on 16/4/24*/
|
||||
fieldset {
|
||||
display: block;
|
||||
margin-inline-start: 2px;
|
||||
margin-inline-end: 2px;
|
||||
padding-block-start: 0.35em;
|
||||
padding-inline-start: 0.75em;
|
||||
padding-inline-end: 0.75em;
|
||||
padding-block-end: 0.625em;
|
||||
min-inline-size: min-content;
|
||||
border-style: groove;
|
||||
border-image: initial;
|
||||
flex: 1;
|
||||
|
||||
/* legend {
|
||||
display: block;
|
||||
padding-inline-start: 2px;
|
||||
padding-inline-end: 2px;
|
||||
unicode-bidi: isolate;
|
||||
border-width: initial;
|
||||
border-style: none;
|
||||
border-color: initial;
|
||||
border-image: initial;
|
||||
|
||||
element.style {
|
||||
padding: 8px;
|
||||
border-radius: 20px;
|
||||
background-color: #006600;
|
||||
color: white;*/
|
||||
}
|
||||
|
||||
|
||||
/*#menu a {
|
||||
float: left;
|
||||
padding: 12px 30px;
|
||||
color: rgb(0,140,69);
|
||||
text-transform: uppercase;
|
||||
font: bold 12px Arial, Helvetica;
|
||||
text-decoration: none; }*/
|
||||
|
||||
|
||||
|
||||
/* Animations to fade the snackbar in and out */
|
||||
@-webkit-keyframes fadein {
|
||||
from {
|
||||
bottom: 60;
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
bottom: 100px;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadein {
|
||||
from {
|
||||
bottom: 60;
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
bottom: 100px;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes fadeout {
|
||||
from {
|
||||
bottom: 100px;
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
bottom: 60;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeout {
|
||||
from {
|
||||
bottom: 100px;
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
bottom: 60;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
/* added style on 28/6/24*/
|
||||
.main-container {
|
||||
display: flex;
|
||||
/*height: 80vh;*/
|
||||
width: inherit;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
.left-section {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
flex: 2;
|
||||
/* background-color: #B1E1B3;*/
|
||||
color: #008C46;
|
||||
/* Light gray background */
|
||||
|
||||
/* padding: 10px;*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
.right-section {
|
||||
flex: 5;
|
||||
/*background-color: #B1E1B3;*/
|
||||
/* Light gray background */
|
||||
/*text-align: center;*/
|
||||
/*color: #008C46*/;
|
||||
color: #5C8DC5;
|
||||
font-size: 15px;
|
||||
/*padding-top: 45px;*/
|
||||
}
|
||||
.left-section-below {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
/* background-color: #B1E1B3;*/
|
||||
color: #008C46;
|
||||
gap: 50px;
|
||||
/* Light gray background */
|
||||
|
||||
/* padding: 10px;*/
|
||||
|
||||
|
||||
}
|
||||
#holiday-legend {
|
||||
background-color: #AD9E90;
|
||||
/*color: rgb(177,224,178);*/
|
||||
color: white;
|
||||
border-color: #80AE82 !important;
|
||||
border: 2px solid rgb(177,224,178);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Added here for bradcast message style*/
|
||||
|
||||
.blur {
|
||||
filter : blur(10px);
|
||||
}
|
||||
|
||||
.popup {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left:50%;
|
||||
background-color: white;
|
||||
transform: translate(-50%, -50%);
|
||||
padding: 20px;
|
||||
border-radius: 10px;
|
||||
z-index: 1000;
|
||||
box-shadow: 0px 0px 10px rgba(0,0,0,0.5) ;
|
||||
width: 80%;
|
||||
max-width: 500px;
|
||||
text-align: center;
|
||||
}
|
||||
.popup h2{
|
||||
margin-top: 0;
|
||||
color: #333;
|
||||
}
|
||||
.popup p {
|
||||
color: #666;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.popup button{
|
||||
background-color: #007bff;
|
||||
color: #fff;
|
||||
border: none;
|
||||
padding: 10px 20px;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
|
||||
/*Added for dashboard*/
|
||||
|
||||
.dashboard-container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
/* flex-wrap: wrap;*/
|
||||
gap: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
.chart-container {
|
||||
width: 250px;
|
||||
height: 290px;
|
||||
background: beige;
|
||||
padding: 10px;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
/* Added for Session timeout message */
|
||||
|
||||
/* Modal Styles */
|
||||
.modal {
|
||||
display: none; /* Hidden by default */
|
||||
position: fixed;
|
||||
z-index: 1000;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background-color: white;
|
||||
margin: 15% auto;
|
||||
padding: 20px;
|
||||
border: 1px solid #888;
|
||||
width: 300px;
|
||||
text-align: center;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.modal button {
|
||||
margin: 10px;
|
||||
padding: 10px 15px;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.modal .continue-btn {
|
||||
background-color: green;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.modal .logout-btn {
|
||||
background-color: red;
|
||||
color: white;
|
||||
}
|
||||
|
||||
</style>
|
||||
<script type="text/javascript" language="javascript">
|
||||
$(function () {
|
||||
$('marquee').mouseover(function () {
|
||||
$(this).attr('scrollamount', 0);
|
||||
}).mouseout(function () {
|
||||
$(this).attr('scrollamount', 5);
|
||||
});
|
||||
});
|
||||
|
||||
// Display selected screens in the div
|
||||
selectedScreensDiv.innerHTML = selectedScreens.map(screen => `<p>${screen}</p>`).join('');
|
||||
};
|
||||
$(document).ready(function () {
|
||||
$(document).on('click', '.est_btn', function (event) {
|
||||
if ($('.est_btn').index(this) == 0) {
|
||||
document.location.href = "/IFSS/KCCSevlet";
|
||||
} else if ($('.est_btn').index(this) == 1) {
|
||||
document.location.href = "/IFSS/TradingSevlet";
|
||||
} else if ($('.est_btn').index(this) == 2) {
|
||||
document.location.href = "/IFSS/AssetServlet";
|
||||
<%--}else if($('.est_btn').index(this) == 3){
|
||||
document.location.href="/IFSS/PDSServlet";--%>
|
||||
} else if ($('.est_btn').index(this) == 4) {
|
||||
document.location.href = "/IFSS/SHGServlet";
|
||||
<%-- }else if($('.est_btn').index(this) == 5){
|
||||
document.location.href="/IFSS/GPSServlet";--%>
|
||||
} else if ($('.est_btn').index(this) == 6) {
|
||||
document.location.href = "/IFSS/MISDashboardSevlet";
|
||||
} else if ($('.est_btn').index(this) == 7) {
|
||||
document.location.href = "/IFSS/DepositServlet";
|
||||
} else if ($('.est_btn').index(this) == 8) {
|
||||
document.location.href = "/IFSS/LoanServlet";
|
||||
} else if ($('.est_btn').index(this) == 9) {
|
||||
document.location.href = "/IFSS/ShareServlet";
|
||||
<%--}else if($('.est_btn').index(this) == 10){
|
||||
document.location.href="/IFSS/SODEODServlet";--%>
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// to restrict going back
|
||||
history.pushState(null, null, location.href);
|
||||
window.addEventListener('popstate', function (event) {
|
||||
history.pushState(null, null, location.href);
|
||||
});
|
||||
|
||||
$(function () {
|
||||
if ($.browser.msie && $.browser.version.substr(0, 1) < 7)
|
||||
{
|
||||
$('li').has('ul').mouseover(function () {
|
||||
$(this).children('ul').css('visibility', 'visible');
|
||||
}).mouseout(function () {
|
||||
$(this).children('ul').css('visibility', 'hidden');
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
var repeater;
|
||||
|
||||
|
||||
function downloadReport()
|
||||
{
|
||||
var formDownloadReport = document.getElementById("reportForm");
|
||||
formDownloadReport.reportPath.value = "/Reports/investment_mat_report.jasper";
|
||||
formDownloadReport.reportName.value = "investment_mat_report";
|
||||
formDownloadReport.DOWNLOAD.value = "P";
|
||||
formDownloadReport.action = '/IFSS/jasperReportServlet';
|
||||
formDownloadReport.submit();
|
||||
}
|
||||
function downloadReport2()
|
||||
{
|
||||
var formDownloadReport = document.getElementById("reportForm3");
|
||||
formDownloadReport.reportPath.value = "/Reports/nsckvp_exp_report.jasper";
|
||||
formDownloadReport.reportName.value = "NSC_KVP_Exp_Report";
|
||||
formDownloadReport.DOWNLOAD.value = "P";
|
||||
formDownloadReport.action = '/IFSS/jasperReportServlet';
|
||||
formDownloadReport.submit();
|
||||
}
|
||||
|
||||
// Call the function to fetch and display screens
|
||||
fetchAndDisplayScreens();
|
||||
</script>
|
||||
|
||||
<!-- Added by Paramita for broadcast Message -->
|
||||
|
||||
<script>
|
||||
function closePopup() {
|
||||
document.getElementById("popup").style.display = "none";
|
||||
document.getElementById("overlay").style.display = "none";
|
||||
document.getElementById("mainContent").classList.remove('blur');
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
</head>
|
||||
<body onload="noBack()">
|
||||
<%
|
||||
String ModuleName = new String();
|
||||
|
||||
ModuleName = (String) session.getAttribute("moduleName");
|
||||
String role = (String) session.getAttribute("userRole");
|
||||
String pacsId = (String) session.getAttribute("pacsId");
|
||||
String holidayList = (String) session.getAttribute("holidayList");
|
||||
String kccBalanceTransfer = (String) session.getAttribute("kccBalanceTransfer");
|
||||
String broadcastMessage = (String)session.getAttribute("returnMessage");
|
||||
|
||||
// added by chhanda on 29/8/24
|
||||
String user = (String) session.getAttribute("user");
|
||||
String pacsName = (String) session.getAttribute("pacsName");
|
||||
String UserName = (String) session.getAttribute("UserName");
|
||||
String Mobile = (String) session.getAttribute("Mobile");
|
||||
|
||||
|
||||
%>
|
||||
<!-- Added for Dashboard -->
|
||||
<script>
|
||||
window.onload = function () {
|
||||
fetchUserData();
|
||||
};
|
||||
|
||||
function fetchUserData() {
|
||||
$.ajax({
|
||||
url: "/IFSS/TicketServlet",
|
||||
method: "GET",
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
console.log(data);
|
||||
populateUserDropdown(data);
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
console.error("Error fetching data: " + error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function populateUserDropdown(users) {
|
||||
let dropdown = document.getElementById("userDropdown");
|
||||
users.forEach(user => {
|
||||
let option = document.createElement("option");
|
||||
option.value = user.user_id;
|
||||
option.textContent = "User_" + user.user_id;
|
||||
dropdown.appendChild(option);
|
||||
});
|
||||
|
||||
// Add event listener for dropdown change
|
||||
dropdown.addEventListener("change", function () {
|
||||
let selectedUserId = this.value;
|
||||
let selectedUser = users.find(user => user.user_id == selectedUserId);
|
||||
displayUserCharts(selectedUser);
|
||||
});
|
||||
}
|
||||
|
||||
function displayUserCharts(user) {
|
||||
let container = document.getElementById("userDashboard");
|
||||
container.innerHTML = ""; // Clear previous charts
|
||||
|
||||
// Create doughnut chart container
|
||||
let doughnutChartContainer = document.createElement("div");
|
||||
doughnutChartContainer.classList.add("chart-container");
|
||||
|
||||
let doughnutTitle = document.createElement("h4");
|
||||
doughnutTitle.textContent = user.user_id;
|
||||
|
||||
let doughnutCanvas = document.createElement("canvas");
|
||||
doughnutCanvas.id = "doughnut_chart_" + user.user_id;
|
||||
|
||||
// Append elements for doughnut chart
|
||||
doughnutChartContainer.appendChild(doughnutTitle);
|
||||
doughnutChartContainer.appendChild(doughnutCanvas);
|
||||
container.appendChild(doughnutChartContainer);
|
||||
|
||||
// Create bar chart container
|
||||
let barChartContainer = document.createElement("div");
|
||||
barChartContainer.classList.add("chart-container");
|
||||
|
||||
let barTitle = document.createElement("h4");
|
||||
barTitle.textContent = user.user_id;
|
||||
|
||||
let barCanvas = document.createElement("canvas");
|
||||
barCanvas.id = "bar_chart_" + user.user_id;
|
||||
|
||||
// Append elements for bar chart
|
||||
barChartContainer.appendChild(barTitle);
|
||||
barChartContainer.appendChild(barCanvas);
|
||||
container.appendChild(barChartContainer);
|
||||
|
||||
setTimeout(() => {
|
||||
// Doughnut chart
|
||||
let doughnutCtx = doughnutCanvas.getContext("2d");
|
||||
if (!doughnutCtx) {
|
||||
console.error(`Failed to get 2D context for canvas '${doughnutCanvas.id}'`);
|
||||
return;
|
||||
}
|
||||
|
||||
new Chart(doughnutCtx, {
|
||||
type: 'doughnut',
|
||||
data: {
|
||||
labels: ["unclaimed", "Overdue", "kyc", "SI"],
|
||||
datasets: [{
|
||||
data: [user.unclaimed, user.Loan_overdue, user.kyc_status, user.si_status],
|
||||
backgroundColor: ["#36A2EB", "#FF6384", "#4BC0C0", "#FFCE56"],
|
||||
hoverOffset: 8
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
cutout: '70%', // Inner empty circle
|
||||
plugins: {
|
||||
legend: {
|
||||
display: true,
|
||||
position: 'right'
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Bar chart
|
||||
let barCtx = barCanvas.getContext("2d");
|
||||
if (!barCtx) {
|
||||
console.error(`Failed to get 2D context for canvas '${barCanvas.id}'`);
|
||||
return;
|
||||
}
|
||||
|
||||
new Chart(barCtx, {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: ["unclaimed", "Overdue", "kyc", "SI"],
|
||||
datasets: [{
|
||||
label: 'User Data',
|
||||
data: [user.unclaimed, user.Loan_overdue, user.kyc_status, user.si_status],
|
||||
backgroundColor: ["#36A2EB", "#FF6384", "#4BC0C0", "#FFCE56"]
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
plugins: {
|
||||
legend: {
|
||||
display: true,
|
||||
position: 'top'
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
y: {
|
||||
beginAtZero: true
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
</script>
|
||||
|
||||
<div id ="mainContent" class="<%=broadcastMessage != null ? "blur" : ""%>">
|
||||
|
||||
<jsp:include page="/menuHeadDeposit" flush="true" />
|
||||
|
||||
<!-- Modal -->
|
||||
<div id="idleModal" class="modal">
|
||||
<div class="modal-content">
|
||||
<p>You have been idle for 5 minutes.</p>
|
||||
<p>Click "Continue" to stay logged in or "Logout" to exit.</p>
|
||||
<button class="continue-btn" onclick="continueSession()">Continue</button>
|
||||
<button class="logout-btn" onclick="logoutSession()">Logout</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<button type="submit">Assign</button>
|
||||
<div class="main-container">
|
||||
<div class="left-section">
|
||||
<fieldset style="background-color: rgb(237, 237, 237); border-color: rgb(100, 149, 237); border-radius: 20px; margin-left: 5px;margin-right: 01px;">
|
||||
|
||||
<legend id="holiday-legend" style=" margin-left: 40px; width:110px; padding: .5px 10px; border-radius: 18px; background-color: rgb(100, 149, 237); color: rgb(255,255,255)">Holidays</legend>
|
||||
<form name="holidayForm" method="post" action="">
|
||||
<ul>
|
||||
<li>
|
||||
<p><font color="white"><%=holidayList%></font>
|
||||
</p>
|
||||
</li>
|
||||
</ul></form></fieldset>
|
||||
<fieldset style="border-radius: 20px; border-color: rgb(100, 149, 237); border-width: 2px; margin-left: 5px;margin-right: 01px; margin-top: 20px;background-color: rgb(237, 237, 237)"/>
|
||||
<legend style="margin-left: 40px; width:110px; padding: .5px 15px; border-radius: 18px; background-color: rgb(100, 149, 237); color: rgb(255,255,255)">Notifications</legend>
|
||||
<form name="UserInfo" method="post" action="">
|
||||
<!-- <ul>
|
||||
<li>
|
||||
<p><font color="dimgrey">Teller Id : <font color="green"><%=user%></font></font>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><font color="dimgrey">Institute : <font color="green"><%=pacsName%></font></font>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><font color="dimgrey">User Type : <font color="green"><%=UserName%></font></font>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><font color="dimgrey">Phone No : <font color="green"><%=Mobile%></font></font>
|
||||
</p>
|
||||
</li>
|
||||
</ul>-->
|
||||
<ul>
|
||||
<li>
|
||||
<p><font color="dimgrey">Test Notification 1.</font>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>
|
||||
<p><font color="dimgrey">Test Notification 2.</font>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>
|
||||
<p><font color="dimgrey">Test Notification 3.</font>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- <ul>
|
||||
<li>
|
||||
<p><font color="dimgrey">For On-Call-Issue-Resolution reach us in : </font><font color="blue"> 033-4065-9546 / 4071-8135 </font><font color="dimgrey">( 9:00 AM to 9:00 PM only ).</font></p>
|
||||
</li>
|
||||
</ul>-->
|
||||
<ul>
|
||||
<li>
|
||||
<p><font color="dimgrey">Test Notification 4. </font></p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p><font color="dimgrey">Test Notification 5.</font></p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p><font color="dimgrey">Test Notification 6. </font></p>
|
||||
</li>
|
||||
</ul>
|
||||
</form>
|
||||
</fieldset>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="right-section">
|
||||
|
||||
<fieldset style="border-radius: 20px; border-color: rgb(100, 149, 237); border-width: 2px; margin-left: 10px;margin-right: 1px;background-color: rgb(237, 237, 237)">
|
||||
<legend style="margin-left: 40px; width:120px; padding: .5px 20px; border-radius: 18px; background-color: rgb(100, 149, 237); color: rgb(255,255,255)">Dashboard</legend>
|
||||
<form name="notificationForm" method="post" action="">
|
||||
<select id="userDropdown">
|
||||
<option value="">Select User</option>
|
||||
</select>
|
||||
<div class="dashboard-container" id="userDashboard">
|
||||
<!-- Charts will be added dynamically -->
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</fieldset>
|
||||
|
||||
<input type="hidden" name="roleId" id="roleId" value="<%=role%>"/>
|
||||
<input type="hidden" name="pacsId" id="pacsId" value="<%=pacsId%>"/>
|
||||
|
||||
<!--added div-->
|
||||
</div>
|
||||
</div>
|
||||
<!--added on 19/3/24-->
|
||||
<footer id="page-footer">
|
||||
<!-- <div>
|
||||
Copyright © 2025, Managed By Tata Consultancy Services. All rights reserved
|
||||
</div>-->
|
||||
<div>
|
||||
<a href="/IFSS/privacyPolicy.jsp">Privacy Policy</a>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
<!-- Added here for broadcast -->
|
||||
|
||||
<% if (broadcastMessage != null && !broadcastMessage.isEmpty()) {%>
|
||||
<div id ="popup" class ="popup">
|
||||
<p><%=broadcastMessage%></p>
|
||||
<button onclick="closePopup()">Close</button>
|
||||
</div>
|
||||
<div id ="overlay" class="overlay"></div>
|
||||
<%} else{%>
|
||||
<script>
|
||||
console.log("Broadcast Message is either empty or null");
|
||||
</script>
|
||||
<% }%>
|
||||
|
||||
</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();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user