liquid_feedback_frontend
diff static/js/xhr.js @ 1649:4188405c2425
Rework of suggestion views
author | bsw |
---|---|
date | Thu Feb 11 15:48:02 2021 +0100 (2021-02-11) |
parents | 123eb46b4d3e |
children | 048d6bae2855 |
line diff
1.1 --- a/static/js/xhr.js Thu Feb 11 15:45:56 2021 +0100 1.2 +++ b/static/js/xhr.js Thu Feb 11 15:48:02 2021 +0100 1.3 @@ -19,16 +19,98 @@ 1.4 data.append("issue_id", issueId); 1.5 data.append("interested", interested); 1.6 1.7 - fetch(baseURL + "/interest/xhr_update", { 1.8 - method : "POST", 1.9 - body: data 1.10 - }).then( 1.11 - response => { 1.12 - if (response.status != 200) { 1.13 - window.alert("Error during update"); 1.14 - } 1.15 - } 1.16 - ); 1.17 + fetch(baseURL + "interest/xhr_update", { 1.18 + method: "POST", 1.19 + body: data 1.20 + }).then(response => { 1.21 + if (response.status != 200) { 1.22 + window.alert("Error during update"); 1.23 + } 1.24 + }); 1.25 1.26 } 1.27 1.28 +function rateSuggestion(id, degree, fulfilled) { 1.29 + document.getElementById('rating_suggestion_id').value = id; 1.30 + document.getElementById('rating_degree' + degree).MaterialRadio.check(); 1.31 + if (fulfilled) { 1.32 + document.getElementById('rating_fulfilled').MaterialRadio.check(); 1.33 + } else if (fulfilled == false) { 1.34 + document.getElementById('rating_notfulfilled').MaterialRadio.check(); 1.35 + } else { 1.36 + document.getElementById('rating_fulfilled').MaterialRadio.uncheck(); 1.37 + document.getElementById('rating_notfulfilled').MaterialRadio.uncheck(); 1.38 + } 1.39 + document.getElementById('rating_dialog').showModal(); 1.40 +} 1.41 + 1.42 +function updateOpinion() { 1.43 + var suggestionId = document.getElementById("rating_suggestion_id").value; 1.44 + 1.45 + var degree = 0; 1.46 + if (document.getElementById("rating_degree-2").children[0].checked) 1.47 + degree = -2; 1.48 + else if (document.getElementById("rating_degree-1").children[0].checked) 1.49 + degree = -1; 1.50 + else if (document.getElementById("rating_degree1").children[0].checked) 1.51 + degree = 1; 1.52 + else if (document.getElementById("rating_degree2").children[0].checked) 1.53 + degree = 2; 1.54 + var fulfilled = false; 1.55 + if (document.getElementById("rating_fulfilled").children[0].checked) 1.56 + fulfilled = true; 1.57 + if (degree == 0) 1.58 + fulfilled = null; 1.59 + var data = new FormData(); 1.60 + data.append("suggestion_id", suggestionId); 1.61 + data.append("degree", degree); 1.62 + data.append("fulfilled", fulfilled); 1.63 + 1.64 + var degreeText = rateSuggestionDegreeTexts[degree]; 1.65 + var fulfilledText = fulfilled ? rateSuggestionFulfilledText : rateSuggestionNotFulfilledText; 1.66 + var andButText; 1.67 + var icon; 1.68 + var iconColor; 1.69 + if ( 1.70 + (degree > 0 && ! fulfilled) 1.71 + || (degree < 0 && fulfilled) 1.72 + ) { 1.73 + icon = "warning"; 1.74 + if (degree == 2 || degree == -2) { 1.75 + iconColor = "red"; 1.76 + } 1.77 + andButText = rateSuggestionButText; 1.78 + } else { 1.79 + andButText = rateSuggestionAndText; 1.80 + icon = "done"; 1.81 + } 1.82 + var text = degreeText + " " + andButText + " " + fulfilledText; 1.83 + if (degree == 0) { 1.84 + text = ""; 1.85 + icon = "blank"; 1.86 + } 1.87 + document.getElementById("s" + suggestionId + "_rating_text").innerHTML = text; 1.88 + document.getElementById("s" + suggestionId + "_rating_icon").innerHTML = icon; 1.89 + if (iconColor == "red") { 1.90 + document.getElementById("s" + suggestionId + "_rating_icon").classList.add("icon-red"); 1.91 + } else { 1.92 + document.getElementById("s" + suggestionId + "_rating_icon").classList.remove("icon-red"); 1.93 + } 1.94 + if (degree == 0) { 1.95 + document.getElementById("s" + suggestionId + "_rate_button").innerHTML = rateSuggestionRateText; 1.96 + } else { 1.97 + document.getElementById("s" + suggestionId + "_rate_button").innerHTML = rateSuggestionUpdateRatingText; 1.98 + } 1.99 + document.getElementById("s" + suggestionId + "_rate_button").setAttribute("onclick", "rateSuggestion(" + suggestionId + ", " + degree + ", " + fulfilled + ");return false;") 1.100 + document.getElementById('rating_dialog').close(); 1.101 + 1.102 + fetch(baseURL + "opinion/xhr_update", { 1.103 + method: "POST", 1.104 + body: data 1.105 + }).then(response => { 1.106 + if (response.status != 200) { 1.107 + window.alert("Error during update"); 1.108 + } 1.109 + }); 1.110 + 1.111 +}