feat: Add global message search (#1385)

* feat: Search messages by content

* Fix search UI

* Add specs

* chore: Filter search results

* Update highlight logic

* Rename query to searchTerm

Co-authored-by: Sojan <sojan@pepalo.com>
This commit is contained in:
Pranav Raj S
2020-11-08 01:46:45 +05:30
committed by GitHub
parent 22683cae66
commit 7718cf7d2c
15 changed files with 399 additions and 30 deletions

View File

@@ -25,7 +25,7 @@ class ConversationFinder
set_assignee_type
find_all_conversations
filter_by_status
filter_by_status unless params[:q]
filter_by_labels if params[:labels]
filter_by_query if params[:q]
@@ -78,9 +78,11 @@ class ConversationFinder
end
def filter_by_query
@conversations = @conversations.joins(:messages).where('messages.content LIKE :search',
search: "%#{params[:q]}%").includes(:messages).where('messages.content LIKE :search',
search: "%#{params[:q]}%")
allowed_message_types = [Message.message_types[:incoming], Message.message_types[:outgoing]]
@conversations = conversations.joins(:messages).where('messages.content ILIKE :search', search: "%#{params[:q]}%")
.where(messages: { message_type: allowed_message_types }).includes(:messages)
.where('messages.content ILIKE :search', search: "%#{params[:q]}%")
.where(messages: { message_type: allowed_message_types })
end
def filter_by_status