Skip to content

Bugs #138

Merged
merged 2 commits into from
Apr 19, 2017
Merged

Bugs #138

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion WebContent/adminLogin.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ int ssoNum;
String pass;
Cookie adminCookie;
ssoNum = Integer.parseInt(request.getParameter("ssoNum2"));
ssoNum = Integer.parseInt(request.getParameter("username"));
pass = request.getParameter("pass");
String generatedPass = null;
Expand Down
3 changes: 0 additions & 3 deletions WebContent/html/webpages/administration/admin.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,6 @@ div.approveConfirm {
<h3>Select from any option in the sidebar to exert your administrative power!</h3>
<div id="admin"></div>
</div>


<script src="../../javascript/admin.js"></script>
<script src="../../javascript/nhpup_1.1.js"></script>
</body>
</html>
46 changes: 3 additions & 43 deletions WebContent/html/webpages/administration/adminApprove.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -142,26 +142,13 @@
</div>

<%
TicketQueries query = new TicketQueries();
Ticket[] tickets = query.getTickets();
User[] users = EmployeeQueries.getAllUsers();
Location[] locations = LocationQueries.getAllLocations();
Device[] devices = DeviceQueries.getAllDevices();
Ticket[] tickets = TicketQueries.getTickets();
String ticketStr = Ticket.arrayToString(tickets);
String userStr = User.arrayToString(users);
String locationStr = Location.arrayToString(locations).replace("'","\\'");
String deviceStr = Device.arrayToString(devices);
%>

<script>
window.json = '<%=ticketStr%>';
var tickets = JSON.parse(window.json);
window.json = '<%=userStr%>';
var users = JSON.parse(window.json);
window.json = '<%=locationStr%>';
var locations = JSON.parse(window.json);
window.json = '<%=deviceStr%>';
var devices = JSON.parse(window.json);
populateTickets();
Expand All @@ -179,42 +166,15 @@
function populateTickets(){
var html = "";
for(var i = 0; i < tickets.length; i++){
var requestor = getRequestor(tickets[i].requestor);
var location = getLocation(tickets[i].location);
var device = getDevice(tickets[i].deviceID);
//NEED TO ADD IN RETURN DATE AT END BUT THAT WOULD BREAK THINGS AT THE MOMENT
html += "<tr class = 'entry' id = '" + i + "'><td>" + tickets[i].id + "</td><td>" + requestor + "</td><td>" + location + "</td><td>" + device + "</td><td>" + tickets[i].status + "</td><td>" + tickets[i].return + "</td></tr>";
html += "<tr class = 'entry' id = '" + i + "'><td>" + tickets[i].id + "</td><td>" + tickets[i].username + "</td><td>" + tickets[i].locationname + "</td><td>" + tickets[i].devicename + "</td><td>" + tickets[i].status + "</td><td>" + tickets[i].return + "</td></tr>";
}
document.getElementById("tablebodymain").innerHTML = html;
}
function getRequestor(id){
for(var i = 0; i < users.length; i++){
if(id == users[i].id)
return users[i].name;
}
}
function getLocation(id){
for(var i = 0; i < locations.length; i++){
if(id == locations[i].id)
return locations[i].name;
}
}
function getDevice(id){
for(var i = 0; i < devices.length; i++){
if(id == devices[i].id)
return devices[i].name;
}
}
function ticketAction(){
var id = this.id;
var requestor = getRequestor(tickets[id].requestor);
var location = getLocation(tickets[id].location);
var device = getDevice(tickets[id].deviceID);
var html = "<tr><td>" + tickets[id].id + "</td><td>" + requestor + "</td><td>" + location + "</td><td>" + device + "</td><td>" + tickets[id].status + "</td><td>" + tickets[id].return + "</td></tr>";
var html = "<tr><td>" + tickets[id].id + "</td><td>" + tickets[id].username + "</td><td>" + tickets[id].locationname + "</td><td>" + tickets[id].devicename + "</td><td>" + tickets[id].status + "</td><td>" + tickets[id].return + "</td></tr>";
document.getElementById("tablemodal").innerHTML = html;
$("#ticketIDfield").val(tickets[id].id);
$("#deviceIDfield").val(tickets[id].deviceID);
Expand Down
10 changes: 8 additions & 2 deletions WebContent/html/webpages/components/adminnavbar.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,14 @@
return;
}
else{
self = EmployeeQueries.getEmployeeByID(Integer.parseInt(navsso));
navname = self.getName();
if(admin == 0){//non admin trying to trespass
response.sendRedirect("../index.jsp");
return;
}
else{
self = EmployeeQueries.getEmployeeByID(Integer.parseInt(navsso));
navname = self.getName();
}
}
%>
</div>
Expand Down
1 change: 0 additions & 1 deletion WebContent/html/webpages/listingPage.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
display: inline-block;
width: 200px;
text-align: center;
vertical-align: center;
}
div.availableAnchor{
Expand Down
5 changes: 3 additions & 2 deletions WebContent/html/webpages/redirect/ticketAdminRedirect.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ int ticketid = Integer.parseInt(ticketidstr);
int deviceid = Integer.parseInt(deviceidstr);
int locationid = Integer.parseInt(locationidstr);
//add form was submitted
//approve form was submitted
if(request.getParameter("approve") != null){
//TODO include in time of action so that the status fields can be updated in the ticket
TicketQueries.acceptTicket(ticketid,deviceid,locationid,Integer.parseInt(navsso));
User client = EmployeeQueries.getEmployeeByID(TicketQueries.getUserID(ticketid));
boolean notificationPreferences = true; //TODO get real preference
Expand All @@ -45,7 +46,7 @@ if(request.getParameter("approve") != null){
q.run();
}
}
//modify form was submitted
//reject form was submitted
if(request.getParameter("reject") != null){
TicketQueries.rejectTicket(ticketid);
}
Expand Down
4 changes: 2 additions & 2 deletions WebContent/index.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -95,14 +95,14 @@
<div class = "menuOption">
<h2>User Login</h2>
<form action="userLogin.jsp" method="post">
<input class = "form-control" type="text" pattern="[0-9]{9}" name="ssoNum" placeholder="9 digit SSO Number" /><br>
<input class = "form-control" type="text" pattern="[0-9]{9}" name="username" placeholder="9 digit SSO Number" /><br>
<button type = "submit" value = "Add" class="btn btn-primary">Login</button>
</form>
</div>
<div class = "menuOption">
<h2>Admin Login</h2>
<form action="adminLogin.jsp" method="post">
<input class = "form-control" type="text" pattern="[0-9]{9}" name="ssoNum2" placeholder="9 digit SSO Number" />
<input class = "form-control" type="text" pattern="[0-9]{9}" name="username" placeholder="9 digit SSO Number" />
<input class = "form-control" type="password" name="pass" placeholder="Password" /><br>
<button type = "submit" value = "Add" class="btn btn-primary">Login</button>
</form>
Expand Down
2 changes: 1 addition & 1 deletion WebContent/userLogin.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
int ssoNum;
Cookie userCookie;
ssoNum = Integer.parseInt(request.getParameter("ssoNum"));
ssoNum = Integer.parseInt(request.getParameter("username"));
Class.forName("com.mysql.jdbc.Driver");
String database = "jdbc:mysql://us-cdbr-iron-east-04.cleardb.net/ad_15a989204c2ff8a?user=b372dfe7409692&password=74f6e317";
Expand Down
51 changes: 48 additions & 3 deletions src/database/DeviceQueries.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,22 @@ public static Device[] getUserDevices(String userID) throws SQLException, ClassN

//iterate result set
while(resultSet.next()){
devices[counter] = new Device(resultSet.getString("Device_Name"),resultSet.getInt("Device_ID"),resultSet.getString("Device_Description"),resultSet.getString("Hardware"), resultSet.getString("Model"), resultSet.getString("Manufacturer"), resultSet.getString("Status"), resultSet.getString("MAC_Address"), resultSet.getString("Serial_Num"), resultSet.getString("NFC_ID"), resultSet.getString("Locker_Position"), resultSet.getString("Operating_System"), resultSet.getString("Admin_Comments"));
devices[counter] = new Device(
resultSet.getString("Device_Name"),
resultSet.getInt("Device_ID"),
resultSet.getString("Device_Description"),
resultSet.getString("Hardware"),
resultSet.getString("Model"),
resultSet.getString("Manufacturer"),
resultSet.getString("Status"),
resultSet.getString("MAC_Address"),
resultSet.getString("Serial_Num"),
resultSet.getString("NFC_ID"),
resultSet.getString("Locker_Position"),
resultSet.getString("Operating_System"),
resultSet.getString("Admin_Comments"),
resultSet.getString("Borrow_Date")
);
counter++;
}
stmt.close();
Expand All @@ -53,7 +68,22 @@ public static Device[] getAllDevices() throws SQLException, ClassNotFoundExcepti

//iterate result set
while(resultSet.next()){
devices[counter] = new Device(resultSet.getString("Device_Name"),resultSet.getInt("Device_ID"),resultSet.getString("Device_Description"),resultSet.getString("Hardware"), resultSet.getString("Model"), resultSet.getString("Manufacturer"), resultSet.getString("Status"), resultSet.getString("MAC_Address"), resultSet.getString("Serial_Num"), resultSet.getString("NFC_ID"), resultSet.getString("Locker_Position"), resultSet.getString("Operating_System"), resultSet.getString("Admin_Comments"));
devices[counter] = new Device(
resultSet.getString("Device_Name"),
resultSet.getInt("Device_ID"),
resultSet.getString("Device_Description"),
resultSet.getString("Hardware"),
resultSet.getString("Model"),
resultSet.getString("Manufacturer"),
resultSet.getString("Status"),
resultSet.getString("MAC_Address"),
resultSet.getString("Serial_Num"),
resultSet.getString("NFC_ID"),
resultSet.getString("Locker_Position"),
resultSet.getString("Operating_System"),
resultSet.getString("Admin_Comments"),
resultSet.getString("Borrow_Date")
);
counter++;
}
stmt.close();
Expand All @@ -79,7 +109,22 @@ public static Device[] getAvailableDevices() throws SQLException, ClassNotFoundE

//iterate result set
while(resultSet.next()){
devices[counter] = new Device(resultSet.getString("Device_Name"),resultSet.getInt("Device_ID"),resultSet.getString("Device_Description"),resultSet.getString("Hardware"), resultSet.getString("Model"), resultSet.getString("Manufacturer"), resultSet.getString("Status"), resultSet.getString("MAC_Address"), resultSet.getString("Serial_Num"), resultSet.getString("NFC_ID"), resultSet.getString("Locker_Position"), resultSet.getString("Operating_System"), resultSet.getString("Admin_Comments"));
devices[counter] = new Device(
resultSet.getString("Device_Name"),
resultSet.getInt("Device_ID"),
resultSet.getString("Device_Description"),
resultSet.getString("Hardware"),
resultSet.getString("Model"),
resultSet.getString("Manufacturer"),
resultSet.getString("Status"),
resultSet.getString("MAC_Address"),
resultSet.getString("Serial_Num"),
resultSet.getString("NFC_ID"),
resultSet.getString("Locker_Position"),
resultSet.getString("Operating_System"),
resultSet.getString("Admin_Comments"),
resultSet.getString("Borrow_Date")
);
counter++;
}
stmt.close();
Expand Down
41 changes: 25 additions & 16 deletions src/database/TicketQueries.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,27 +38,32 @@ public static int generateTicket(int requester, int location, int device, String
}

//get all tickets
public Ticket[] getTickets() throws SQLException, ClassNotFoundException{
String status = "Requested";
public static Ticket[] getTickets() throws SQLException, ClassNotFoundException{
int i = 0;
System.getenv("VCAP_SERVICES");
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(database, user, password);
Statement stmt = connection.createStatement();
ResultSet resultSet = stmt.executeQuery("Select COUNT(Ticket_ID) FROM ticket WHERE Status = '" +status + "'");
resultSet.next();
Ticket[] tickets = new Ticket[resultSet.getInt("COUNT(Ticket_ID)")];
resultSet = stmt.executeQuery("Select * FROM ticket WHERE Status = '" +status + "'");
ResultSet resultSet = stmt.executeQuery("SELECT ticket.*, employee.Name AS 'username', devices.Device_Name, location.Name AS 'locationname' FROM ticket INNER JOIN employee ON ticket.Requestor = employee.Employee_ID INNER JOIN devices ON ticket.Device_ID = devices.Device_ID INNER JOIN location ON ticket.Location = location.Location_ID WHERE ticket.Status = 'Requested'");

resultSet.last();
int rows = resultSet.getRow();
resultSet.beforeFirst();
Ticket[] tickets = new Ticket[rows];

while(resultSet.next()){
tickets[i] = new Ticket(
resultSet.getInt("Ticket_ID"),
resultSet.getInt("Requestor"),
resultSet.getLong("Request_Date"),
resultSet.getInt("Location"),
resultSet.getInt("Device_ID"),
status,
"Requested",
resultSet.getLong("Status_Date_Fields"),
resultSet.getString("Return_Date")
resultSet.getString("Return_Date"),
resultSet.getString("username"),
resultSet.getString("Device_Name"),
resultSet.getString("locationname")
);
i++;
}
Expand All @@ -73,8 +78,7 @@ public static void acceptTicket(int ticketid, int deviceid, int locationid, int
Connection connect = DriverManager.getConnection(database, user, password);
Statement stmt = connect.createStatement();
long milliseconds = new java.util.Date().getTime();
stmt.executeUpdate("UPDATE ticket SET Status = \"Approved\" WHERE Ticket_ID = " + ticketid);
stmt.executeUpdate("UPDATE devices SET Ticket_ID = " + ticketid + ", Status = \"Shipped\", Renter = " + sso + ", Location = " + locationid + " Status_Date_Fields = "+milliseconds+" WHERE Device_ID = " + deviceid);
stmt.executeUpdate("UPDATE ticket, devices SET ticket.Status = \"Approved\", devices.Ticket_ID = " + ticketid + ", devices.Status = \"Shipped\", devices.Renter = " + sso + ", devices.Location = " + locationid + " WHERE ticket.Ticket_ID = " + ticketid + " AND devices.Device_ID = " + deviceid);
stmt.close();
connect.close();
}
Expand All @@ -95,11 +99,12 @@ public static Ticket[] getApprovedTickets(int userID, long milliseconds) throws
Class.forName("com.mysql.jdbc.Driver");
Connection connect = DriverManager.getConnection(database, user, password);
Statement stmt = connect.createStatement();
String query = "SELECT COUNT(Ticket_ID) FROM ticket WHERE Requestor = "+userID+" AND Status = 'Approved' AND Status_Date_Fields > "+milliseconds+";";
String query= "SELECT ticket.*, employee.Name AS 'username', devices.Device_Name, location.Name AS 'locationname' FROM ticket INNER JOIN employee ON ticket.Requestor = employee.Employee_ID INNER JOIN devices ON ticket.Device_ID = devices.Device_ID INNER JOIN location ON ticket.Location = location.Location_ID WHERE ticket.Status = 'Approved' AND Requestor = " + userID + " AND Status_Date_Fields > " + milliseconds;
ResultSet results = stmt.executeQuery(query);
results.next();
Ticket[] tickets = new Ticket[results.getInt("COUNT(Ticket_ID)")];
query= "SELECT * FROM ticket WHERE Requestor = "+userID+" AND Status = 'Approved' AND Status_Date_Fields > "+milliseconds+";";
results.last();
int rows = results.getRow();
results.beforeFirst();
Ticket[] tickets = new Ticket[rows];
int i=0;
while(results.next())
{
Expand All @@ -110,10 +115,14 @@ public static Ticket[] getApprovedTickets(int userID, long milliseconds) throws
results.getInt("Device_ID"),
results.getString("Status"),
results.getLong("Status_Date_Fields"),
results.getString("ReturnDate"));
results.getString("ReturnDate"),
results.getString("username"),
results.getString("Device_Name"),
results.getString("locationname")
);
i++;
}
return null;
return tickets;
}
public static int getUserID(int ticketID) throws ClassNotFoundException, SQLException{
System.getenv("VCAP_SERVICES");
Expand Down
5 changes: 4 additions & 1 deletion src/entities/Device.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ public class Device {
private String locker_position;
private String OS;
private String Admin_Comments;
private String Checkout;

public Device(String name, int id, String desc, String hardware, String model, String manufacturer, String available, String mac, String serial, String nfc, String locker, String os, String comments) {
public Device(String name, int id, String desc, String hardware, String model, String manufacturer, String available, String mac, String serial, String nfc, String locker, String os, String comments, String checkout) {
Device_Name = name;
Device_ID = id;
Device_Description = desc;
Expand All @@ -34,6 +35,7 @@ public Device(String name, int id, String desc, String hardware, String model, S
locker_position = locker;
OS = os;
Admin_Comments = comments;
Checkout = checkout;
}
/**
* Formatting the device to fit a JSON object.
Expand All @@ -53,6 +55,7 @@ public String toString(){
sb.append("\"mac\": \"").append(MAC).append("\"").append(comma);
sb.append("\"os\": \"").append(OS).append("\"").append(comma);
sb.append("\"serial\": \"").append(Serial).append("\"").append(comma);
sb.append("\"checkout\": \"").append(Checkout).append("\"").append(comma);
sb.append("\"nfc\": \"").append(NFC).append("\"");
sb.append("}");
return sb.toString();
Expand Down
11 changes: 10 additions & 1 deletion src/entities/Ticket.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@ public class Ticket {
private String _status;
private long _statusDateFields;
private String _returnDate;
private String username;
private String locationname;
private String devicename;

public Ticket(int id, int requestor, long requestDate, int location, int deviceId, String status, long statusDateFields, String returnDate){
public Ticket(int id, int requestor, long requestDate, int location, int deviceId, String status, long statusDateFields, String returnDate, String username, String locationname, String devicename){
this._id = id;
this._requestor = requestor;
this._requestDate = requestDate;
Expand All @@ -22,6 +25,9 @@ public Ticket(int id, int requestor, long requestDate, int location, int deviceI
this._status = status;
this._statusDateFields=statusDateFields;
this._returnDate = returnDate;
this.username = username;
this.locationname = locationname;
this.devicename = devicename;
}

public String toString(){
Expand All @@ -32,6 +38,9 @@ public String toString(){
sb.append("\"location\": ").append(_location).append(comma);
sb.append("\"deviceID\": ").append(_deviceId).append(comma);
sb.append("\"status\": \"").append(_status).append("\"").append(comma);
sb.append("\"username\": \"").append(username).append("\"").append(comma);
sb.append("\"locationname\": \"").append(locationname).append("\"").append(comma);
sb.append("\"devicename\": \"").append(devicename).append("\"").append(comma);
sb.append("\"return\": \"").append(_returnDate).append("\"");
sb.append("}");
return sb.toString();
Expand Down