From 51ba799f98113b7112f2968fc80e4d291924b3bf Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 26 Nov 2012 16:34:46 +0100 Subject: basic users index with typeahead search --- users/app/assets/javascripts/users.js.coffee | 4 ++++ users/app/controllers/users_controller.rb | 8 +++++++- users/app/models/user.rb | 1 + users/app/views/users/index.html.haml | 18 +++++++++++++++++- 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/users/app/assets/javascripts/users.js.coffee b/users/app/assets/javascripts/users.js.coffee index f0bb3dd..61d4121 100644 --- a/users/app/assets/javascripts/users.js.coffee +++ b/users/app/assets/javascripts/users.js.coffee @@ -21,6 +21,9 @@ srp.error = (message) -> else alert(message) +pollUsers = (query, process) -> + $.get( "/users.json", query: query).done(process); + $(document).ready -> $('#new_user').submit preventDefault $('#new_user').submit srp.signup @@ -28,4 +31,5 @@ $(document).ready -> $('#new_session').submit srp.login $('.user.form.edit').submit srp.update $('.user.form.edit').submit preventDefault + $('.user.typeahead').typeahead({source: pollUsers}); diff --git a/users/app/controllers/users_controller.rb b/users/app/controllers/users_controller.rb index 4912ac8..09199f0 100644 --- a/users/app/controllers/users_controller.rb +++ b/users/app/controllers/users_controller.rb @@ -8,7 +8,13 @@ class UsersController < ApplicationController respond_to :json, :html def index - @users = User.all + if params[:query] + @users = User.by_login.startkey(params[:query]).endkey(params[:query].succ) + else + @users = User.by_created_at.descending + end + @users = @users.limit(5) + respond_with @users.map(&:login).sort end def new diff --git a/users/app/models/user.rb b/users/app/models/user.rb index 39d079a..325c981 100644 --- a/users/app/models/user.rb +++ b/users/app/models/user.rb @@ -27,6 +27,7 @@ class User < CouchRest::Model::Base design do view :by_login + view :by_created_at end class << self diff --git a/users/app/views/users/index.html.haml b/users/app/views/users/index.html.haml index 7db6038..65e99af 100644 --- a/users/app/views/users/index.html.haml +++ b/users/app/views/users/index.html.haml @@ -1 +1,17 @@ -%h1= User.model_name.human(:count =>@users.count) +.page-header + %h1= User.model_name.human(:count =>User.count) +.row + .span8 + %h2 Last users who signed up + %table.table.table-hover + %tr + %th Login + %th Created + %th Action + = render @users.all + .span4 + %h4 Find user + %form.form-search + .input-append + %input.user.typeahead.span2.search-query{:type => :text} + %button.btn{:type => :submit} Search -- cgit v1.2.3 From 9afcef0648f34435f40644242e038cafb1dce117 Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 26 Nov 2012 16:39:44 +0100 Subject: hide buttons in table-hover unless hovered over tr --- app/assets/stylesheets/application.scss | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 3465431..8dec07d 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -3,3 +3,12 @@ body { padding: 40px; } @import "bootstrap-responsive"; + + +table.table-hover .btn { + opacity: 0; +} + +table.table-hover tr:hover .btn { + opacity: 1; +} -- cgit v1.2.3 From a941c89293bcbb067c6152b63765ead38a484b81 Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 26 Nov 2012 18:06:21 +0100 Subject: basic typeahead and user querying working --- users/app/assets/javascripts/users.js.coffee | 2 +- users/app/controllers/users_controller.rb | 2 +- users/app/views/users/index.html.haml | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/users/app/assets/javascripts/users.js.coffee b/users/app/assets/javascripts/users.js.coffee index 61d4121..76a6d79 100644 --- a/users/app/assets/javascripts/users.js.coffee +++ b/users/app/assets/javascripts/users.js.coffee @@ -22,7 +22,7 @@ srp.error = (message) -> alert(message) pollUsers = (query, process) -> - $.get( "/users.json", query: query).done(process); + $.get( "/users.json", query: query).done(process) $(document).ready -> $('#new_user').submit preventDefault diff --git a/users/app/controllers/users_controller.rb b/users/app/controllers/users_controller.rb index 09199f0..925b584 100644 --- a/users/app/controllers/users_controller.rb +++ b/users/app/controllers/users_controller.rb @@ -13,7 +13,7 @@ class UsersController < ApplicationController else @users = User.by_created_at.descending end - @users = @users.limit(5) + @users = @users.limit(10) respond_with @users.map(&:login).sort end diff --git a/users/app/views/users/index.html.haml b/users/app/views/users/index.html.haml index 65e99af..9e6a179 100644 --- a/users/app/views/users/index.html.haml +++ b/users/app/views/users/index.html.haml @@ -2,7 +2,7 @@ %h1= User.model_name.human(:count =>User.count) .row .span8 - %h2 Last users who signed up + %h2= params[:query] ? "Users starting with '#{params[:query]}'" : "Last users who signed up" %table.table.table-hover %tr %th Login @@ -11,7 +11,7 @@ = render @users.all .span4 %h4 Find user - %form.form-search + = form_tag users_path, :method => :get, :class => "form-search" do .input-append - %input.user.typeahead.span2.search-query{:type => :text} - %button.btn{:type => :submit} Search + = text_field_tag :query, "", :class => "user typeahead span2 search-query", :autocomplete => :off + %button.btn{:type => :submit} Search -- cgit v1.2.3