aboutsummaryrefslogtreecommitdiffstats
path: root/app/views/shared
diff options
context:
space:
mode:
authorJoe Sak <joe@joesak.com>2011-06-15 11:02:59 -0500
committerJoe Sak <joe@joesak.com>2011-06-15 11:02:59 -0500
commitb8d2bcb913827e1db612b2952e74d316669e6835 (patch)
treec417f2ec10e5e21c24ffbbc1319dbf707a3b05e9 /app/views/shared
parent687ffb62863fd036f1eb62e82a407b5a71a0e812 (diff)
downloadrefinerycms-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.erb55
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