From ec22f95136f1f80e7b30d4ab856eff4d06b4888e Mon Sep 17 00:00:00 2001 From: albert Date: Sat, 14 Jan 2012 14:58:33 -0500 Subject: [PATCH] fixes #257 --- app/models/dmail.rb | 3 +++ app/models/user.rb | 1 + app/views/dmails/search.html.erb | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/models/dmail.rb b/app/models/dmail.rb index 09bbce22e..59695bd04 100644 --- a/app/models/dmail.rb +++ b/app/models/dmail.rb @@ -18,6 +18,9 @@ class Dmail < ActiveRecord::Base scope :search_message, lambda {|query| where(["message_index @@ plainto_tsquery(?)", query])} scope :unread, where("is_read = false and is_deleted = false") scope :visible, lambda {where("(to_id = ? or from_id = ?)", CurrentUser.id, CurrentUser.id)} + scope :to_name_matches, lambda {|name| where("to_id = (select _.id from users _ where lower(_.name) = ?)", name.downcase)} + scope :from_name_matches, lambda {|name| where("from_id = (select _.id from users _ where lower(_.name) = ?)", name.downcase)} + search_method :to_name_matches, :from_name_matches module AddressMethods def to_name diff --git a/app/models/user.rb b/app/models/user.rb index a578287af..31dec8bb8 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -43,6 +43,7 @@ class User < ActiveRecord::Base scope :admins, where("is_admin = TRUE") scope :with_email, lambda {|email| email.blank? ? where("FALSE") : where(["email = ?", email])} scope :find_for_password_reset, lambda {|name, email| email.blank? ? where("FALSE") : where(["name = ? AND email = ?", name, email])} + search_method :named module BanMethods def validate_ip_addr_is_not_banned diff --git a/app/views/dmails/search.html.erb b/app/views/dmails/search.html.erb index cbbd89b6b..941c89e58 100644 --- a/app/views/dmails/search.html.erb +++ b/app/views/dmails/search.html.erb @@ -5,8 +5,8 @@ <%= hidden_field_tag :folder, params[:folder] %> <%= f.input :title_contains, :required => false, :label => "Title" %> <%= f.input :body_contains, :required => false, :label => "Body" %> - <%= f.input :to_name_equals, :required => false, :label => "To" %> - <%= f.input :from_name_equals, :required => false, :label => "From" %> + <%= f.input :to_name_matches, :required => false, :label => "To" %> + <%= f.input :from_name_matches, :required => false, :label => "From" %> <%= f.button :submit, "Search" %> <% end %>