Download newerrors from MissSqui/Static_H: direct link, hf CLI and curl.
- Browser
- Download file 7.07 kB
-
https://huggingface.co/spaces/MissSqui/Static_H/resolve/main/newerrors
- Command line
-
hf download hf://spaces/MissSqui/Static_H/newerrors
-
curl -L -o newerrors https://huggingface.co/spaces/MissSqui/Static_H/resolve/main/newerrors
7.07 kB
| // Feedback Modal POP-UP on Back Button | |
| backButton.addEventListener("click", async function(event){ | |
| console.log("Back button clicked"); | |
| event.preventDefault(); | |
| if(!currentZoneId){ | |
| console.log("no configuration selected, going back directly") | |
| window.location.href = `/notebook/?effort_id=${effortId}&user_id=${userId}`; | |
| return; | |
| } | |
| console.log("Debug BackBtn:", {userId, notebookId, currentZoneId, effortId}); | |
| try { | |
| console.log("Checking user feedback eligibility..."); | |
| // CHANGED/ADDED: Fetch eligibility data from the server | |
| const response = await fetch(`/chat_feature/user_feedback_eligibility?user_id=${userId}¬ebook_id=${notebookId}&zone_id=${currentZoneId}`); | |
| const data = await response.json(); | |
| if (data.eligible_for_feedback) { | |
| console.log("User is eligible for feedback:", data); | |
| // CHANGED/ADDED: Initialize the modal here | |
| if(data.has_feedback){ | |
| document.getElementById("feedbackLevel").value = data.rating ||""; | |
| document.getElementById("comment").value = data.comment ||""; | |
| document.getElementById("updateNotice").style.display = "block"; | |
| } | |
| else{ | |
| document.getElementById("feedbackLevel").value = data.rating ||""; | |
| document.getElementById("comment").value = data.comment ||""; | |
| document.getElementById("updateNotice").style.display = "none"; | |
| } | |
| // CHANGED/ADDED: Now modal will always be initialized and ready here | |
| console.log(bootstrapFeedbackModal); | |
| if (bootstrapFeedbackModal) { | |
| console.log("Showing feedback modal"); | |
| bootstrapFeedbackModal.show(); | |
| } else { | |
| alert("Feedback modal not initialized!"); | |
| } | |
| } else { | |
| console.log("User is not eligible for feedback:", data); | |
| window.location.href = `/notebook/?effort_id=${effortId}&user_id=${userId}`; | |
| } | |
| } catch (error) { | |
| console.error('Error checking eligibility:', error); | |
| window.location.href = `/notebook/?effort_id=${effortId}&user_id=${userId}`; | |
| } | |
| }); | |
| // Feedback Submit | |
| document.getElementById("submitFeedback").addEventListener("click", async function () { | |
| const rating = document.getElementById("feedbackLevel").value; | |
| const comment = document.getElementById("comment").value; | |
| const payload = { | |
| user_id: userId, | |
| notebook_id: parseInt(notebookId), | |
| effort_id: parseInt(effortId), | |
| zone_id: parseInt(currentZoneId), | |
| rating: rating ? parseInt(rating) : null, | |
| comment: comment | |
| }; | |
| try { | |
| const response = await fetch("/chat_feature/submit_feedback", { | |
| method: "POST", | |
| headers: { "Content-Type": "application/json" }, | |
| body: JSON.stringify(payload) | |
| }); | |
| if (response.ok) { | |
| bootstrapFeedbackModal.hide(); | |
| window.location.href = `/notebook/?effort_id=${effortId}&user_id=${userId}`; | |
| } else { | |
| alert("Error submitting feedback"); | |
| } | |
| } catch (error) { | |
| console.error("Error submitting feedback:", error); | |
| alert("Error submitting feedback"); | |
| } | |
| }); | |
| // Skip feedback | |
| document.getElementById("skipFeedback").addEventListener("click", function () { | |
| bootstrapFeedbackModal.hide(); | |
| window.location.href = `/notebook/?effort_id=${effortId}&user_id=${userId}`; | |
| }); ------ | |
| # #-------to post the feedback data------- | |
| @chat_feature_bp.route('/submit_feedback', methods=['POST']) | |
| @login_required | |
| def submit_feedback(): | |
| data = request.json | |
| print(data) | |
| feedback_payload = { | |
| "user_id": data.get("user_id"), | |
| "notebook_id": data.get("notebook_id"), | |
| "effort_id": data.get("effort_id"), | |
| "zone_id": data.get("zone_id"), | |
| "rating": data.get("rating"), | |
| "comment": data.get("comment"), | |
| } | |
| response = requests.post("http://localhost:8044/feedback/", json = feedback_payload) | |
| print("Recieved Feedback", feedback_payload) | |
| return jsonify(response.json()),response.status_code | |
| @chat_feature_bp.route("/user_feedback_eligibility", methods=["GET"]) | |
| @login_required | |
| def user_feedback_eligibility(): | |
| user_id = request.args.get("user_id") | |
| notebook_id = request.args.get("notebook_id") | |
| zone_id = request.args.get("zone_id") | |
| if not zone_id: | |
| return jsonify({"eligible_for_feedback": False}) | |
| try: | |
| notebook_response = requests.get(f"http://localhost:8044/user/get_notebook_details/{notebook_id}") | |
| notebook_response.raise_for_status() | |
| chat_data = notebook_response.json().get('chat', {}).get('message', []) | |
| eligible = len(chat_data) > 0 | |
| except Exception as e: | |
| print(f"Error fetching notebook details: {e}") | |
| return jsonify({"eligible_for_feedback": False, "error": "notebook fetch failed"}), 500 | |
| try: | |
| feedback_response = requests.get( | |
| "http://localhost:8044/feedback/", | |
| params={"user_id": user_id, "notebook_id": notebook_id, "zone_id": zone_id} | |
| ) | |
| feedback_data = feedback_response.json() if feedback_response.ok else {"exists": False} | |
| except Exception as e: | |
| print(f"Error fetching feedback: {e}") | |
| feedback_data = {"exists": False} | |
| response = { | |
| "eligible_for_feedback": eligible, | |
| "has_feedback": feedback_data.get("exists", False) | |
| } | |
| if feedback_data.get("exists"): | |
| response.update({ | |
| "rating": feedback_data.get("rating"), | |
| "comment": feedback_data.get("comment") | |
| }) | |
| print("User feedback eligibility response:", response) | |
| return jsonify(response) ---> this is flask ui python file and #created a api to call that create_feedback function------- | |
| @router.post("/feedback/") | |
| async def create_feedback_endpoint(feedback: Feedback): | |
| try: | |
| # result = create_feedback(user_id= feedback.user_id, notebook_id= feedback.notebook_id, effort_id= feedback.effort_id, rating= feedback.rating, comment= feedback.comment) | |
| create_or_update_feedback( | |
| user_id=feedback.user_id, | |
| notebook_id=feedback.notebook_id, | |
| effort_id=feedback.effort_id, | |
| zone_id=feedback.zone_id, | |
| rating=feedback.rating, | |
| comment=feedback.comment | |
| ) | |
| return {"message": "Feedback submitted successfully"} | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail="Failed to submit feedback") | |
| @router.get("/feedback/") | |
| async def get_existing_feedback(user_id: str, notebook_id: str, zone_id: str): | |
| try: | |
| feedback= get_feedback(user_id, notebook_id, zone_id) | |
| if feedback: | |
| return{"exists": True, "rating": feedback["rating"], "comment": feedback["comment"]} | |
| else: | |
| return{"exists": False} | |
| except Exception as e: | |
| raise HTTPException(status_code=500, details="Failed to fetch feedback") --> this my backend api endpoint with class #feedbackModal class | |
| class Feedback(BaseModel): | |
| user_id: str | |
| notebook_id: str | |
| effort_id: str | |
| zone_id: str | |
| #rating: Optional[str] = None | |
| rating: Optional[int] = None | |
| comment: Optional[str] = None |