Skip to content

Commit

Permalink
Merge pull request #138 from arc12012/bugs
Browse files Browse the repository at this point in the history
Bugs
  • Loading branch information
clj13001 committed Apr 19, 2017
2 parents bb2dd4a + 28ea1d8 commit c57bb5b
Show file tree
Hide file tree
Showing 12 changed files with 105 additions and 76 deletions.
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

0 comments on commit c57bb5b

Please sign in to comment.