Add delete report functionality
This commit is contained in:
		
							parent
							
								
									639fdcec8b
								
							
						
					
					
						commit
						3e058ac604
					
				
					 2 changed files with 46 additions and 1 deletions
				
			
		|  | @ -74,7 +74,7 @@ | ||||||
|                 <div class="modal-body"> |                 <div class="modal-body"> | ||||||
|                 </div> |                 </div> | ||||||
|                 <div class="modal-footer"> |                 <div class="modal-footer"> | ||||||
|                     <button type="button" class="btn btn-danger">Delete Report</button> |                     <button type="button" class="btn btn-danger delete-report">Delete Report</button> | ||||||
|                     <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> |                     <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> | ||||||
|                     <button type="button" class="btn btn-primary">Submit Report</button> |                     <button type="button" class="btn btn-primary">Submit Report</button> | ||||||
|                 </div> |                 </div> | ||||||
|  |  | ||||||
|  | @ -3,6 +3,37 @@ function getEndpointDomain() { | ||||||
|     return "https://" + window.location.hostname + ":8444/"; |     return "https://" + window.location.hostname + ":8444/"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function removeDataFromEndpoint(url) { | ||||||
|  |     const token = localStorage.getItem("token"); | ||||||
|  |     const xhr = new XMLHttpRequest(); | ||||||
|  | 
 | ||||||
|  |     console.log("Attempting a connection to the following endpoint: " + url); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     xhr.open("DELETE", url, true); | ||||||
|  |     xhr.setRequestHeader("Authorization", "Bearer " + token); | ||||||
|  |     xhr.onreadystatechange = function() { | ||||||
|  |         if (this.readyState === 4) { | ||||||
|  |             if (this.status === 200) { | ||||||
|  |                 console.log("DELETE SUCCESS!"); | ||||||
|  |                 console.log("Server response:\n" + this.response); | ||||||
|  |                 alert("Report deleted"); | ||||||
|  |                 location.reload(true); | ||||||
|  |             } else { | ||||||
|  |                 console.error("DELETE FAILURE!"); | ||||||
|  |                 console.error("Server status: " + this.status); | ||||||
|  |                 console.error("Server response:\n" + this.response); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     xhr.onerror = function() { | ||||||
|  |         alert("Connection error!"); | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     xhr.send(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Make a GET request to url and pass response to callback function
 | // Make a GET request to url and pass response to callback function
 | ||||||
| function getDataFromEndpoint(url, callback) { | function getDataFromEndpoint(url, callback) { | ||||||
|     const token = localStorage.getItem("token"); |     const token = localStorage.getItem("token"); | ||||||
|  | @ -334,6 +365,10 @@ document.addEventListener("click", function(event) { | ||||||
|     if (event.target && event.target.classList.contains("edit-report-button")) { |     if (event.target && event.target.classList.contains("edit-report-button")) { | ||||||
|         console.log("Edit button clicked"); |         console.log("Edit button clicked"); | ||||||
|         const url = getEndpointDomain() + "api/v1/report/" + event.target.dataset.rid; |         const url = getEndpointDomain() + "api/v1/report/" + event.target.dataset.rid; | ||||||
|  |         const deleteButton = document.querySelector(".delete-report"); | ||||||
|  |         if (deleteButton) { | ||||||
|  |             deleteButton.setAttribute("data-rid", event.target.dataset.rid); | ||||||
|  |         } | ||||||
|         getDataFromEndpoint(url, createEditReportForm); |         getDataFromEndpoint(url, createEditReportForm); | ||||||
|     } |     } | ||||||
|     if(event.target && event.target.classList.contains("view-report-button")) |     if(event.target && event.target.classList.contains("view-report-button")) | ||||||
|  | @ -343,4 +378,14 @@ document.addEventListener("click", function(event) { | ||||||
|         getDataFromEndpoint(url, displayReport); |         getDataFromEndpoint(url, displayReport); | ||||||
|     } |     } | ||||||
|     // TODO: Add View Report
 |     // TODO: Add View Report
 | ||||||
|  | 
 | ||||||
|  |     if(event.target && event.target.classList.contains("delete-report")) { | ||||||
|  |         event.preventDefault(); | ||||||
|  |         console.log("Delete report button clicked"); | ||||||
|  |         const result = confirm("Are you sure you want to delete this report?"); | ||||||
|  |         if (result) { | ||||||
|  |             const url = getEndpointDomain() + "api/v1/report/" + event.target.dataset.rid; | ||||||
|  |             removeDataFromEndpoint(url); | ||||||
|  |         } | ||||||
|  |     } | ||||||
| }); | }); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Preston Doman
						Preston Doman