- Correctly set defaults for limit and offset

- Allow user to specify log_type
- Fix next/prev urls
- Escape form values when displaying them
This commit is contained in:
Jordan Sissel 2009-09-19 10:05:59 +00:00
parent dc4cc2088a
commit 40fbf7a670
3 changed files with 18 additions and 8 deletions

View file

@ -36,16 +36,20 @@ class Search < Application
end
def query
params[:offset] = (params[:offset] ? params[:offset].to_i : 0) rescue 0
params[:limit] = (params[:limit] ? params[:limit].to_i : 20) rescue 20
params[:log_type] = (params[:log_type] or "linux-syslog")
@searchclient = SearchClient.new(host="localhost", port=61613)
msg = LogStash::Net::Messages::SearchHitsRequest.new
msg.log_type = (params[:log_type] or "linux-syslog")
msg.log_type = params[:log_type]
msg.query = params[:q]
@searchclient.sendmsg("/queue/logstash", msg)
msg = LogStash::Net::Messages::SearchRequest.new
msg.log_type = (params[:log_type] or "linux-syslog")
msg.query = params[:q]
msg.limit = 20
msg.offset = params[:offset]
msg.limit = params[:limit]
@searchclient.sendmsg("/queue/logstash", msg)
Timeout.timeout(10) do

View file

@ -1,5 +1,8 @@
<%= form :action => url(:controller => "search", :action => "query"),
:method => :getvn do %>
<%= text_field :name => "q", :label => "Query" %>
:method => :get do %>
<%= text_field :name => "q", :label => "Query", :value => escape_html(params[:q]), :size => 100 %>
<br/>
<%= text_field :name => "log_type", :label => "log type", :value => params[:log_type] %>
<br>
<%= submit "Search" %>
<% end =%>

View file

@ -1,16 +1,19 @@
<%= form :action => url(:controller => "search", :action => "query"),
:method => :get do %>
<%= text_field :name => "q", :label => "Query" %>
<%= text_field :name => "q", :label => "Query", :value => escape_html(params[:q]), :size => 100 %>
<br/>
<%= text_field :name => "log_type", :label => "log type", :value => escape_html(params[:log_type]) %>
<br>
<%= submit "Search" %>
<% end =%>
<hr>
<h4>Results <%= params[:offset] %> - <%= params[:offset] + params[:limit] %> of <%= @searchclient.hits %> for <%= params[:q] %></h4>
<h4>Results <%= params[:offset] %> - <%= params[:offset] + params[:limit] %> of <%= @searchclient.hits %> for <%=h params[:q] %></h4>
<% if params[:offset] > 0 %>
<%= link_to "prev", url(:controller => "search", :action => "query", :q => params[:q], :offset => [0, params[:offset] - params[:limit]].max, :limit => params[:limit]) %>
<%= link_to "prev", url(:controller => "search", :action => "query", :q => params[:q], :offset => [0, params[:offset] - params[:limit]].max, :limit => params[:limit]), :log_type => params[:log_type] %>
<% end %>
<% if params[:offset] + params[:limit] < @searchclient.hits %>
<%= link_to "next", url(:controller => "search", :action => "query", :q => params[:q], :offset => [@searchclient.hits - params[:limit], params[:offset] + params[:limit]].min, :limit => params[:limit]) %>
<%= link_to "next", url(:controller => "search", :action => "query", :q => params[:q], :offset => [@searchclient.hits - params[:limit], params[:offset] + params[:limit]].min, :limit => params[:limit], :log_type => params[:log_type]) %>
<% end %>
<pre>