| rev | line source | 
| bsw@1619 | 1 function toggleInterest(issueId) { | 
| bsw@1619 | 2   var linkEl = document.getElementById("issue_" + issueId + "_interest_link"); | 
| bsw@1619 | 3   var iconEl = document.getElementById("issue_" + issueId + "_interest_icon"); | 
| bsw@1618 | 4   var interested = iconEl.innerHTML == "star_outline"; | 
| bsw@1619 | 5 | 
| bsw@1619 | 6   if (interested) { | 
| bsw@1619 | 7     linkEl.classList.add("mdl-button--accent"); | 
| bsw@1619 | 8     linkEl.classList.add("mdl-button--feature-on"); | 
| bsw@1619 | 9     linkEl.classList.remove("mdl-button--feature-off"); | 
| bsw@1619 | 10     iconEl.innerHTML = "star"; | 
| bsw@1619 | 11   } else { | 
| bsw@1619 | 12     linkEl.classList.remove("mdl-button--accent"); | 
| bsw@1619 | 13     linkEl.classList.remove("mdl-button--feature-on"); | 
| bsw@1619 | 14     linkEl.classList.add("mdl-button--feature-off"); | 
| bsw@1619 | 15     iconEl.innerHTML = "star_outline"; | 
| bsw@1619 | 16   } | 
| bsw@1618 | 17 | 
| bsw@1618 | 18   var data = new FormData(); | 
| bsw@1619 | 19   data.append("issue_id", issueId); | 
| bsw@1618 | 20   data.append("interested", interested); | 
| bsw@1618 | 21 | 
| bsw@1649 | 22   fetch(baseURL + "interest/xhr_update", { | 
| bsw@1649 | 23     method: "POST", | 
| bsw@1649 | 24     body: data | 
| bsw@1649 | 25   }).then(response => { | 
| bsw@1649 | 26     if (response.status != 200) { | 
| bsw@1649 | 27       window.alert("Error during update"); | 
| bsw@1649 | 28     } | 
| bsw@1649 | 29   }); | 
| bsw@1618 | 30 | 
| bsw@1618 | 31 } | 
| bsw@1618 | 32 | 
| bsw@1649 | 33 function rateSuggestion(id, degree, fulfilled) { | 
| bsw@1649 | 34   document.getElementById('rating_suggestion_id').value = id; | 
| bsw@1649 | 35   document.getElementById('rating_degree' + degree).MaterialRadio.check(); | 
| bsw@1649 | 36   if (fulfilled) { | 
| bsw@1649 | 37     document.getElementById('rating_fulfilled').MaterialRadio.check(); | 
| bsw@1649 | 38   } else if (fulfilled == false) { | 
| bsw@1649 | 39     document.getElementById('rating_notfulfilled').MaterialRadio.check(); | 
| bsw@1649 | 40   } else { | 
| bsw@1649 | 41     document.getElementById('rating_fulfilled').MaterialRadio.uncheck(); | 
| bsw@1649 | 42     document.getElementById('rating_notfulfilled').MaterialRadio.uncheck(); | 
| bsw@1649 | 43   } | 
| bsw@1762 | 44 //  document.getElementById('rating_dialog').showModal(); | 
| bsw@1762 | 45   document.getElementById('rating_dialog').classList.remove("hidden"); | 
| bsw@1762 | 46 | 
| bsw@1649 | 47 } | 
| bsw@1649 | 48 | 
| bsw@1649 | 49 function updateOpinion() { | 
| bsw@1649 | 50   var suggestionId = document.getElementById("rating_suggestion_id").value; | 
| bsw@1649 | 51 | 
| bsw@1649 | 52   var degree = 0; | 
| bsw@1649 | 53   if (document.getElementById("rating_degree-2").children[0].checked) | 
| bsw@1649 | 54     degree = -2; | 
| bsw@1649 | 55   else if (document.getElementById("rating_degree-1").children[0].checked) | 
| bsw@1649 | 56     degree = -1; | 
| bsw@1649 | 57   else if (document.getElementById("rating_degree1").children[0].checked) | 
| bsw@1649 | 58     degree = 1; | 
| bsw@1649 | 59   else if (document.getElementById("rating_degree2").children[0].checked) | 
| bsw@1649 | 60     degree = 2; | 
| bsw@1649 | 61   var fulfilled = false; | 
| bsw@1649 | 62   if (document.getElementById("rating_fulfilled").children[0].checked) | 
| bsw@1649 | 63     fulfilled = true; | 
| bsw@1649 | 64   if (degree == 0) | 
| bsw@1649 | 65     fulfilled = null; | 
| bsw@1649 | 66   var data = new FormData(); | 
| bsw@1649 | 67   data.append("suggestion_id", suggestionId); | 
| bsw@1649 | 68   data.append("degree", degree); | 
| bsw@1649 | 69   data.append("fulfilled", fulfilled); | 
| bsw@1649 | 70 | 
| bsw@1649 | 71   var degreeText = rateSuggestionDegreeTexts[degree]; | 
| bsw@1649 | 72   var fulfilledText = fulfilled ? rateSuggestionFulfilledText : rateSuggestionNotFulfilledText; | 
| bsw@1649 | 73   var andButText; | 
| bsw@1649 | 74   var icon; | 
| bsw@1649 | 75   var iconColor; | 
| bsw@1649 | 76   if ( | 
| bsw@1649 | 77     (degree > 0 && ! fulfilled) | 
| bsw@1649 | 78     || (degree < 0 && fulfilled) | 
| bsw@1649 | 79   ) { | 
| bsw@1649 | 80     icon = "warning"; | 
| bsw@1649 | 81     if (degree == 2 || degree == -2) { | 
| bsw@1649 | 82       iconColor = "red"; | 
| bsw@1649 | 83     } | 
| bsw@1649 | 84     andButText = rateSuggestionButText; | 
| bsw@1649 | 85   } else { | 
| bsw@1649 | 86     andButText = rateSuggestionAndText; | 
| bsw@1649 | 87     icon = "done"; | 
| bsw@1649 | 88   } | 
| bsw@1649 | 89   var text = degreeText + " " + andButText + " " + fulfilledText; | 
| bsw@1649 | 90   if (degree == 0) { | 
| bsw@1649 | 91     text = ""; | 
| bsw@1649 | 92     icon = "blank"; | 
| bsw@1649 | 93   } | 
| bsw@1649 | 94   document.getElementById("s" + suggestionId + "_rating_text").innerHTML = text; | 
| bsw@1649 | 95   document.getElementById("s" + suggestionId + "_rating_icon").innerHTML = icon; | 
| bsw@1649 | 96   if (iconColor == "red") { | 
| bsw@1649 | 97     document.getElementById("s" + suggestionId + "_rating_icon").classList.add("icon-red"); | 
| bsw@1649 | 98   } else { | 
| bsw@1649 | 99     document.getElementById("s" + suggestionId + "_rating_icon").classList.remove("icon-red"); | 
| bsw@1649 | 100   } | 
| bsw@1649 | 101   if (degree == 0) { | 
| bsw@1649 | 102     document.getElementById("s" + suggestionId + "_rate_button").innerHTML = rateSuggestionRateText; | 
| bsw@1649 | 103   } else { | 
| bsw@1649 | 104     document.getElementById("s" + suggestionId + "_rate_button").innerHTML = rateSuggestionUpdateRatingText; | 
| bsw@1649 | 105   } | 
| bsw@1649 | 106   document.getElementById("s" + suggestionId + "_rate_button").setAttribute("onclick", "rateSuggestion(" + suggestionId + ", " + degree + ", " + fulfilled + ");return false;") | 
| bsw@1762 | 107 //  document.getElementById('rating_dialog').close(); | 
| bsw@1762 | 108   document.getElementById('rating_dialog').classList.add("hidden"); | 
| bsw@1649 | 109 | 
| bsw@1649 | 110   fetch(baseURL + "opinion/xhr_update", { | 
| bsw@1649 | 111     method: "POST", | 
| bsw@1649 | 112     body: data | 
| bsw@1649 | 113   }).then(response => { | 
| bsw@1649 | 114     if (response.status != 200) { | 
| bsw@1649 | 115       window.alert("Error during update"); | 
| bsw@1649 | 116     } | 
| bsw@1649 | 117   }); | 
| bsw@1649 | 118 | 
| bsw@1649 | 119 } |