]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - js/ui/panes/feedback.js
add spinner to connect dialog
[irc/quakenet/qwebirc.git] / js / ui / panes / feedback.js
index ea0224febf99f63008ed506aff57f7a770758080..5e54aa3a49ba0ea46c0f8e525eb7c5f95af8b967 100644 (file)
@@ -1,8 +1,14 @@
 qwebirc.ui.FeedbackPane = new Class({
   Implements: [Events],
   initialize: function(parent) {
-    parent.set("html", "<div class=\"loading\">Loading. . .</div>");
-    var r = new Request.HTML({url: "panes/feedback.html", update: parent, onSuccess: function() {
+    this.textboxVisible = false;
+    var delayfn = function() { parent.set("html", "<div class=\"loading\">Loading. . .</div>"); };
+    var cb = delayfn.delay(500);
+    
+    this.addEvent("select", this.onSelect);
+    
+    var r = qwebirc.ui.RequestTransformHTML({url: qwebirc.global.staticBaseURL + "panes/feedback.html", update: parent, onSuccess: function() {
+      $clear(cb);
       parent.getElement("input[class=close]").addEvent("click", function() {
         this.fireEvent("close");
       }.bind(this));
@@ -11,24 +17,32 @@ qwebirc.ui.FeedbackPane = new Class({
       }.bind(this));
       
       var textbox = parent.getElement("textarea");
+      this.textbox = textbox;
       parent.getElement("input[class=submitfeedback]").addEvent("click", function() {
         this.sendFeedback(parent, textbox, textbox.value);
       }.bind(this));
       
-      textbox.focus();
+      this.textboxVisible = true;
+      this.onSelect();
     }.bind(this)});
     r.get();
   },
+  onSelect: function() {
+    if(this.textboxVisible)
+      this.textbox.focus();
+  },
   sendFeedback: function(parent, textbox, text) {
     text = text.replace(/^\s*/, "").replace(/\s*$/, "");
     var mainText = parent.getElement("p[class=maintext]");
     
     if(text.length < 25) {
+      /* TODO: lie and throw away */
       mainText.set("text", "I don't suppose you could enter a little bit more? Thanks!");
       textbox.focus();
       return;
     }
     
+    this.textboxVisible = false;
     var mainBody = parent.getElement("div[class=enterarea]");
     mainBody.setStyle("display", "none");
     
@@ -45,13 +59,14 @@ qwebirc.ui.FeedbackPane = new Class({
     for(var i=0;i<text.length;i++)
       checksum = ((checksum + 1) % 256) ^ (text.charCodeAt(i) % 256);
 
-    var r = new Request({url: "/feedback", onSuccess: function() {
+    var r = new Request({url: qwebirc.global.dynamicBaseURL + "feedback", onSuccess: function() {
       messageText.set("text", "Submitted successfully, thanks for the feedback!");
       messageClose.setStyle("display", "");
     }, onFailure: function() {
+      this.textboxVisible = true;
       messageBody.setStyle("display", "none");
       mainBody.setStyle("display", "");
       mainText.set("text", "Looks like something went wrong submitting :(");
-    }}).send("feedback=" + text + "&c=" + checksum);
+    }.bind(this)}).send("feedback=" + text + "&c=" + checksum);
   }
 });