]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - js/util.js
better deletes and key names
[quix0rs-gnu-social.git] / js / util.js
index e68a6bab2e4e1a9c71e3be965dcd0ef6390a18aa..fe3ed74dc2d42d1d5dca52151d78fbc59e7c196f 100644 (file)
 $(document).ready(function(){
         // count character on keyup
         function counter(event){
-             if (event.keyCode == 13) {
-                  $("#status_form").submit();
-             }
-             
             var maxLength     = 140;
             var currentLength = $("#status_textarea").val().length;
             var remaining = maxLength - currentLength;
@@ -35,20 +31,68 @@ $(document).ready(function(){
                 counter.attr("class", "");
             }
         }
-     
-        $("#status_textarea").bind("keyup", counter);
-     
+
+        function submitonreturn(event) {
+             if (event.keyCode == 13) {
+                  $("#status_form").submit();
+                  event.preventDefault();
+                  event.stopPropagation();
+                  return false;
+             }
+             return true;
+        }
+
         if ($("#status_textarea").length) {
+             $("#status_textarea").bind("keyup", counter);
+             $("#status_textarea").bind("keydown", submitonreturn);
+
             // run once in case there's something in there
             counter();
+
+             // set the focus
+             $("#status_textarea").focus();
         }
+
+     // XXX: refactor this code
+
+     var favoptions = {dataType: 'xml',
+               success: function(xml) {
+                    var new_form = $('form.disfavor', xml).get(0);
+                    var dis = new_form.id;
+                    var fav = dis.replace('disfavor', 'favor');
+                    $('form#'+fav).replaceWith(new_form);
+                    $('form#'+dis).ajaxForm(disoptions).each(addAjaxHidden);
+               }};
+
+     var disoptions = {dataType: 'xml',
+               success: function(xml) {
+                    var new_form = $('form.favor', xml).get(0);
+                    var fav = new_form.id;
+                    var dis = fav.replace('favor', 'disfavor');
+                    $('form#'+dis).replaceWith(new_form);
+                    $('form#'+fav).ajaxForm(favoptions).each(addAjaxHidden);                    ;
+               }};
+
+     function addAjaxHidden() {
+          var ajax = document.createElement('input');
+          ajax.setAttribute('type', 'hidden');
+          ajax.setAttribute('name', 'ajax');
+          ajax.setAttribute('value', 1);
+          this.appendChild(ajax);
+     }
+
+     $("form.favor").ajaxForm(favoptions);
+     $("form.disfavor").ajaxForm(disoptions);
+
+     $("form.favor").each(addAjaxHidden);
+     $("form.disfavor").each(addAjaxHidden);
 });
 
 function doreply(nick) {
      rgx_username = /^[0-9a-zA-Z\-_.]*$/;
      if (nick.match(rgx_username)) {
           replyto = "@" + nick + " ";
-          if ($("#status_textarea")) {
+          if ($("#status_textarea").length) {
                $("#status_textarea").val(replyto);
                $("#status_textarea").focus();
                           return false;