diff --git a/WebContent/adminLogin.jsp b/WebContent/adminLogin.jsp index e33796f..df36b10 100644 --- a/WebContent/adminLogin.jsp +++ b/WebContent/adminLogin.jsp @@ -1,88 +1,221 @@ <%@ page import = "database.*" %> -<%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import = "java.sql.*" %> <%@ page import = "java.security.MessageDigest" %> <%@ page import = "java.security.NoSuchAlgorithmException" %> -<% -int ssoNum; -String pass; -Cookie adminCookie; +<%@ page import = "java.util.Random" %> + + + + + + + + + -ssoNum = Integer.parseInt(request.getParameter("username")); -pass = request.getParameter("pass"); -String generatedPass = null; + Innovation Hub -try { - MessageDigest md = MessageDigest.getInstance("MD5"); - md.update(pass.getBytes()); - byte[] bytes = md.digest(); - StringBuilder sb = new StringBuilder(); - for(int i = 0; i + + + + + + + + + +<% +/* + If admin chose to login, we work on this form. +*/ +if(request.getParameter("login") != null){ + /* + Get form information from last page. + */ + int ssoNum = Integer.parseInt(request.getParameter("username")); + String pass = request.getParameter("pass"); + Cookie adminCookie; + String generatedPass = null; -} - -String database = "jdbc:mysql://us-cdbr-iron-east-04.cleardb.net/ad_15a989204c2ff8a?user=b372dfe7409692&password=74f6e317"; -String user = "b372dfe7409692"; -String password = "74f6e317"; -Class.forName("com.mysql.jdbc.Driver"); -Connection connection; -Statement stmt; -for(;;){ - try{ - connection = DriverManager.getConnection(database, user, password); - break; + /* + Hash what the user put in, so we can see if the passwords match up. + */ + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(pass.getBytes()); + byte[] bytes = md.digest(); + StringBuilder sb = new StringBuilder(); + for(int i = 0; i \ No newline at end of file +/* + Goes back to the previous page. +*/ +function goBack(){ + window.history.back(); +} + + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/adminApprove.jsp b/WebContent/html/webpages/administration/adminApprove.jsp index 4a6f1f5..e08853e 100644 --- a/WebContent/html/webpages/administration/adminApprove.jsp +++ b/WebContent/html/webpages/administration/adminApprove.jsp @@ -73,76 +73,79 @@ pageEncoding="ISO-8859-1"%> tbody{ text-align: left; } + + .btn{ + margin-top: 15px; + } + + - .btn{ - margin-top: 15px; - } - - - - - + + - + - - + + -
-

Admin View Approvals

-
- -
- - - - - - - - - - - - - -
Ticket IDRequestor NameLocation NameDevice NameStatusReturn Date
-
+
+

Admin View Approvals

+
+ +
+ + + + + + + + + + + + + + +
Ticket IDRequestor NameLocation NameDevice NameStatusPermanent?Return Date
+
<% Ticket[] tickets = TicketQueries.getTickets(); @@ -177,99 +180,101 @@ String ticketStr = Ticket.arrayToString(tickets); var html = ""; for(var i = 0; i < tickets.length; i++){ //NEED TO ADD IN RETURN DATE AT END BUT THAT WOULD BREAK THINGS AT THE MOMENT - html += "" + tickets[i].id + "" + tickets[i].username + "" + tickets[i].devicename + "" + tickets[i].locationname + "" + tickets[i].status + "" + tickets[i].return + ""; + html += "" + tickets[i].id + "" + tickets[i].username + "" + tickets[i].locationname + "" + tickets[i].devicename + "" + tickets[i].status + "" + tickets[i].permanent + "" + tickets[i].return + ""; } document.getElementById("tablebodymain").innerHTML = html; } function ticketAction(){ var id = this.id; - var html = "" + tickets[id].id + "" + tickets[id].username + "" + tickets[id].locationname + "" + tickets[id].devicename + "" + tickets[id].status + "" + tickets[id].return + ""; - document.getElementById("tablemodal").innerHTML = html; - $("#ticketIDfield").val(tickets[id].id); - $("#deviceIDfield").val(tickets[id].deviceID); - $("#locationIDfield").val(tickets[id].location); - $("#Modal").show(); - } - - function closeModal(){ - $("#Modal").hide(); - } - function fuzzyFilter(ticketArray) { - // First pass: filter by id - var searchText = document.getElementsByName('searchBar')[0].value; - var options = { - pre: "", - post: '', - extract: function(arg) {return ''+arg.id;} - } - var idFilterResults = fuzzy.filter(searchText, ticketArray, options); - for (var i = idFilterResults.length - 1; i >= 0; i--) { - idFilterResults[i].original.id=idFilterResults[i].string; - } - // Pass #2: filter by status - options.extract=function(arg) {return arg.status;} - var statusFilterResults = fuzzy.filter(searchText, ticketArray, options) - for (var i = statusFilterResults.length-1;i >=0; i--) { - statusFilterResults[i].original.status=statusFilterResults[i].string; - } - // Pass #3: filter by username - options.extract=function(arg) {return arg.username;} - var usernameFilterResults = fuzzy.filter(searchText, ticketArray, options) - for (var i = usernameFilterResults.length-1;i >=0; i--) { - usernameFilterResults[i].original.username=usernameFilterResults[i].string; - } - // Pass #4: filter by locationname - options.extract=function(arg) {return arg.locationname;} - var locationnameFilterResults = fuzzy.filter(searchText, ticketArray, options) - for (var i = locationnameFilterResults.length-1;i >=0; i--) { - locationnameFilterResults[i].original.locationname=locationnameFilterResults[i].string; - } - // Pass #5: filter by devicename - options.extract=function(arg) {return arg.devicename;} - var devicenameFilterResults = fuzzy.filter(searchText, ticketArray, options) - for (var i = devicenameFilterResults.length-1;i >=0; i--) { - devicenameFilterResults[i].original.devicename=devicenameFilterResults[i].string; - } - // Pass #6: filter by return - options.extract=function(arg) {return arg.return;} - var returnFilterResults = fuzzy.filter(searchText, ticketArray, options) - for (var i = returnFilterResults.length-1;i >=0; i--) { - returnFilterResults[i].original.return=returnFilterResults[i].string; - } - - var filteredResults = union([idFilterResults, statusFilterResults, usernameFilterResults, locationnameFilterResults, devicenameFilterResults, returnFilterResults]); - - // this returns a filtered array of objects with attributes 'index', 'original', 'score', and 'string' - // I am interested in the 'original' attribute, which is the relevant object exactly as it was submitted, - // and the 'string' attribute, which is the attribute that was compared against with matching characters conveniantly bolded - var finalResults = new Array(filteredResults.length); - - for (var i = 0; i < finalResults.length; i++) { - finalResults[i]= { - id:filteredResults[i].original.id, - status:filteredResults[i].original.status, - username:filteredResults[i].original.username, - locationname:filteredResults[i].original.locationname, - devicename:filteredResults[i].original.devicename, - return:filteredResults[i].original.return, - }; - } - - return finalResults; -} -function union(arrays) { - if(arrays.length == 2) - return(unionBaseCase(arrays[0],arrays[1])) - if(arrays.length == 1) - return(arrays[0]) - else{ - var pivot = Math.floor(arrays.length/2); - var arrayA=arrays.slice(0,pivot); - var arrayB=arrays.slice(pivot); - return union([union(arrayA),union(arrayB)]); - } -} + var html = "" + ticks[id].id + "" + ticks[id].username + "" + ticks[id].locationname + "" + ticks[id].devicename + "" + ticks[id].status + "" + ticks[id].permanent + "" + ticks[id].return + ""; + document.getElementById("tablemodal").innerHTML = html; + $("#ticketIDfield").val(ticks[id].id); + $("#deviceIDfield").val(ticks[id].deviceID); + $("#locationIDfield").val(ticks[id].location); + $("#permField").val(ticks[id].permanent); + $("#Modal").show(); + } + + function closeModal(){ + $("#Modal").hide(); + } + function fuzzyFilter(ticketArray) { + // First pass: filter by id + var searchText = document.getElementsByName('searchBar')[0].value; + var options = { + pre: "", + post: '', + extract: function(arg) {return ''+arg.id;} + } + var idFilterResults = fuzzy.filter(searchText, ticketArray, options); + for (var i = idFilterResults.length - 1; i >= 0; i--) { + idFilterResults[i].original.id=idFilterResults[i].string; + } + // Pass #2: filter by status + options.extract=function(arg) {return arg.status;} + var statusFilterResults = fuzzy.filter(searchText, ticketArray, options) + for (var i = statusFilterResults.length-1;i >=0; i--) { + statusFilterResults[i].original.status=statusFilterResults[i].string; + } + // Pass #3: filter by username + options.extract=function(arg) {return arg.username;} + var usernameFilterResults = fuzzy.filter(searchText, ticketArray, options) + for (var i = usernameFilterResults.length-1;i >=0; i--) { + usernameFilterResults[i].original.username=usernameFilterResults[i].string; + } + // Pass #4: filter by locationname + options.extract=function(arg) {return arg.locationname;} + var locationnameFilterResults = fuzzy.filter(searchText, ticketArray, options) + for (var i = locationnameFilterResults.length-1;i >=0; i--) { + locationnameFilterResults[i].original.locationname=locationnameFilterResults[i].string; + } + // Pass #5: filter by devicename + options.extract=function(arg) {return arg.devicename;} + var devicenameFilterResults = fuzzy.filter(searchText, ticketArray, options) + for (var i = devicenameFilterResults.length-1;i >=0; i--) { + devicenameFilterResults[i].original.devicename=devicenameFilterResults[i].string; + } + // Pass #6: filter by return + options.extract=function(arg) {return arg.return;} + var returnFilterResults = fuzzy.filter(searchText, ticketArray, options) + for (var i = returnFilterResults.length-1;i >=0; i--) { + returnFilterResults[i].original.return=returnFilterResults[i].string; + } + + var filteredResults = union([idFilterResults, statusFilterResults, usernameFilterResults, locationnameFilterResults, devicenameFilterResults, returnFilterResults]); + + // this returns a filtered array of objects with attributes 'index', 'original', 'score', and 'string' + // I am interested in the 'original' attribute, which is the relevant object exactly as it was submitted, + // and the 'string' attribute, which is the attribute that was compared against with matching characters conveniantly bolded + var finalResults = new Array(filteredResults.length); + + for (var i = 0; i < finalResults.length; i++) { + finalResults[i]= { + id:filteredResults[i].original.id, + status:filteredResults[i].original.status, + username:filteredResults[i].original.username, + locationname:filteredResults[i].original.locationname, + devicename:filteredResults[i].original.devicename, + return:filteredResults[i].original.return, + permanent:filteredResults[i].original.permanent, + }; + } + + return finalResults; + } + function union(arrays) { + if(arrays.length == 2) + return(unionBaseCase(arrays[0],arrays[1])) + if(arrays.length == 1) + return(arrays[0]) + else{ + var pivot = Math.floor(arrays.length/2); + var arrayA=arrays.slice(0,pivot); + var arrayB=arrays.slice(pivot); + return union([union(arrayA),union(arrayB)]); + } + } function unionBaseCase(array1,array2) { var results = new Array(); diff --git a/WebContent/html/webpages/administration/adminpasswordsetting.jsp b/WebContent/html/webpages/administration/adminpasswordsetting.jsp new file mode 100644 index 0000000..0359bc0 --- /dev/null +++ b/WebContent/html/webpages/administration/adminpasswordsetting.jsp @@ -0,0 +1,62 @@ + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + +
+ +
+

Change Your Password

+
+ + +
+
+ + +
+
+ + +
+ +
+
+

Change Pincode

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/adminpasswordsettingtryagain.jsp b/WebContent/html/webpages/administration/adminpasswordsettingtryagain.jsp new file mode 100644 index 0000000..f006479 --- /dev/null +++ b/WebContent/html/webpages/administration/adminpasswordsettingtryagain.jsp @@ -0,0 +1,63 @@ + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + + + +
+ +
+

Something went wrong. Try again!

+

Change Your Password

+
+ + +
+
+ + +
+
+ + +
+ +
+
+

Change Pincode

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/WebContent/html/webpages/administration/ticketApprove.jsp b/WebContent/html/webpages/administration/ticketApprove.jsp new file mode 100644 index 0000000..7116095 --- /dev/null +++ b/WebContent/html/webpages/administration/ticketApprove.jsp @@ -0,0 +1,70 @@ +<%@ page import = "database.*,entities.Location" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + + + + + + + + + + + Innovation Hub + + + + + + + + + + + + + +
+

Approving Tickets

+

Thanks for approving a ticket!

+

You can ship the devices to the following address:

+
+ Synchrony Financial

+
+
+ +
+
+ +<% +int locationid = -1; +for(Cookie c : usercookies){ + if(c.getName().equals("location")){ + locationid = Integer.parseInt(c.getValue()); + c.setMaxAge(0); + c.setPath("/"); + response.addCookie(c); + } +} +Location location = LocationQueries.getLocationByID(locationid); +String address = location.getAddress(); +String town = location.getTown(); +String state = location.getState(); +String zip = location.getZip(); +%> + + \ No newline at end of file diff --git a/WebContent/html/webpages/components/adminnavbar.jsp b/WebContent/html/webpages/components/adminnavbar.jsp index 160a20a..e3cde2c 100644 --- a/WebContent/html/webpages/components/adminnavbar.jsp +++ b/WebContent/html/webpages/components/adminnavbar.jsp @@ -24,6 +24,7 @@
  • Device Hub
  • Location Hub
  • +
  • Update Password/Pincode
  • \ No newline at end of file diff --git a/WebContent/html/webpages/components/navbar.jsp b/WebContent/html/webpages/components/navbar.jsp index 0f32c01..ac1ec25 100644 --- a/WebContent/html/webpages/components/navbar.jsp +++ b/WebContent/html/webpages/components/navbar.jsp @@ -24,6 +24,7 @@