From a6e02ee89da750450f917dc96b03c7864a5b7b62 Mon Sep 17 00:00:00 2001 From: Nidhi Tornekar <121748841+NidhiTornekar@users.noreply.github.com> Date: Fri, 7 Jun 2024 23:54:16 +0530 Subject: [PATCH] Updated feedback.js Added additional functionality to accept only non-zero ratings in the "Rate our Service" page. --- feedback.js | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/feedback.js b/feedback.js index 6516d607..101fff8b 100644 --- a/feedback.js +++ b/feedback.js @@ -1,7 +1,8 @@ +const ratings = []; document.addEventListener('DOMContentLoaded', () => { const starsContainers = document.getElementsByClassName("stars"); const ratingTexts = document.querySelectorAll('[id$="-rating-text"]'); - let currentRating = 0; + //let currentRating = 0; function colourStar(ind , container) { @@ -20,6 +21,7 @@ document.addEventListener('DOMContentLoaded', () => { // Create 5 stars dynamically for each stars container Array.from(starsContainers).forEach((starsContainer, index) => { + ratings[index] = 0; for (let i = 1; i <= 5; i++) { const star = document.createElement('span'); star.classList.add('star'); @@ -28,7 +30,7 @@ document.addEventListener('DOMContentLoaded', () => { starsContainer.appendChild(star); star.addEventListener('click', () => { - currentRating = i; + ratings[index] = i; updateRating(index); colourStar(i , starsContainer); }); @@ -37,15 +39,34 @@ document.addEventListener('DOMContentLoaded', () => { }); const updateRating = (index) => { - ratingTexts[index].textContent = `Rating: ${currentRating}`; + ratingTexts[index].textContent = `Rating: ${ratings[index]}`; }; -}); +function resetStars() { + Array.from(starsContainers).forEach((starsContainer, index) => { + ratings[index] = 0; + colourStar(0, starsContainer); + const ratingText = document.getElementById(starsContainer.id.replace("-stars-container", "-rating-text")); + if (ratingText) { + ratingText.textContent = "Rating: 0"; + } + }); + } -function submitFeedback() { +window.submitFeedback = function submitFeedback() { var feedbackInput = document.getElementById("feedback-input"); var feedback = feedbackInput.value.trim(); - + + // Check if any rating is zero + if (ratings.some(rating => rating === 0)) { + Swal.fire({ + icon: 'error', + title: 'Oops...', + text: 'Please provide a non-zero rating for all categories before submitting.', + }); + return; // Exit the function if any rating is zero + } + // Check if the feedback is empty if (feedback === "") { // Show a SweetAlert error modal @@ -65,7 +86,8 @@ function submitFeedback() { // Clear the feedback input box after the user acknowledges the success modal if (result.isConfirmed || result.isDismissed) { feedbackInput.value = ""; + resetStars(); } }); - -} \ No newline at end of file +}; +});