##// END OF EJS Templates
added a simple search engine. left to do:...
Jean-Philippe Lang -
r276:75324e48592f
parent child
Show More
@@ -0,0 +1,32
1 <h2><%= l(:label_search) %></h2>
2
3 <div class="box">
4 <% form_tag({:action => 'search', :id => @project}, :method => :get) do %>
5 <p><%= text_field_tag 'token', @token, :size => 30 %>
6 <%= check_box_tag 'scope[]', 'issues', (@scope.include? 'issues') %> <label><%= l(:label_issue_plural) %></label>
7 <%= check_box_tag 'scope[]', 'news', (@scope.include? 'news') %> <label><%= l(:label_news_plural) %></label>
8 <%= check_box_tag 'scope[]', 'documents', (@scope.include? 'documents') %> <label><%= l(:label_document_plural) %></label></p>
9 <%= submit_tag l(:button_submit), :name => 'submit' %>
10 <% end %>
11 </div>
12
13 <% if @results %>
14 <h3><%= lwr(:label_result, @results.length) %></h3>
15 <ul>
16 <% @results.each do |e| %>
17 <li><p>
18 <% if e.is_a? Issue %>
19 <%= link_to "#{e.tracker.name} ##{e.id}", :controller => 'issues', :action => 'show', :id => e %>: <%= highlight(h(e.subject), @token) %><br />
20 <i><%= e.author.name %>, <%= format_time(e.created_on) %></i>
21 <% elsif e.is_a? News %>
22 <%=l(:label_news)%>: <%= link_to highlight(h(e.title), @token), :controller => 'news', :action => 'show', :id => e %><br />
23 <% unless e.summary.empty? %><%=h e.summary %><br /><% end %>
24 <i><%= e.author.name %>, <%= format_time(e.created_on) %></i>
25 <% elsif e.is_a? Document %>
26 <%=l(:label_document)%>: <%= link_to highlight(h(e.title), @token), :controller => 'documents', :action => 'show', :id => e %><br />
27 <i><%= format_time(e.created_on) %></i>
28 <% end %>
29 </p></li>
30 <% end %>
31 </ul>
32 <% end %> No newline at end of file
@@ -0,0 +1,9
1 class AddSearchPermission < ActiveRecord::Migration
2 def self.up
3 Permission.create :controller => "projects", :action => "search", :description => "label_search", :sort => 130, :is_public => true, :mail_option => 0, :mail_enabled => 0
4 end
5
6 def self.down
7 Permission.find_by_controller_and_action('projects', 'roadmap').destroy
8 end
9 end
@@ -539,6 +539,18 class ProjectsController < ApplicationController
539 end
539 end
540 end
540 end
541
541
542 def search
543 @token = params[:token]
544 @scope = params[:scope] || (params[:submit] ? [] : %w(issues news documents) )
545
546 if @token and @token.length > 2
547 @results = []
548 @results += @project.issues.find(:all, :include => :author, :conditions => ["issues.subject like ?", "%#{@token}%"] ) if @scope.include? 'issues'
549 @results += @project.news.find(:all, :conditions => ["news.title like ?", "%#{@token}%"], :include => :author ) if @scope.include? 'news'
550 @results += @project.documents.find(:all, :conditions => ["title like ?", "%#{@token}%"] ) if @scope.include? 'documents'
551 end
552 end
553
542 private
554 private
543 # Find project of id params[:id]
555 # Find project of id params[:id]
544 # if not found, redirect to project list
556 # if not found, redirect to project list
@@ -93,6 +93,7
93 <%= link_to l(:label_document_plural), {:controller => 'projects', :action => 'list_documents', :id => @project }, :class => "menuItem" %>
93 <%= link_to l(:label_document_plural), {:controller => 'projects', :action => 'list_documents', :id => @project }, :class => "menuItem" %>
94 <%= link_to l(:label_member_plural), {:controller => 'projects', :action => 'list_members', :id => @project }, :class => "menuItem" %>
94 <%= link_to l(:label_member_plural), {:controller => 'projects', :action => 'list_members', :id => @project }, :class => "menuItem" %>
95 <%= link_to l(:label_attachment_plural), {:controller => 'projects', :action => 'list_files', :id => @project }, :class => "menuItem" %>
95 <%= link_to l(:label_attachment_plural), {:controller => 'projects', :action => 'list_files', :id => @project }, :class => "menuItem" %>
96 <%= link_to l(:label_search), {:controller => 'projects', :action => 'search', :id => @project }, :class => "menuItem" %>
96 <%= link_to l(:label_repository), {:controller => 'repositories', :action => 'show', :id => @project}, :class => "menuItem" if @project.repository and !@project.repository.new_record? %>
97 <%= link_to l(:label_repository), {:controller => 'repositories', :action => 'show', :id => @project}, :class => "menuItem" if @project.repository and !@project.repository.new_record? %>
97 <%= link_to_if_authorized l(:label_settings), {:controller => 'projects', :action => 'settings', :id => @project }, :class => "menuItem" %>
98 <%= link_to_if_authorized l(:label_settings), {:controller => 'projects', :action => 'settings', :id => @project }, :class => "menuItem" %>
98 </div>
99 </div>
@@ -116,6 +117,7
116 <li><%= link_to l(:label_document_plural), :controller => 'projects', :action => 'list_documents', :id => @project %></li>
117 <li><%= link_to l(:label_document_plural), :controller => 'projects', :action => 'list_documents', :id => @project %></li>
117 <li><%= link_to l(:label_member_plural), :controller => 'projects', :action => 'list_members', :id => @project %></li>
118 <li><%= link_to l(:label_member_plural), :controller => 'projects', :action => 'list_members', :id => @project %></li>
118 <li><%= link_to l(:label_attachment_plural), :controller => 'projects', :action => 'list_files', :id => @project %></li>
119 <li><%= link_to l(:label_attachment_plural), :controller => 'projects', :action => 'list_files', :id => @project %></li>
120 <li><%= link_to l(:label_search), :controller => 'projects', :action => 'search', :id => @project %></li>
119 <li><%= link_to l(:label_repository), :controller => 'repositories', :action => 'show', :id => @project if @project.repository and !@project.repository.new_record? %></li>
121 <li><%= link_to l(:label_repository), :controller => 'repositories', :action => 'show', :id => @project if @project.repository and !@project.repository.new_record? %></li>
120 <li><%= link_to_if_authorized l(:label_settings), :controller => 'projects', :action => 'settings', :id => @project %></li>
122 <li><%= link_to_if_authorized l(:label_settings), :controller => 'projects', :action => 'settings', :id => @project %></li>
121 </ul>
123 </ul>
@@ -315,6 +315,9 label_sort_higher: Aufzurichten
315 label_sort_lower: Herabzusteigen
315 label_sort_lower: Herabzusteigen
316 label_sort_lowest: Letzter
316 label_sort_lowest: Letzter
317 label_roadmap: Roadmap
317 label_roadmap: Roadmap
318 label_search: Suche
319 label_result: %d Resultat
320 label_result_plural: %d Resultate
318
321
319 button_login: Einloggen
322 button_login: Einloggen
320 button_submit: Einreichen
323 button_submit: Einreichen
@@ -315,6 +315,9 label_sort_higher: Move up
315 label_sort_lower: Move down
315 label_sort_lower: Move down
316 label_sort_lowest: Move to bottom
316 label_sort_lowest: Move to bottom
317 label_roadmap: Roadmap
317 label_roadmap: Roadmap
318 label_search: Search
319 label_result: %d result
320 label_result_plural: %d results
318
321
319 button_login: Login
322 button_login: Login
320 button_submit: Submit
323 button_submit: Submit
@@ -315,6 +315,9 label_sort_higher: Subir
315 label_sort_lower: Bajar
315 label_sort_lower: Bajar
316 label_sort_lowest: Último
316 label_sort_lowest: Último
317 label_roadmap: Roadmap
317 label_roadmap: Roadmap
318 label_search: Búsqueda
319 label_result: %d resultado
320 label_result_plural: %d resultados
318
321
319 button_login: Conexión
322 button_login: Conexión
320 button_submit: Someter
323 button_submit: Someter
@@ -315,6 +315,9 label_sort_higher: Remonter
315 label_sort_lower: Descendre
315 label_sort_lower: Descendre
316 label_sort_lowest: Descendre en dernier
316 label_sort_lowest: Descendre en dernier
317 label_roadmap: Roadmap
317 label_roadmap: Roadmap
318 label_search: Recherche
319 label_result: %d résultat
320 label_result_plural: %d résultats
318
321
319 button_login: Connexion
322 button_login: Connexion
320 button_submit: Soumettre
323 button_submit: Soumettre
@@ -316,6 +316,9 label_sort_higher: 上へ
316 label_sort_lower: 下へ
316 label_sort_lower: 下へ
317 label_sort_lowest: 一番下へ
317 label_sort_lowest: 一番下へ
318 label_roadmap: ロードマップ
318 label_roadmap: ロードマップ
319 label_search: Search
320 label_result: %d result
321 label_result_plural: %d results
319
322
320 button_login: ログイン
323 button_login: ログイン
321 button_submit: 変更
324 button_submit: 変更
@@ -243,6 +243,8 legend {color: #505050;}
243 hr { border:none; border-bottom: dotted 1px #c0c0c0; }
243 hr { border:none; border-bottom: dotted 1px #c0c0c0; }
244 table p {margin:0; padding:0;}
244 table p {margin:0; padding:0;}
245
245
246 strong.highlight { background-color: #FCFD8D;}
247
246 div.square {
248 div.square {
247 border: 1px solid #999;
249 border: 1px solid #999;
248 float: left;
250 float: left;
General Comments 0
You need to be logged in to leave comments. Login now