mirror of
				https://github.com/cse110-fa22-group29/cse110-fa22-group29.git
				synced 2025-10-30 19:46:49 +00:00 
			
		
		
		
	add clear search and no result
This commit is contained in:
		| @@ -164,7 +164,10 @@ function addTagsToStorage(ID, addedTags) { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| // legacy function | /** | ||||||
|  |  * Test Helper Function to get all reviews from local storage | ||||||
|  |  * @returns {Object} all active reviews from local storage | ||||||
|  |  */ | ||||||
| export function getAllReviewsFromStorage() { | export function getAllReviewsFromStorage() { | ||||||
| 	if (!(localStorage.getItem("activeIDS"))) { | 	if (!(localStorage.getItem("activeIDS"))) { | ||||||
| 		// we wanna init the active ID array and start the nextID count | 		// we wanna init the active ID array and start the nextID count | ||||||
| @@ -182,8 +185,8 @@ export function getAllReviewsFromStorage() { | |||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Get all IDs of active reviews |  * Get all IDs of active reviews (order: most recent) | ||||||
|  * @returns {number[]} list of all active IDs |  * @returns {number[]} list of all active IDs by recency | ||||||
|  */ |  */ | ||||||
| export function getIDsFromStorage() { | export function getIDsFromStorage() { | ||||||
| 	if (!(localStorage.getItem("activeIDS"))) { | 	if (!(localStorage.getItem("activeIDS"))) { | ||||||
| @@ -192,17 +195,20 @@ export function getIDsFromStorage() { | |||||||
| 		localStorage.setItem("nextID",  JSON.stringify(0)); | 		localStorage.setItem("nextID",  JSON.stringify(0)); | ||||||
| 	} | 	} | ||||||
| 	let activeIDS = JSON.parse(localStorage.getItem("activeIDS")); | 	let activeIDS = JSON.parse(localStorage.getItem("activeIDS")); | ||||||
| 	return activeIDS; | 	return activeIDS.reverse(); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Returns all review IDs which contain the same tag specified.  |  * Returns all review IDs which contain the same tag specified (order: most recent) | ||||||
|  * @param {string} tag to filter by |  * @param {string} tag to filter by | ||||||
|  * @returns {number[]} list of IDs of reviews that all contain the specified tag |  * @returns {number[]} list of IDs of reviews that all contain the specified tag by recency | ||||||
|  */ |  */ | ||||||
| export function getIDsByTag(tag) { | export function getIDsByTag(tag) { | ||||||
| 	let tagArr = JSON.parse(localStorage.getItem("!" + tag.toLowerCase())); | 	let tagArr = JSON.parse(localStorage.getItem("!" + tag.toLowerCase())); | ||||||
| 	return tagArr; | 	if(!tagArr){ | ||||||
|  | 		tagArr = []; | ||||||
|  | 	} | ||||||
|  | 	return tagArr.reverse(); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
| @@ -42,6 +42,14 @@ function initFormHandler() { | |||||||
| 		sortAndFilter(searchTag); | 		sortAndFilter(searchTag); | ||||||
| 	}); | 	}); | ||||||
|  |  | ||||||
|  | 	//for clearing tag filter | ||||||
|  | 	let clearSearchBtn = document.getElementById("clear-search"); | ||||||
|  | 	clearSearchBtn.addEventListener("click", function(){ | ||||||
|  | 		searchTag = null; | ||||||
|  | 		searchField.value = ""; | ||||||
|  | 		sortAndFilter(searchTag); | ||||||
|  | 	}) | ||||||
|  |  | ||||||
| 	//sort by selected method | 	//sort by selected method | ||||||
| 	let sortMethod = document.getElementById("sort"); | 	let sortMethod = document.getElementById("sort"); | ||||||
| 	sortMethod.addEventListener("input", function(){ | 	sortMethod.addEventListener("input", function(){ | ||||||
| @@ -74,7 +82,7 @@ function sortAndFilter(searchTag){ | |||||||
| 			reviewIDs = getIDsFromStorage(); | 			reviewIDs = getIDsFromStorage(); | ||||||
| 		} | 		} | ||||||
| 		//reversed for recency | 		//reversed for recency | ||||||
| 		loadReviews(0, reviewIDs.reverse()); | 		loadReviews(0, reviewIDs); | ||||||
| 	}  | 	}  | ||||||
| 	//sort method: top rated | 	//sort method: top rated | ||||||
| 	else if (sortMethod.value == "top"){ | 	else if (sortMethod.value == "top"){ | ||||||
| @@ -98,6 +106,18 @@ function sortAndFilter(searchTag){ | |||||||
|  */ |  */ | ||||||
| function loadReviews(index, reviewIDs){ | function loadReviews(index, reviewIDs){ | ||||||
| 	let reviewBox = document.getElementById("review-container"); | 	let reviewBox = document.getElementById("review-container"); | ||||||
|  | 	// label if there are no reviews to display | ||||||
|  | 	if(reviewIDs.length == 0){ | ||||||
|  | 		let emptyLabel = document.createElement("label"); | ||||||
|  | 		emptyLabel.setAttribute("id", "empty"); | ||||||
|  | 		emptyLabel.innerText = "No Reviews To Display"; | ||||||
|  | 		reviewBox.append(emptyLabel); | ||||||
|  | 	} else { | ||||||
|  | 		let emptyLabel = document.getElementById("empty"); | ||||||
|  | 		if(emptyLabel){ | ||||||
|  | 			reviewBox.removeChild(emptyLabel); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| 	let moreBtn = document.getElementById("more-btn"); | 	let moreBtn = document.getElementById("more-btn"); | ||||||
| 	//delete load more button if exists | 	//delete load more button if exists | ||||||
| 	if(moreBtn){ | 	if(moreBtn){ | ||||||
|   | |||||||
| @@ -46,12 +46,12 @@ | |||||||
| 						<img src ="./assets/images/Grouppink.png" alt="CREATE" style="opacity: 100%;" id="create-btn" title="Add an entry!" onclick="window.location.assign('./CreatePage.html')"/> | 						<img src ="./assets/images/Grouppink.png" alt="CREATE" style="opacity: 100%;" id="create-btn" title="Add an entry!" onclick="window.location.assign('./CreatePage.html')"/> | ||||||
| 						<h2 id="recent-reviews-text"> Recent Reviews </h2> | 						<h2 id="recent-reviews-text"> Recent Reviews </h2> | ||||||
| 						<img src ="./assets/images/Grouppink.png" style="opacity:0;"/> | 						<img src ="./assets/images/Grouppink.png" style="opacity:0;"/> | ||||||
| 						<!--<button id="rating-btn">Sort By Top Rating</button>--> |  | ||||||
| 						<label for="sort">Filtering Method:</label> | 						<label for="sort">Filtering Method:</label> | ||||||
| 						<select id="sort"> | 						<select id="sort"> | ||||||
| 							<option value="recent">Most Recent</option> | 							<option value="recent">Most Recent</option> | ||||||
| 							<option value="top">Top Rated</option> | 							<option value="top">Top Rated</option> | ||||||
| 						</select> | 						</select> | ||||||
|  | 						<button id="clear-search">Clear Search</button> | ||||||
| 					</div> | 					</div> | ||||||
|  |  | ||||||
| 					<div class="review-container" id="review-container"></div> | 					<div class="review-container" id="review-container"></div> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user