]> jfr.im git - irc/quakenet/qwebirc.git/blob - js/ui/panes/feedback.js
Use utf-8 for emails.
[irc/quakenet/qwebirc.git] / js / ui / panes / feedback.js
1 qwebirc.ui.FeedbackPane = new Class({
2 Implements: [Events],
3 initialize: function(parent) {
4 parent.set("html", "<div class=\"loading\">Loading. . .</div>");
5 var r = new Request.HTML({url: "feedback.html", update: parent, onSuccess: function() {
6 parent.getElement("input[class=close]").addEvent("click", function() {
7 this.fireEvent("close");
8 }.bind(this));
9 parent.getElement("input[class=close2]").addEvent("click", function() {
10 this.fireEvent("close");
11 }.bind(this));
12
13 var textbox = parent.getElement("textarea");
14 parent.getElement("input[class=submitfeedback]").addEvent("click", function() {
15 this.sendFeedback(parent, textbox, textbox.value);
16 }.bind(this));
17
18 textbox.focus();
19 }.bind(this)});
20 r.get();
21 },
22 sendFeedback: function(parent, textbox, text) {
23 text = text.replace(/^\s*/, "").replace(/\s*$/, "");
24 var mainText = parent.getElement("p[class=maintext]");
25
26 if(text.length < 25) {
27 mainText.set("text", "I don't suppose you could enter a little bit more? Thanks!");
28 textbox.focus();
29 return;
30 }
31
32 var mainBody = parent.getElement("div[class=enterarea]");
33 mainBody.setStyle("display", "none");
34
35 var messageBody = parent.getElement("div[class=messagearea]");
36 var messageText = parent.getElement("p[class=messagetext]");
37 var messageClose = parent.getElement("input[class=close2]");
38
39 messageText.set("text", "Submitting. . .");
40 messageBody.setStyle("display", "");
41
42 /* basic checksum to stop really lame kiddies spamming */
43 var checksum = 0;
44 var esctext = encodeURIComponent(text);
45 for(var i=0;i<text.length;i++)
46 checksum = ((checksum + 1) % 256) ^ (text.charCodeAt(i) % 256);
47
48 var r = new Request({url: "/feedback", onSuccess: function() {
49 messageText.set("text", "Submitted successfully, thanks for the feedback!");
50 messageClose.setStyle("display", "");
51 }, onFailure: function() {
52 messageBody.setStyle("display", "none");
53 mainBody.setStyle("display", "");
54 mainText.set("text", "Looks like something went wrong submitting :(");
55 }}).send("feedback=" + text + "&c=" + checksum);
56 }
57 });