From a636ceec7f58b827a0c925284c52768d17787f71 Mon Sep 17 00:00:00 2001 From: danielvincent <danielgrippi@gmail.com> Date: Wed, 16 Feb 2011 12:41:45 -0500 Subject: [PATCH] search does not wildcard on both sides of search term; is less dumb. --- app/models/person.rb | 2 +- public/stylesheets/sass/application.sass | 8 ++-- spec/models/person_spec.rb | 53 ++++++++++++++++++++---- 3 files changed, 50 insertions(+), 13 deletions(-) diff --git a/app/models/person.rb b/app/models/person.rb index 19bfbac4ea..510361a599 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -55,7 +55,7 @@ class Person < ActiveRecord::Base query_tokens = query.to_s.strip.split(" ") query_tokens.each_with_index do |raw_token, i| - token = "%#{raw_token}%" + token = "#{raw_token}%" up_token = "#{raw_token.titleize}%" sql << " OR " unless i == 0 sql << where_clause diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass index fae867c44a..e226ed7326 100644 --- a/public/stylesheets/sass/application.sass +++ b/public/stylesheets/sass/application.sass @@ -1121,7 +1121,7 @@ ul#aspect_nav input :display inline - :background-color #888 + :background-color #ccc :border :top 1px solid #111 @@ -1135,15 +1135,15 @@ ul#aspect_nav :border 1px solid #000 &:hover - :background-color #ccc + :background-color #eee &.active - :background-color #eee + :background-color #fafafa input[type='search'] :width 250px - :padding 4px + :padding 3px .aspect diff --git a/spec/models/person_spec.rb b/spec/models/person_spec.rb index 0a80469f41..ebf8ed23ec 100644 --- a/spec/models/person_spec.rb +++ b/spec/models/person_spec.rb @@ -163,28 +163,40 @@ describe Person do @yevgeniy_dodis = Factory.create(:searchable_person) @casey_grippi = Factory.create(:searchable_person) - @robert_grimm.profile.first_name = "Roberting" + @robert_grimm.profile.first_name = "Robert" @robert_grimm.profile.last_name = "Grimm" @robert_grimm.profile.save @robert_grimm.reload - @eugene_weinstein.profile.first_name = "Eugeneing" + @eugene_weinstein.profile.first_name = "Eugene" @eugene_weinstein.profile.last_name = "Weinstein" @eugene_weinstein.profile.save @eugene_weinstein.reload - @yevgeniy_dodis.profile.first_name = "Yevgeniying" + @yevgeniy_dodis.profile.first_name = "Yevgeniy" @yevgeniy_dodis.profile.last_name = "Dodis" @yevgeniy_dodis.profile.save @yevgeniy_dodis.reload - @casey_grippi.profile.first_name = "Caseying" + @casey_grippi.profile.first_name = "Casey" @casey_grippi.profile.last_name = "Grippi" @casey_grippi.profile.save @casey_grippi.reload end it 'is ordered by last name' do - people = Person.search("ing", @user) + @robert_grimm.profile.first_name = "AAA" + @robert_grimm.profile.save + + @eugene_weinstein.profile.first_name = "AAA" + @eugene_weinstein.profile.save + + @yevgeniy_dodis.profile.first_name = "AAA" + @yevgeniy_dodis.profile.save + + @casey_grippi.profile.first_name = "AAA" + @casey_grippi.profile.save + + people = Person.search("AAA", @user) people.map{|p| p.name}.should == [@yevgeniy_dodis, @robert_grimm, @casey_grippi, @eugene_weinstein].map{|p|p.name} end @@ -231,19 +243,44 @@ describe Person do end it "puts the searching user's contacts first" do + @robert_grimm.profile.first_name = "AAA" + @robert_grimm.profile.save + + @eugene_weinstein.profile.first_name = "AAA" + @eugene_weinstein.profile.save + + @yevgeniy_dodis.profile.first_name = "AAA" + @yevgeniy_dodis.profile.save + + @casey_grippi.profile.first_name = "AAA" + @casey_grippi.profile.save + @user.activate_contact(@casey_grippi, @user.aspects.first) - people = Person.search("ing", @user) + + people = Person.search("AAA", @user) people.map{|p| p.name}.should == [@casey_grippi, @yevgeniy_dodis, @robert_grimm, @eugene_weinstein].map{|p|p.name} end it "puts the searching user's incoming requests first" do requestor = Factory(:user_with_aspect) profile = requestor.person.profile - profile.first_name = "Requesting" + profile.first_name = "AAA" profile.last_name = "Something" profile.save + @robert_grimm.profile.first_name = "AAA" + @robert_grimm.profile.save + + @eugene_weinstein.profile.first_name = "AAA" + @eugene_weinstein.profile.save + + @yevgeniy_dodis.profile.first_name = "AAA" + @yevgeniy_dodis.profile.save + + @casey_grippi.profile.first_name = "AAA" + @casey_grippi.profile.save + requestor.send_contact_request_to(@user.person, requestor.aspects.first) - people = Person.search("ing", @user) + people = Person.search("AAA", @user) people.map{|p| p.name}.should == [requestor.person, @yevgeniy_dodis, @robert_grimm, @casey_grippi, @eugene_weinstein].map{|p|p.name} end end -- GitLab