Class: OmnibarController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- OmnibarController
- Defined in:
- app/controllers/omnibar_controller.rb
Instance Method Summary collapse
Methods inherited from ApplicationController
#after_sign_in_path_for, #api_authenticate!, #current_project, #expire_revision!, #followed_projects, #no_cache, #read_revision, #require_login, #return_or_cache_revision!, #revision, #save_current_project, #set_current_project, #unfurling?
Methods included from UrlHelper
#edit_release_path, #edit_release_url, #feature_path, #github_commit_range_url, #github_commit_url, #github_project_url, #github_url?, #goldmine_case_number_url, #link_to_project_feature, #new_release_url, #release_path, #release_url, #releases_path
Instance Method Details
#show ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'app/controllers/omnibar_controller.rb', line 3 def show results = [] query = params[:query] filter = [:commit, :ticket, :project] query, filter = query[1..-1], [:ticket] if query.starts_with? "#" query, filter = query[1..-1], [:commit] if query.starts_with? "@" Commit.includes(:project).where(["sha like ?", "#{query}%"]).each do |commit| results << { type: "commit", projectTitle: commit.project.name, projectColor: commit.project.color, url: "/commits/#{commit.sha}", sha: commit.sha, message: commit., committer: { name: commit.committer, email: commit.committer_email } } end if filter.member? :commit Ticket.includes(:project, :reporter).where(["number::text like ?", "#{query}%"]).each do |ticket| next unless ticket.project results << { type: "ticket", projectTitle: ticket.project.name, projectColor: ticket.project.color, url: "/projects/#{ticket.project.slug}/tickets/by_number/#{ticket.number}", number: ticket.number, summary: ticket.summary, reporter: ticket.reporter && { name: ticket.reporter.name, email: ticket.reporter.email } } end if filter.member? :ticket Project.where(["slug like ?", "#{query}%"]).each do |project| results.concat [{ type: "project", projectTitle: project.name, projectColor: project.color, title: "Scheduler", url: "/scheduler/by_project/#{project.slug}" }, { type: "project", projectTitle: project.name, projectColor: project.color, title: "Testing Report", url: "/testing_report/#{project.slug}" }, { type: "project", projectTitle: project.name, projectColor: project.color, title: "Releases", url: "/projects/#{project.slug}/releases" }, { type: "project", projectTitle: project.name, projectColor: project.color, title: "Pretickets", url: "/pretickets/by_project/#{project.slug}" }] end if filter.member? :project render json: results end |