Commit 5f31989a0501c12ae609709f8707841ec3fc7e31

Authored by Dmitriy Zaporozhets
1 parent 8dc29896

Search improved

app/controllers/search_controller.rb
... ... @@ -4,9 +4,11 @@ class SearchController < ApplicationController
4 4 if query.blank?
5 5 @projects = []
6 6 @merge_requests = []
  7 + @issues = []
7 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 12 end
11 13 end
12 14 end
... ...
app/models/issue.rb
... ... @@ -42,6 +42,10 @@ class Issue < ActiveRecord::Base
42 42 opened.assigned(user)
43 43 end
44 44  
  45 + def self.search query
  46 + where("title like :query", :query => "%#{query}%")
  47 + end
  48 +
45 49 def today?
46 50 Date.today == created_at.to_date
47 51 end
... ...
app/models/user.rb
... ... @@ -97,6 +97,10 @@ class User < ActiveRecord::Base
97 97 def cared_merge_requests
98 98 MergeRequest.where("author_id = :id or assignee_id = :id", :id => self.id).opened
99 99 end
  100 +
  101 + def project_ids
  102 + projects.map(&:id)
  103 + end
100 104 end
101 105 # == Schema Information
102 106 #
... ...
app/views/search/show.html.haml
... ... @@ -14,27 +14,46 @@
14 14 %small Nothing here
15 15 - else
16 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 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 57 :javascript
39 58 $(function() {
40 59 $(".search_results").highlight("#{params[:search]}");
... ...