diff --git a/WebContent/html/webpages/administration/adminApprove.jsp b/WebContent/html/webpages/administration/adminApprove.jsp index e144f39..4a6f1f5 100644 --- a/WebContent/html/webpages/administration/adminApprove.jsp +++ b/WebContent/html/webpages/administration/adminApprove.jsp @@ -1,6 +1,6 @@ <%@ page import = "database.*,entities.*" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> +pageEncoding="ISO-8859-1"%> @@ -73,85 +73,88 @@ tbody{ text-align: left; } - - .btn{ - margin-top: 15px; - } - - - - - - - - - - - -
-

Admin View Approvals

- - - - - - - - - - - - - -
Ticket IDRequestor NameLocation NameDevice NameStatusReturn Date
-
+ + .btn{ + margin-top: 15px; + } + + + + + + + + + + + +
+

Admin View Approvals

+
+ +
+ + + + + + + + + + + + + +
Ticket IDRequestor NameLocation NameDevice NameStatusReturn Date
+
<% - Ticket[] tickets = TicketQueries.getTickets(); - String ticketStr = Ticket.arrayToString(tickets); +Ticket[] tickets = TicketQueries.getTickets(); +String ticketStr = Ticket.arrayToString(tickets); %> - - - + 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)]); + } +} + +function unionBaseCase(array1,array2) { + var results = new Array(); + while(array1.length>0 && array2.length>0) { + if(array1[0].index == array2[0].index){ + array1.splice(0,1); + } + else + results.push((array1[0].index > array2[0].index ? array2.splice(0,1)[0] : array1.splice(0,1)[0])) + } + results = results.concat(array1); + results = results.concat(array2); + return results; +} + + + \ No newline at end of file