Commit 5f31989a0501c12ae609709f8707841ec3fc7e31

Authored by Dmitriy Zaporozhets
1 parent 8dc29896

Search improved

app/controllers/search_controller.rb
@@ -4,9 +4,11 @@ class SearchController < ApplicationController @@ -4,9 +4,11 @@ class SearchController < ApplicationController
4 if query.blank? 4 if query.blank?
5 @projects = [] 5 @projects = []
6 @merge_requests = [] 6 @merge_requests = []
  7 + @issues = []
7 else 8 else
8 - @projects = Project.search(query).limit(10)  
9 - @merge_requests = MergeRequest.search(query).limit(10) 9 + @projects = current_user.projects.search(query).limit(10)
  10 + @merge_requests = MergeRequest.where(:project_id => current_user.project_ids).search(query).limit(10)
  11 + @issues = Issue.where(:project_id => current_user.project_ids).search(query).limit(10)
10 end 12 end
11 end 13 end
12 end 14 end
app/models/issue.rb
@@ -42,6 +42,10 @@ class Issue < ActiveRecord::Base @@ -42,6 +42,10 @@ class Issue < ActiveRecord::Base
42 opened.assigned(user) 42 opened.assigned(user)
43 end 43 end
44 44
  45 + def self.search query
  46 + where("title like :query", :query => "%#{query}%")
  47 + end
  48 +
45 def today? 49 def today?
46 Date.today == created_at.to_date 50 Date.today == created_at.to_date
47 end 51 end
app/models/user.rb
@@ -97,6 +97,10 @@ class User < ActiveRecord::Base @@ -97,6 +97,10 @@ class User < ActiveRecord::Base
97 def cared_merge_requests 97 def cared_merge_requests
98 MergeRequest.where("author_id = :id or assignee_id = :id", :id => self.id).opened 98 MergeRequest.where("author_id = :id or assignee_id = :id", :id => self.id).opened
99 end 99 end
  100 +
  101 + def project_ids
  102 + projects.map(&:id)
  103 + end
100 end 104 end
101 # == Schema Information 105 # == Schema Information
102 # 106 #
app/views/search/show.html.haml
@@ -14,27 +14,46 @@ @@ -14,27 +14,46 @@
14 %small Nothing here 14 %small Nothing here
15 - else 15 - else
16 - if @projects.any? 16 - if @projects.any?
17 - - @projects.each do |project|  
18 - = link_to project do  
19 - %h4  
20 - %span.ico.project  
21 - = project.name  
22 - %small  
23 - last activity at  
24 - = project.last_activity_date.stamp("Aug 25, 2011") 17 + %h4 Projects
  18 + .padded
  19 + - @projects.each do |project|
  20 + = link_to project do
  21 + %h4
  22 + %span.ico.project
  23 + = project.name
  24 + %small
  25 + last activity at
  26 + = project.last_activity_date.stamp("Aug 25, 2011")
25 - if @merge_requests.any? 27 - if @merge_requests.any?
26 - - @merge_requests.each do |merge_request|  
27 - = link_to [merge_request.project, merge_request] do  
28 - %h5  
29 - Merge Request #  
30 - = merge_request.id  
31 - –  
32 - = truncate merge_request.title, :length => 50  
33 - %small  
34 - updated at  
35 - = merge_request.updated_at.stamp("Aug 25, 2011")  
36 - %strong  
37 - %span.label= merge_request.project.name 28 + %h4 Merge Requests
  29 + .padded
  30 + - @merge_requests.each do |merge_request|
  31 + = link_to [merge_request.project, merge_request] do
  32 + %h5
  33 + Merge Request #
  34 + = merge_request.id
  35 + –
  36 + = truncate merge_request.title, :length => 50
  37 + %small
  38 + updated at
  39 + = merge_request.updated_at.stamp("Aug 25, 2011")
  40 + %strong
  41 + %span.label= merge_request.project.name
  42 + - if @issues.any?
  43 + %h4 Issues
  44 + .padded
  45 + - @issues.each do |issue|
  46 + = link_to [issue.project, issue] do
  47 + %h5
  48 + Issue #
  49 + = issue.id
  50 + –
  51 + = truncate issue.title, :length => 50
  52 + %small
  53 + updated at
  54 + = issue.updated_at.stamp("Aug 25, 2011")
  55 + %strong
  56 + %span.label= issue.project.name
38 :javascript 57 :javascript
39 $(function() { 58 $(function() {
40 $(".search_results").highlight("#{params[:search]}"); 59 $(".search_results").highlight("#{params[:search]}");