Search improved

This commit is contained in:
Dmitriy Zaporozhets 2012-04-14 11:16:11 +03:00
parent 8dc2989665
commit 5f31989a05
4 changed files with 51 additions and 22 deletions

View file

@ -4,9 +4,11 @@ class SearchController < ApplicationController
if query.blank? if query.blank?
@projects = [] @projects = []
@merge_requests = [] @merge_requests = []
@issues = []
else else
@projects = Project.search(query).limit(10) @projects = current_user.projects.search(query).limit(10)
@merge_requests = MergeRequest.search(query).limit(10) @merge_requests = MergeRequest.where(:project_id => current_user.project_ids).search(query).limit(10)
@issues = Issue.where(:project_id => current_user.project_ids).search(query).limit(10)
end end
end end
end end

View file

@ -42,6 +42,10 @@ class Issue < ActiveRecord::Base
opened.assigned(user) opened.assigned(user)
end end
def self.search query
where("title like :query", :query => "%#{query}%")
end
def today? def today?
Date.today == created_at.to_date Date.today == created_at.to_date
end end

View file

@ -97,6 +97,10 @@ class User < ActiveRecord::Base
def cared_merge_requests def cared_merge_requests
MergeRequest.where("author_id = :id or assignee_id = :id", :id => self.id).opened MergeRequest.where("author_id = :id or assignee_id = :id", :id => self.id).opened
end end
def project_ids
projects.map(&:id)
end
end end
# == Schema Information # == Schema Information
# #

View file

@ -14,27 +14,46 @@
%small Nothing here %small Nothing here
- else - else
- if @projects.any? - if @projects.any?
- @projects.each do |project| %h4 Projects
= link_to project do .padded
%h4 - @projects.each do |project|
%span.ico.project = link_to project do
= project.name %h4
%small %span.ico.project
last activity at = project.name
= project.last_activity_date.stamp("Aug 25, 2011") %small
last activity at
= project.last_activity_date.stamp("Aug 25, 2011")
- if @merge_requests.any? - if @merge_requests.any?
- @merge_requests.each do |merge_request| %h4 Merge Requests
= link_to [merge_request.project, merge_request] do .padded
%h5 - @merge_requests.each do |merge_request|
Merge Request # = link_to [merge_request.project, merge_request] do
= merge_request.id %h5
&ndash; Merge Request #
= truncate merge_request.title, :length => 50 = merge_request.id
%small &ndash;
updated at = truncate merge_request.title, :length => 50
= merge_request.updated_at.stamp("Aug 25, 2011") %small
%strong updated at
%span.label= merge_request.project.name = merge_request.updated_at.stamp("Aug 25, 2011")
%strong
%span.label= merge_request.project.name
- if @issues.any?
%h4 Issues
.padded
- @issues.each do |issue|
= link_to [issue.project, issue] do
%h5
Issue #
= issue.id
&ndash;
= truncate issue.title, :length => 50
%small
updated at
= issue.updated_at.stamp("Aug 25, 2011")
%strong
%span.label= issue.project.name
:javascript :javascript
$(function() { $(function() {
$(".search_results").highlight("#{params[:search]}"); $(".search_results").highlight("#{params[:search]}");