pytask/static/js/create_task_form.js
changeset 423 966d3241d2b4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pytask/static/js/create_task_form.js	Sun Jan 16 17:00:37 2011 +0530
@@ -0,0 +1,49 @@
+var create_form = function (suggest_task_tags_url) {
+  $(function() {
+    function split( val ) {
+      return val.split( /,\s*/ );
+    }
+    
+    function extractLast( term ) {
+      return split( term ).pop();
+    }
+    
+    $( "#id_tags_field")
+      // don't navigate away from the field on tab when selecting an item
+      .bind( "keydown", function( event ) {
+        if ( event.keyCode === $.ui.keyCode.TAB &&
+            $( this ).data( "autocomplete" ).menu.active ) {
+          event.preventDefault();
+        }
+      })
+      .autocomplete({
+        source: function( request, response ) {
+          $.getJSON(suggest_task_tags_url, {
+            term: extractLast( request.term )
+          }, response );
+        },
+        search: function() {
+          // custom minLength
+          var term = extractLast( this.value );
+          if ( term.length < 2 ) {
+            return false;
+          }
+        },
+        focus: function() {
+          // prevent value inserted on focus
+          return false;
+        },
+        select: function( event, ui ) {
+          var terms = split( this.value );
+          // remove the current input
+          terms.pop();
+          // add the selected item
+          terms.push( ui.item.value );
+          // add placeholder to get the comma-and-space at the end
+          terms.push( "" );
+          this.value = terms.join( ", " );
+          return false;
+        }
+      });
+  });
+}
\ No newline at end of file