diff --git a/WebContent/html/webpages/administration/adminApprove.jsp b/WebContent/html/webpages/administration/adminApprove.jsp index 1820d59..e08853e 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"%> @@ -127,7 +127,10 @@

Admin View Approvals

- + + + +
@@ -145,16 +148,16 @@ <% - Ticket[] tickets = TicketQueries.getTickets(); - String ticketStr = Ticket.arrayToString(tickets); +Ticket[] tickets = TicketQueries.getTickets(); +String ticketStr = Ticket.arrayToString(tickets); %> - - - + 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(); + 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 diff --git a/WebContent/html/webpages/administration/adminDeviceSettings.jsp b/WebContent/html/webpages/administration/adminDeviceSettings.jsp index c2a24c8..b6a908f 100644 --- a/WebContent/html/webpages/administration/adminDeviceSettings.jsp +++ b/WebContent/html/webpages/administration/adminDeviceSettings.jsp @@ -359,7 +359,7 @@ function fuzzyFilter(deviceArray) ////// First pass: filter by device name var options = { - pre: "", + pre: "", post: '', extract: function(arg) {return arg.name;} } @@ -370,6 +370,7 @@ function fuzzyFilter(deviceArray) } ////// Second pass: filter by MAC address options.extract = function(arg) {return arg.mac;}; + options.pre = "span style='color: orange; font-size: 115%'>" var macFilterResults = fuzzy.filter(searchText, deviceArray, options); // replace releveant field with bolded string for (var i = macFilterResults.length - 1; i >= 0; i--) { @@ -377,6 +378,7 @@ function fuzzyFilter(deviceArray) } ////// Third pass: filter by Manufacture options.extract = function(arg) {return arg.manufacturer;}; + options.pre = "span style='color: gold; font-size: 115%'>" var manufacturerFilterResults = fuzzy.filter(searchText, deviceArray, options); // replace releveant field with bolded string for (var i = manufacturerFilterResults.length - 1; i >= 0; i--) { @@ -384,6 +386,7 @@ function fuzzyFilter(deviceArray) } ////// Fourth pass: filter by Hardware options.extract = function(arg) {return arg.hardware;}; + options.pre = "span style='color: green; font-size: 115%'>" var hardwareFilterResults = fuzzy.filter(searchText, deviceArray, options); // replace releveant field with bolded string for (var i = hardwareFilterResults.length - 1; i >= 0; i--) { @@ -391,6 +394,7 @@ function fuzzyFilter(deviceArray) } ////// Fifth pass: filter by Model options.extract = function(arg) {return arg.model;}; + options.pre = "span style='color: blue; font-size: 115%'>" var modelFilterResults = fuzzy.filter(searchText, deviceArray, options); // replace releveant field with bolded string for (var i = modelFilterResults.length - 1; i >= 0; i--) { @@ -398,6 +402,7 @@ function fuzzyFilter(deviceArray) } ////// Sixth pass: filter by Serial options.extract = function(arg) {return arg.serial;}; + options.pre = "span style='color: violet; font-size: 115%'>" var serialFilterResults = fuzzy.filter(searchText, deviceArray, options); // replace releveant field with bolded string for (var i = serialFilterResults.length - 1; i >= 0; i--) {
Ticket ID