view app/views/search/index.rhtml @ 774:58410c63bb84 feature_334

Force a Google search box rudely into the middle of the search view, just to see how it looks. It can be styled reasonably well -- but the adverts, when they appear, are atrocious.
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Thu, 17 Nov 2011 14:56:55 +0000
parents 851510f1b535
children
line wrap: on
line source
<h2><%= l(:label_search) %></h2>

<div class="box">
<% form_tag({}, :method => :get) do %>
<p><%= text_field_tag 'q', @question, :size => 60, :id => 'search-input' %>
<%= javascript_tag "Field.focus('search-input')" %>
<%= project_select_tag %>
<%= hidden_field_tag 'all_words', '', :id => nil %>
<label><%= check_box_tag 'all_words', 1, @all_words %> <%= l(:label_all_words) %></label>
<%= hidden_field_tag 'titles_only', '', :id => nil %>
<label><%= check_box_tag 'titles_only', 1, @titles_only %> <%= l(:label_search_titles_only) %></label>
</p>
<p>
<% @object_types.each do |t| %>
<label><%= check_box_tag t, 1, @scope.include?(t) %> <%= type_label(t) %></label>
<% end %>
</p>

<p><%= submit_tag l(:button_submit), :name => 'submit' %></p>
<% end %>
</div>

<div id="cse" style="width: 100%;">Loading</div>
<script src="//www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript"> 
  google.load('search', '1', {language : 'en'});
  google.setOnLoadCallback(function() {
    var customSearchControl = new google.search.CustomSearchControl('009438048077875231531:mfwwmuro5ps');
    customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
    customSearchControl.draw('cse');
  }, true);
</script>

<% if @project_matches and !@project_matches.empty? and (@project_matches.count < 6) and !@pagination_previous_date %>
   <h3><%= l(:label_matching_project_plural) %> (<%= @project_matches.count %>)</h3>
    <dl id="search-results">
      <% @project_matches.each do |e| %>
        <dt class="<%= e.event_type %>"><%= content_tag('span', h(e.project), :class => 'project') unless @project == e.project %> <%= link_to highlight_tokens(truncate(e.event_title, :length => 255), @tokens), e.event_url %></dt>
        <dd><span class="description"><%= e.short_description %></span>
      <% end %>
    </dl>
<% end %>

<% if @results %>
    
    <h3><%= l(:label_result_plural) %> (<%= @results_by_type.values.sum %>)</h3>
    <div id="search-results-counts">
    <%= render_results_by_type(@results_by_type) unless @scope.size == 1 %>
    </div>
    <dl id="search-results">
      <% @results.each do |e| %>
        <dt class="<%= e.event_type %>"><%= content_tag('span', h(e.project), :class => 'project') unless @project == e.project %> <%= link_to highlight_tokens(truncate(e.event_title, :length => 255), @tokens), e.event_url %></dt>
        <dd><span class="description"><%= highlight_tokens(e.event_description, @tokens) %></span>
        <span class="author"><%= format_time(e.event_datetime) %></span></dd>
      <% end %>
    </dl>
<% end %>

<p><center>
<% if @pagination_previous_date %>
<%= link_to_content_update('&#171; ' + l(:label_previous),
      params.merge(:previous => 1, :offset => @pagination_previous_date.strftime("%Y%m%d%H%M%S"))) %>&nbsp;
<% end %>
<% if @pagination_next_date %>
<%= link_to_content_update(l(:label_next) + ' &#187;',
      params.merge(:previous => nil, :offset => @pagination_next_date.strftime("%Y%m%d%H%M%S"))) %>
<% end %>
</center></p>

<% html_title(l(:label_search)) -%>