diff options
author | Joe Sak <joe@joesak.com> | 2011-06-15 11:02:59 -0500 |
---|---|---|
committer | Joe Sak <joe@joesak.com> | 2011-06-15 11:02:59 -0500 |
commit | b8d2bcb913827e1db612b2952e74d316669e6835 (patch) | |
tree | c417f2ec10e5e21c24ffbbc1319dbf707a3b05e9 /app/views/shared | |
parent | 687ffb62863fd036f1eb62e82a407b5a71a0e812 (diff) | |
download | refinerycms-blog-b8d2bcb913827e1db612b2952e74d316669e6835.tar.gz refinerycms-blog-b8d2bcb913827e1db612b2952e74d316669e6835.tar.bz2 refinerycms-blog-b8d2bcb913827e1db612b2952e74d316669e6835.zip |
autocomplete added for tags
Diffstat (limited to 'app/views/shared')
-rw-r--r-- | app/views/shared/admin/_autocomplete.html.erb | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/app/views/shared/admin/_autocomplete.html.erb b/app/views/shared/admin/_autocomplete.html.erb new file mode 100644 index 0000000..7a3baa1 --- /dev/null +++ b/app/views/shared/admin/_autocomplete.html.erb @@ -0,0 +1,55 @@ +<% content_for :stylesheets, stylesheet_link_tag("ui-lightness/jquery-ui-1.8.13.custom") -%> + +<% content_for :javascripts do %> + <%= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js" %> + <script> + function split( val ) { + return val.split( /,\s*/ ); + } + function extractLast( term ) { + return split( term ).pop(); + } + + + $(document).ready(function(){ + page_options.init(false, '', '') + + $('<%= dom_id %>') + .bind( "keydown", function( event ) { + if ( event.keyCode === $.ui.keyCode.TAB && + $( this ).data( "autocomplete" ).menu.active ) { + event.preventDefault() + } + }) + .autocomplete({ + source: function( request, response ) { + $.getJSON( "<%= 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; + } + }) + }); + </script> +<% end %>
\ No newline at end of file |