Added a quick search form in page header. Search functionality moved to a dedicated controller.
When used: * outside of a project: searches projects * inside a project: searches issues, changesets, news, documents and wiki pages of the current project If an issue number is given, user is redirected to the corresponding issue. git-svn-id: http://redmine.rubyforge.org/svn/trunk@489 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -27,9 +27,13 @@
|
||||
<h2><%= Setting.app_subtitle %></h2>
|
||||
</div>
|
||||
<div style="float: right; padding-right: 1em; padding-top: 0.2em;">
|
||||
<% if loggedin? %><small><%=l(:label_logged_as)%> <b><%= @logged_in_user.login %></b></small><% end %>
|
||||
<% if loggedin? %><small><%=l(:label_logged_as)%> <strong><%= @logged_in_user.login %></strong> -</small><% end %>
|
||||
<small><%= toggle_link 'Search', 'quick-search-form', :focus => 'quick-search-input' %></small>
|
||||
<% form_tag({:controller => 'search', :action => 'index', :id => @project}, :method => :get, :id => 'quick-search-form', :style => "display:none;" ) do %>
|
||||
<%= text_field_tag 'q', @question, :size => 15, :class => 'small', :id => 'quick-search-input' %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="navigation">
|
||||
<ul>
|
||||
@@ -56,6 +60,12 @@
|
||||
<% else %>
|
||||
<li class="right"><%= link_to l(:label_login), { :controller => 'account', :action => 'login' }, :class => "icon icon-user" %></li>
|
||||
<% end %>
|
||||
|
||||
<% unless @project.nil? || @project.id.nil? %>
|
||||
<li class="right" style="padding-right:0.8em;">
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -76,7 +86,7 @@
|
||||
<%= link_to l(:label_document_plural), {:controller => 'projects', :action => 'list_documents', :id => @project }, :class => "menuItem" %>
|
||||
<%= link_to l(:label_wiki), {:controller => 'wiki', :id => @project, :page => nil }, :class => "menuItem" if @project.wiki and !@project.wiki.new_record? %>
|
||||
<%= link_to l(:label_attachment_plural), {:controller => 'projects', :action => 'list_files', :id => @project }, :class => "menuItem" %>
|
||||
<%= link_to l(:label_search), {:controller => 'projects', :action => 'search', :id => @project }, :class => "menuItem" %>
|
||||
<%= link_to l(:label_search), {:controller => 'search', :action => 'index', :id => @project }, :class => "menuItem" %>
|
||||
<%= link_to l(:label_repository), {:controller => 'repositories', :action => 'show', :id => @project}, :class => "menuItem" if @project.repository and !@project.repository.new_record? %>
|
||||
<%= link_to_if_authorized l(:label_settings), {:controller => 'projects', :action => 'settings', :id => @project }, :class => "menuItem" %>
|
||||
</div>
|
||||
@@ -100,7 +110,7 @@
|
||||
<li><%= link_to l(:label_document_plural), :controller => 'projects', :action => 'list_documents', :id => @project %></li>
|
||||
<%= content_tag("li", link_to(l(:label_wiki), :controller => 'wiki', :id => @project, :page => nil)) if @project.wiki and !@project.wiki.new_record? %>
|
||||
<li><%= link_to l(:label_attachment_plural), :controller => 'projects', :action => 'list_files', :id => @project %></li>
|
||||
<li><%= link_to l(:label_search), :controller => 'projects', :action => 'search', :id => @project %></li>
|
||||
<li><%= link_to l(:label_search), :controller => 'search', :action => 'index', :id => @project %></li>
|
||||
<%= content_tag("li", link_to(l(:label_repository), :controller => 'repositories', :action => 'show', :id => @project)) if @project.repository and !@project.repository.new_record? %>
|
||||
<li><%= link_to_if_authorized l(:label_settings), :controller => 'projects', :action => 'settings', :id => @project %></li>
|
||||
</ul>
|
||||
|
||||
@@ -1,50 +1,58 @@
|
||||
<h2><%= l(:label_search) %></h2>
|
||||
|
||||
<div class="box">
|
||||
<% form_tag({:action => 'search', :id => @project}, :method => :get) do %>
|
||||
<p><%= text_field_tag 'q', @question, :size => 30 %>
|
||||
<%= check_box_tag 'scope[]', 'issues', (@scope.include? 'issues') %> <label><%= l(:label_issue_plural) %></label>
|
||||
<% if @project.repository %>
|
||||
<%= check_box_tag 'scope[]', 'changesets', (@scope.include? 'changesets') %> <label><%= l(:label_revision_plural) %></label>
|
||||
<% end %>
|
||||
<%= check_box_tag 'scope[]', 'news', (@scope.include? 'news') %> <label><%= l(:label_news_plural) %></label>
|
||||
<%= check_box_tag 'scope[]', 'documents', (@scope.include? 'documents') %> <label><%= l(:label_document_plural) %></label>
|
||||
<% if @project.wiki %>
|
||||
<%= check_box_tag 'scope[]', 'wiki', (@scope.include? 'wiki') %> <label><%= l(:label_wiki) %></label>
|
||||
<% end %>
|
||||
<br />
|
||||
<%= check_box_tag 'all_words', 1, @all_words %> <%= l(:label_all_words) %></p>
|
||||
<%= submit_tag l(:button_submit), :name => 'submit' %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<% if @results %>
|
||||
<h3><%= lwr(:label_result, @results.length) %></h3>
|
||||
<ul>
|
||||
<% @results.each do |e| %>
|
||||
<li><p>
|
||||
<% if e.is_a? Issue %>
|
||||
<%= link_to_issue e %>: <%= highlight_tokens(h(e.subject), @tokens) %><br />
|
||||
<%= highlight_tokens(e.description, @tokens) %><br />
|
||||
<i><%= e.author.name %>, <%= format_time(e.created_on) %></i>
|
||||
<% elsif e.is_a? News %>
|
||||
<%=l(:label_news)%>: <%= link_to highlight_tokens(h(e.title), @tokens), :controller => 'news', :action => 'show', :id => e %><br />
|
||||
<%= highlight_tokens(e.description, @tokens) %><br />
|
||||
<i><%= e.author.name %>, <%= format_time(e.created_on) %></i>
|
||||
<% elsif e.is_a? Document %>
|
||||
<%=l(:label_document)%>: <%= link_to highlight_tokens(h(e.title), @tokens), :controller => 'documents', :action => 'show', :id => e %><br />
|
||||
<%= highlight_tokens(e.description, @tokens) %><br />
|
||||
<i><%= format_time(e.created_on) %></i>
|
||||
<% elsif e.is_a? WikiPage %>
|
||||
<%=l(:label_wiki)%>: <%= link_to highlight_tokens(h(e.pretty_title), @tokens), :controller => 'wiki', :action => 'index', :id => @project, :page => e.title %><br />
|
||||
<%= highlight_tokens(e.content.text, @tokens) %><br />
|
||||
<i><%= e.content.author ? e.content.author.name : "Anonymous" %>, <%= format_time(e.content.updated_on) %></i>
|
||||
<% elsif e.is_a? Changeset %>
|
||||
<%=l(:label_revision)%> <%= link_to h(e.revision), :controller => 'repositories', :action => 'revision', :id => @project, :rev => e.revision %><br />
|
||||
<%= highlight_tokens(e.comments, @tokens) %><br />
|
||||
<em><%= e.committer.blank? ? e.committer : "Anonymous" %>, <%= format_time(e.committed_on) %></em>
|
||||
<% end %>
|
||||
</p></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<h2><%= l(:label_search) %></h2>
|
||||
|
||||
<div class="box">
|
||||
<% form_tag({}, :method => :get) do %>
|
||||
<p><%= text_field_tag 'q', @question, :size => 30 %>
|
||||
|
||||
<% if @project %>
|
||||
<%= check_box_tag 'scope[]', 'issues', (@scope.include? 'issues') %> <label><%= l(:label_issue_plural) %></label>
|
||||
<% if @project.repository %>
|
||||
<%= check_box_tag 'scope[]', 'changesets', (@scope.include? 'changesets') %> <label><%= l(:label_revision_plural) %></label>
|
||||
<% end %>
|
||||
<%= check_box_tag 'scope[]', 'news', (@scope.include? 'news') %> <label><%= l(:label_news_plural) %></label>
|
||||
<%= check_box_tag 'scope[]', 'documents', (@scope.include? 'documents') %> <label><%= l(:label_document_plural) %></label>
|
||||
<% if @project.wiki %>
|
||||
<%= check_box_tag 'scope[]', 'wiki', (@scope.include? 'wiki') %> <label><%= l(:label_wiki) %></label>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%= check_box_tag 'scope[]', 'projects', (@scope.include? 'projects') %> <label><%= l(:label_project_plural) %></label>
|
||||
<% end %>
|
||||
<br />
|
||||
<%= check_box_tag 'all_words', 1, @all_words %> <%= l(:label_all_words) %></p>
|
||||
<%= submit_tag l(:button_submit), :name => 'submit' %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<% if @results %>
|
||||
<h3><%= lwr(:label_result, @results.length) %></h3>
|
||||
<ul>
|
||||
<% @results.each do |e| %>
|
||||
<li><p>
|
||||
<% if e.is_a? Project %>
|
||||
<%= link_to highlight_tokens(h(e.name), @tokens), :controller => 'projects', :action => 'show', :id => e %><br />
|
||||
<%= highlight_tokens(e.description, @tokens) %>
|
||||
<% elsif e.is_a? Issue %>
|
||||
<%= link_to_issue e %>: <%= highlight_tokens(h(e.subject), @tokens) %><br />
|
||||
<%= highlight_tokens(e.description, @tokens) %><br />
|
||||
<i><%= e.author.name %>, <%= format_time(e.created_on) %></i>
|
||||
<% elsif e.is_a? News %>
|
||||
<%=l(:label_news)%>: <%= link_to highlight_tokens(h(e.title), @tokens), :controller => 'news', :action => 'show', :id => e %><br />
|
||||
<%= highlight_tokens(e.description, @tokens) %><br />
|
||||
<i><%= e.author.name %>, <%= format_time(e.created_on) %></i>
|
||||
<% elsif e.is_a? Document %>
|
||||
<%=l(:label_document)%>: <%= link_to highlight_tokens(h(e.title), @tokens), :controller => 'documents', :action => 'show', :id => e %><br />
|
||||
<%= highlight_tokens(e.description, @tokens) %><br />
|
||||
<i><%= format_time(e.created_on) %></i>
|
||||
<% elsif e.is_a? WikiPage %>
|
||||
<%=l(:label_wiki)%>: <%= link_to highlight_tokens(h(e.pretty_title), @tokens), :controller => 'wiki', :action => 'index', :id => @project, :page => e.title %><br />
|
||||
<%= highlight_tokens(e.content.text, @tokens) %><br />
|
||||
<i><%= e.content.author ? e.content.author.name : "Anonymous" %>, <%= format_time(e.content.updated_on) %></i>
|
||||
<% elsif e.is_a? Changeset %>
|
||||
<%=l(:label_revision)%> <%= link_to h(e.revision), :controller => 'repositories', :action => 'revision', :id => @project, :rev => e.revision %><br />
|
||||
<%= highlight_tokens(e.comments, @tokens) %><br />
|
||||
<em><%= e.committer.blank? ? e.committer : "Anonymous" %>, <%= format_time(e.committed_on) %></em>
|
||||
<% end %>
|
||||
</p></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
Reference in New Issue
Block a user