Commit 5f31989a0501c12ae609709f8707841ec3fc7e31
1 parent
8dc29896
Exists in
master
and in
4 other branches
Search improved
Showing
4 changed files
with
51 additions
and
22 deletions
Show diff stats
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]}"); |