From a04ef03e79200a94ca7f1f05987a7dcf07112b1b Mon Sep 17 00:00:00 2001 From: Connor L Jackson Date: Tue, 21 Feb 2017 11:08:08 -0500 Subject: [PATCH 1/8] Catching up with last weeks updates --- WebContent/html/javascript/return.js | 204 ++++++++---------- WebContent/html/webpages/returnPage.html | 31 ++- src/database/MySQLAccess.java | 23 ++ src/entities/Admin.java | 13 -- src/entities/Device.java | 45 ---- src/entities/RentedDevice.java | 68 ++++++ src/entities/User.java | 13 -- src/features/RequestHandler.java | 90 -------- src/features/ReturnHandler.java | 23 -- src/functionality_managers/ClientManager.java | 20 -- src/functionality_managers/SystemManager.java | 69 ------ 11 files changed, 215 insertions(+), 384 deletions(-) delete mode 100644 src/entities/Admin.java delete mode 100644 src/entities/Device.java create mode 100644 src/entities/RentedDevice.java delete mode 100644 src/entities/User.java delete mode 100644 src/features/RequestHandler.java delete mode 100644 src/features/ReturnHandler.java delete mode 100644 src/functionality_managers/ClientManager.java delete mode 100644 src/functionality_managers/SystemManager.java diff --git a/WebContent/html/javascript/return.js b/WebContent/html/javascript/return.js index 6298caa..c3374ac 100644 --- a/WebContent/html/javascript/return.js +++ b/WebContent/html/javascript/return.js @@ -1,58 +1,104 @@ +/*<%@ page import = "database.MySQLAccess" %> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%>*/ + +//Code that will obtain the devices a certain user is trying to access +//<% +/*MySQLAccess myaccess = new MySQLAccess(); +Connection connect = myaccess.connectDB(); +NEED USER ID FROM COOKIE? +String userID = +RentedDevice[] mydevices = myaccess.getUserDevices(connect, userID); +int numDevices = mydevices.length; +*/ +//%> -var dev1 = { - id: 1, - name:"George", - hardware:"iphone", - checkout: new Date("11/11/2016"), -}; - -var dev2 = { - id: 2, - name:"Greyson", - hardware:"iphone", - checkout: new Date("8/10/2016"), -}; - -var dev3 = { - id: 3, - name:"Linkin Park", - hardware:"ipad", - checkout: new Date("8/20/2016"), -}; - -var dev4 = { - id: 4, - name:"Abercrombie", - hardware:"ipad", - checkout: new Date("11/3/2016"), -}; - -var dev5 = { - id: 5, - name:"Hulk", - hardware:"computerStick", - checkout: new Date("4/28/2016"), -}; - -var dev6 = { - id: 6, - name:"Captain America", - hardware:"computerStick", - checkout: new Date("10/22/2016"), -}; - -var devices = [dev1, dev2, dev3, dev4, dev5, dev6]; //This array corresponds to the hardcoded inventory in request.js. The description has been replaced with a //checkout date, because I imagine that is more the kind of info to pull from the database for this page. //IDs, names and hardware are the same. +var devices = makeDeviceArray(); +//This will be the array of ids that are checked off +var toReturn = [] +//Adds event listener to each mennu option var options = document.getElementsByClassName('option'); for (var i = options.length - 1; i >= 0; i--) { options[i].addEventListener('click',filterDeviceList); } +//This calls on the filter function, which by default displays ALL DEVICES! You can later filter by take out period! +//populateDeviceList(null); + +//Test data +$('div[data-num="1"]').click(fireCheck); +$('input[data-num="1"]').click(selectBox); +$('#returnbutton').click(returnDevice); +$('#closeOrderForm').click(hidePopup); + +//This should make the device array of retrieved devices +function makeDeviceArray(){ + var devices = []; + //loop constraint + /*<% + window.numDevices = <=numDevices>; + %> + //iterate all devices we retrieved + for(var i = 0; i < window.numDevices; i++){ + //get JSON text from each object + <% + window.json = "<=mydevices[i].toString()>"; + %> + //push to array! + devices.push(JSON.parse(window.json)); + }*/ + return devices; +} -populateDeviceList(null); +//This makes a corresponding checkbox get set off, and then changes box color +function fireCheck(){ + //get device id + var id = this.getAttribute('data-num'); + //create jquery strings + var query = 'input[data-num="'+id+'"]'; + var query2 = 'div[data-num="'+id+'"]'; + //check to see if checkbox is checked + var checked = $(query).prop('checked'); + //if so... + if(checked === true){ + //uncheck box + $(query).prop('checked',false); + //lighten background color + $(query2).css("background-color","#E9EAEB"); + //remove from toReturn array + toReturn.splice(toReturn.indexOf(id),1) + } + //if box is unchecked... + else{ + //check it off + $(query).prop('checked',true); + //make background darker + $(query2).css("background-color","#C2C3C4"); + //add to toReturned array + toReturn.push(id); + } +} + +//behaves similarly to above, minus the forced checking +//and if statement reversed +function selectBox(){ + var id = this.getAttribute('data-num'); + var query = 'input[data-num="'+id+'"]'; + var query2 = 'div[data-num="'+id+'"]'; + var checked = $(query).prop('checked'); + if(checked === false){ + $(query2).css("background-color","#E9EAEB"); + toReturn.splice(toReturn.indexOf(id),1) + } + else{ + $(query2).css("background-color","#C2C3C4"); + toReturn.push(id); + } +} function filterDeviceList() { @@ -96,7 +142,7 @@ function filterDeviceList() function populateDeviceList(filter) //generates html and writes to 'devContainer' div in returnPage.html { - var devicesToList = getCheckedOutDevices(null,filter); + var devicesToList = devices; var htmlString=""; var i; for (i = 0; i < devicesToList.length; i++) { @@ -142,70 +188,10 @@ function populateDeviceList(filter) function returnDevice() { - var id = this.getAttribute('id'); - id = parseInt(id.replace(/[^0-9\.]/g,''), 10); - if(isUnavailable(id)) - { - var unavailable = getUnavailableIDs(); - unavailable.splice(unavailable.indexOf(id),1); - localStorage.setItem('unavailable',JSON.stringify(unavailable)); - $('#return').fadeIn(1000); - $('#return').fadeIn(1000); - $('#return').fadeOut(1000); - } - else - alert("That's already marked available. Something may have gone wrong."); - populateDeviceList(); + $('#orderInfoModal').show(); } -function getCheckedOutDevices(user, filter) -//Eventually this will return information about all devices checked out by *user* -//Right now there is only one user, and the function just returns IDs of all checked out devicess. -//'Filter' is passed as a two-element array representing a range of milliseconds. -//If the checkout date for a device falls within that range, then it will be included in the results. -//The filter may be null. If so, all checked out devices will be returned. -{ - var unavailable = getUnavailableIDs(); - var checkedDevices = new Array(); - for (var i = 0; i < unavailable.length; i++) { - for (var j = 0; j < devices.length; j++) { - if(unavailable[i] == devices[j].id) - { - if(filter!=null) - { - var checkedOutMillis = devices[j].checkout.getTime(); - if(filter[0]checkedOutMillis) - checkedDevices.push(devices[j]); - } - else - checkedDevices.push(devices[j]); - break; - } - } - } - return checkedDevices; -} - -function isUnavailable(id){ - var unavailable = getUnavailableIDs(); - if(unavailable.length == 0) - return 0; - else{ - for(var i = 0; i < unavailable.length; i++){ - if(unavailable[i] == (id)) - return 1; - } - } - return 0; -} -function getUnavailableIDs() -//Identical to the function in request.js: just reads the 'unavailable' array in local storage. -//Will need to be changed (or may be obsolete) when we get a database -{ - var unavailable = new Array; - var unavailable_str = localStorage.getItem('unavailable'); - if(unavailable_str !== "" && unavailable_str !== null){ - unavailable = JSON.parse(unavailable_str); - } - return unavailable; +//called when clicking x on the modal +function hidePopup(){ + $('#orderInfoModal').hide(); } \ No newline at end of file diff --git a/WebContent/html/webpages/returnPage.html b/WebContent/html/webpages/returnPage.html index fdcda6c..2e702d5 100644 --- a/WebContent/html/webpages/returnPage.html +++ b/WebContent/html/webpages/returnPage.html @@ -20,6 +20,7 @@ padding: 15px; background-color: #E9EAEB; display: inline-block; + cursor: pointer; } div.imgContainer{ @@ -60,6 +61,17 @@ + + +

"; } if(i==0) htmlString+="Couldn't find any devices to return. Why not go order some?"; document.getElementById("devContainer").innerHTML = htmlString; @@ -254,6 +287,11 @@ function populateDeviceList(filter) function returnDevice() { + var html = ""; + for(var i = 0; i < toReturn.length; i++){ + html+= "" + devices[toReturn[i]].name + "" + devices[toReturn[i]].hardware + "" + devices[toReturn[i]].model + ""; + } + document.getElementById("tablebody").innerHTML = html; $('#orderInfoModal').show(); } From ded71189a6e6752ff63b4152bacf6367b3875f6d Mon Sep 17 00:00:00 2001 From: Connor L Jackson Date: Wed, 22 Feb 2017 19:58:16 -0500 Subject: [PATCH 5/8] Some minor modal changes to return page. --- WebContent/html/webpages/returnPage.jsp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/WebContent/html/webpages/returnPage.jsp b/WebContent/html/webpages/returnPage.jsp index 284f415..cb5976e 100644 --- a/WebContent/html/webpages/returnPage.jsp +++ b/WebContent/html/webpages/returnPage.jsp @@ -136,7 +136,7 @@ MySQLAccess myaccess = new MySQLAccess(); //String userID = int counter = 0; //9 is just for testing purposes. Should be returning 4 devices at the moment. -RentedDevice[] mydevices = myaccess.getUserDevices("9"); +RentedDevice[] mydevices = myaccess.getUserDevices("19"); String deviceString = RentedDevice.arrayToString(mydevices); %> @@ -164,7 +164,9 @@ $('input.deviceCheckbox').click(selectBox); $('#returnbutton').click(returnDevice); $('#closeOrderForm').click(hidePopup); -$(function(){$('#tabledisplay').DataTable();}) +//event listeners to escape modal +window.onkeydown = function(e){if (e.keyCode == 27){hidePopup();}} +window.onclick = function(e){var modal = document.getElementById('orderInfoModal'); if(e.target == modal) modal.style.display = "none";} //This should make the device array of retrieved devices function makeDeviceArray(){ From e41e62e578cc01558032c51d684e9967f0eb3e13 Mon Sep 17 00:00:00 2001 From: Connor L Jackson Date: Wed, 22 Feb 2017 20:04:26 -0500 Subject: [PATCH 6/8] Typo in the Database Tabet. -_- --- db/Schema.mwb | Bin 33510 -> 33540 bytes db/Schema.mwb.bak | Bin 33509 -> 33510 bytes db/db.sql | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/db/Schema.mwb b/db/Schema.mwb index 0a7c8744ebca639c2d9e7115dcb9024f56c6b151..46679affe5debb51da6655fff2cff7cf28e2f5e1 100644 GIT binary patch delta 31904 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 V0hp6af-wQVlYW980pgRLf=MMWq+S33 diff --git a/db/db.sql b/db/db.sql index efed591..f0f5098 100644 --- a/db/db.sql +++ b/db/db.sql @@ -446,7 +446,7 @@ INSERT INTO `seniordesign`.`devices` (`Device_ID`, `Device_Name`, `Device_Descri INSERT INTO `seniordesign`.`devices` (`Device_ID`, `Device_Name`, `Device_Description`, `MAC_Address`, `Ticket_ID`, `Renter`, `Location`, `Manufacturer`, `Model_Type`, `Hardware_Model`, `Serial_Num`, `Status`, `Borrow_Date`, `Return_Date`, `Creation_Date`, `Added_By`, `Last_Audit_Date`, `Audit_By`, `Audit_Email_Sent`, `Removal_Date`, `Removed_By`, `Removed_Approved_By`) VALUES (126, 'Bojack', NULL, NULL, NULL, 19, 1, 'Samsung', 'Smartphone', 'Galaxy S7 Edge', 'RF8H90SP7EN', 'Permanent', NULL, NULL, '9/26/2016', 30, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `seniordesign`.`devices` (`Device_ID`, `Device_Name`, `Device_Description`, `MAC_Address`, `Ticket_ID`, `Renter`, `Location`, `Manufacturer`, `Model_Type`, `Hardware_Model`, `Serial_Num`, `Status`, `Borrow_Date`, `Return_Date`, `Creation_Date`, `Added_By`, `Last_Audit_Date`, `Audit_By`, `Audit_Email_Sent`, `Removal_Date`, `Removed_By`, `Removed_Approved_By`) VALUES (127, 'Varys', NULL, NULL, NULL, 19, 1, 'Apple', 'Tablet', 'iPad Air', 'DMPM5CFKFK14', 'Permanent', NULL, NULL, '9/26/2016', 30, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `seniordesign`.`devices` (`Device_ID`, `Device_Name`, `Device_Description`, `MAC_Address`, `Ticket_ID`, `Renter`, `Location`, `Manufacturer`, `Model_Type`, `Hardware_Model`, `Serial_Num`, `Status`, `Borrow_Date`, `Return_Date`, `Creation_Date`, `Added_By`, `Last_Audit_Date`, `Audit_By`, `Audit_Email_Sent`, `Removal_Date`, `Removed_By`, `Removed_Approved_By`) VALUES (128, 'Tormund', NULL, NULL, NULL, 19, 1, 'Apple', 'Tablet', 'iPad Air', 'DMPM4F3QFK14', 'Permanent', NULL, NULL, '9/26/2016', 30, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `seniordesign`.`devices` (`Device_ID`, `Device_Name`, `Device_Description`, `MAC_Address`, `Ticket_ID`, `Renter`, `Location`, `Manufacturer`, `Model_Type`, `Hardware_Model`, `Serial_Num`, `Status`, `Borrow_Date`, `Return_Date`, `Creation_Date`, `Added_By`, `Last_Audit_Date`, `Audit_By`, `Audit_Email_Sent`, `Removal_Date`, `Removed_By`, `Removed_Approved_By`) VALUES (129, 'Brienne', NULL, NULL, NULL, 19, 1, 'Apple ', 'Tabet', 'iPad Air', 'DMPMKML6FK10', 'Permanent', NULL, NULL, '9/26/2016', 30, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `seniordesign`.`devices` (`Device_ID`, `Device_Name`, `Device_Description`, `MAC_Address`, `Ticket_ID`, `Renter`, `Location`, `Manufacturer`, `Model_Type`, `Hardware_Model`, `Serial_Num`, `Status`, `Borrow_Date`, `Return_Date`, `Creation_Date`, `Added_By`, `Last_Audit_Date`, `Audit_By`, `Audit_Email_Sent`, `Removal_Date`, `Removed_By`, `Removed_Approved_By`) VALUES (129, 'Brienne', NULL, NULL, NULL, 19, 1, 'Apple ', 'Tablet', 'iPad Air', 'DMPMKML6FK10', 'Permanent', NULL, NULL, '9/26/2016', 30, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `seniordesign`.`devices` (`Device_ID`, `Device_Name`, `Device_Description`, `MAC_Address`, `Ticket_ID`, `Renter`, `Location`, `Manufacturer`, `Model_Type`, `Hardware_Model`, `Serial_Num`, `Status`, `Borrow_Date`, `Return_Date`, `Creation_Date`, `Added_By`, `Last_Audit_Date`, `Audit_By`, `Audit_Email_Sent`, `Removal_Date`, `Removed_By`, `Removed_Approved_By`) VALUES (130, 'Obeyrn', NULL, NULL, NULL, 19, 1, 'Apple', 'Tablet', 'iPad Air', 'DMPPNJ22FK10', 'Permanent', NULL, NULL, '9/26/2016', 30, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `seniordesign`.`devices` (`Device_ID`, `Device_Name`, `Device_Description`, `MAC_Address`, `Ticket_ID`, `Renter`, `Location`, `Manufacturer`, `Model_Type`, `Hardware_Model`, `Serial_Num`, `Status`, `Borrow_Date`, `Return_Date`, `Creation_Date`, `Added_By`, `Last_Audit_Date`, `Audit_By`, `Audit_Email_Sent`, `Removal_Date`, `Removed_By`, `Removed_Approved_By`) VALUES (131, 'Tywin', NULL, NULL, NULL, 19, 1, 'Apple', 'Tablet', 'iPad AIr', 'DMRM7FNAFK10', 'Permanent', NULL, NULL, '9/26/2016', 30, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `seniordesign`.`devices` (`Device_ID`, `Device_Name`, `Device_Description`, `MAC_Address`, `Ticket_ID`, `Renter`, `Location`, `Manufacturer`, `Model_Type`, `Hardware_Model`, `Serial_Num`, `Status`, `Borrow_Date`, `Return_Date`, `Creation_Date`, `Added_By`, `Last_Audit_Date`, `Audit_By`, `Audit_Email_Sent`, `Removal_Date`, `Removed_By`, `Removed_Approved_By`) VALUES (132, 'Jojen', NULL, NULL, NULL, 19, 1, 'Apple', 'Tablet', 'iPad Air', 'DMRMRJN3FK10', 'Permanent', NULL, NULL, '9/26/2016', 30, NULL, NULL, NULL, NULL, NULL, NULL); From 11935513aefa015c7b974af51567b475c444b239 Mon Sep 17 00:00:00 2001 From: Connor L Jackson Date: Wed, 22 Feb 2017 22:43:02 -0500 Subject: [PATCH 7/8] DB changes Also some code clean up :) --- WebContent/html/webpages/returnPage.jsp | 149 +++------ db/Schema.mwb | Bin 33540 -> 19632 bytes db/Schema.mwb.bak | Bin 33510 -> 33524 bytes db/db.sql | 390 ++++++++++++------------ src/database/MySQLAccess.java | 5 +- src/entities/RentedDevice.java | 18 +- 6 files changed, 256 insertions(+), 306 deletions(-) diff --git a/WebContent/html/webpages/returnPage.jsp b/WebContent/html/webpages/returnPage.jsp index cb5976e..b5b5fb9 100644 --- a/WebContent/html/webpages/returnPage.jsp +++ b/WebContent/html/webpages/returnPage.jsp @@ -78,6 +78,7 @@ + - - -