<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>app/views/catalog/_index_partials/_default_group.html.erb</filename>
    </added>
    <added>
      <filename>app/views/catalog/_index_partials/_gallery_document.html.erb</filename>
    </added>
    <added>
      <filename>app/views/catalog/_index_partials/_gallery_group.html.erb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -17,4 +17,31 @@ module SaltHelper
     link_to(name, catalog_index_path(facet_params), options)
   end
   
+  def grouped_result_count(response, facet_name=nil, facet_value=nil)
+    if facet_name &amp;&amp; facet_value
+      facet = response.facets.detect {|f| f.name == facet_name}
+      facet_item = facet.items.detect {|i| i.value == facet_value} if facet
+      count = facet_item ? facet_item.hits : 0
+    else
+      count = response.docs.total
+    end
+    pluralize(count, 'document')
+  end
+  
+  def grouping_facet
+    fields = Hash[sort_fields]
+    case h(params[:sort])
+    when fields['date -']
+      'year_facet'
+    when fields['date +']
+      'year_facet'
+    when fields['document type']
+      'medium_t'
+    when fields['location']
+      'series_facet'
+    else
+      nil
+    end
+  end
+  
 end
\ No newline at end of file</diff>
      <filename>app/helpers/salt_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,10 @@
-&lt;div id=&quot;documents&quot; class=&quot;thumbnail-grid&quot;&gt;
-  &lt;%- @response.docs.each_with_index do |document, counter| -%&gt;
-  &lt;div class=&quot;document thumbnail&quot;&gt;
-    &lt;%= link_to_document(document, :label =&gt; image_tag('default_thumbnail.gif'), :counter =&gt; (counter + 1 + @response.params[:start].to_i)) %&gt;
-    &lt;%= link_to_document(document, :label =&gt; truncate(document.get('title_facet'), :length =&gt; 20, :omission =&gt; &quot;...&quot;), :counter =&gt; (counter + 1 + @response.params[:start].to_i)) -%&gt;
-    &lt;%= document['date_t'] %&gt;
-  &lt;/div&gt;
+&lt;div id=&quot;documents&quot;&gt;
+  &lt;% facet_name = grouping_facet %&gt;
+  &lt;%- if facet_name -%&gt;
+    &lt;%- @response.docs.group_by {|d| d.get(facet_name)}.each do |grouping| -%&gt;
+      &lt;%= render :partial =&gt; 'catalog/_index_partials/gallery_group', :locals =&gt; {:docs =&gt; grouping[1], :facet_name =&gt; facet_name, :facet_value =&gt; grouping[0].to_s} %&gt;
+    &lt;%- end -%&gt;
+  &lt;%- else -%&gt;
+    &lt;%= render :partial =&gt; 'catalog/_index_partials/gallery_group', :locals =&gt; {:docs =&gt; @response.docs, :facet_name =&gt; nil, :facet_value =&gt; nil} %&gt;
   &lt;%- end -%&gt;
 &lt;/div&gt;
\ No newline at end of file</diff>
      <filename>app/views/catalog/_document_gallery.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -5,35 +5,12 @@
     var id_array = new Array();
     var standard_nums = new Array();
   &lt;/script&gt;
-  &lt;% # loop thru each doc -%&gt;
-  &lt;table&gt;
-    &lt;caption&gt;
-      &lt;%= pluralize(@response.docs.total, 'document') %&gt;
-    &lt;/caption&gt;
-    &lt;tr&gt;
-      &lt;th&gt;Date&lt;/th&gt;
-      &lt;th&gt;Title&lt;/th&gt;
-      &lt;th&gt;Document Type&lt;/th&gt;
-      &lt;th&gt;Location&lt;/th&gt;
-    &lt;/tr&gt;
-    &lt;% @response.docs.each_with_index do |document,counter| %&gt;
-
-      &lt;% # container for a single doc -%&gt;
-      &lt;tr class=&quot;document &lt;%= cycle(&quot;even&quot;,&quot;odd&quot;)%&gt;&quot;&gt;
-        &lt;td&gt;
-          &lt;%= document.get(:date_t) %&gt;
-        &lt;/td&gt;
-        &lt;td&gt;
-          &lt;%= link_to_document(document, :label =&gt; :title_facet, :counter =&gt; (counter + 1 + @response.params[:start].to_i)) %&gt;
-        &lt;/td&gt;
-        &lt;td&gt;
-          &lt;%= document.get(:medium_t) %&gt;
-        &lt;/td&gt;
-        &lt;td&gt;
-          &lt;%= &quot;#{document.get(:series_facet)}, #{document.get(:box_facet)}, #{document.get(:folder_facet)}&quot; %&gt;
-        &lt;/td&gt;
-      &lt;/tr&gt;
-    
-    &lt;% end %&gt;
-  &lt;/table&gt;
+  &lt;% facet_name = grouping_facet %&gt;
+  &lt;%- if facet_name -%&gt;
+    &lt;%- @response.docs.group_by {|d| d.get(facet_name)}.each do |grouping| -%&gt;
+      &lt;%= render :partial =&gt; 'catalog/_index_partials/default_group', :locals =&gt; {:docs =&gt; grouping[1], :facet_name =&gt; facet_name, :facet_value =&gt; grouping[0].to_s} %&gt;
+    &lt;%- end -%&gt;
+  &lt;%- else -%&gt;
+    &lt;%= render :partial =&gt; 'catalog/_index_partials/default_group', :locals =&gt; {:docs =&gt; @response.docs, :facet_name =&gt; nil, :facet_value =&gt; nil} %&gt;
+  &lt;%- end -%&gt;
 &lt;/div&gt;
\ No newline at end of file</diff>
      <filename>app/views/catalog/_document_list.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,15 @@
 &lt;%# default partial to display solr document fields in catalog index view -%&gt;
-&lt;div class=&quot;&lt;%= params[:action]%&gt;_details&quot;&gt;
-  &lt;%= render :partial =&gt; &quot;#{params[:controller]}/_#{params[:action]}_partials/default_details&quot;, :locals =&gt; {:document =&gt; document}%&gt;
-&lt;/div&gt;
-&lt;div style=&quot;clear:both;&quot;&gt;&lt;/div&gt;
\ No newline at end of file
+&lt;tr class=&quot;document &lt;%= cycle(&quot;even&quot;,&quot;odd&quot;)%&gt;&quot;&gt;
+  &lt;td&gt;
+    &lt;%= document.get(:date_t) %&gt;
+  &lt;/td&gt;
+  &lt;td&gt;
+    &lt;%= link_to_document(document, :label =&gt; :title_facet, :counter =&gt; (counter + 1 + @response.params[:start].to_i)) %&gt;
+  &lt;/td&gt;
+  &lt;td&gt;
+    &lt;%= document.get(:medium_t) %&gt;
+  &lt;/td&gt;
+  &lt;td&gt;
+    &lt;%= &quot;#{document.get(:series_facet)}, #{document.get(:box_facet)}, #{document.get(:folder_facet)}&quot; %&gt;
+  &lt;/td&gt;
+&lt;/tr&gt;
\ No newline at end of file</diff>
      <filename>app/views/catalog/_index_partials/_default.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -13,6 +13,7 @@
     &lt;%= hidden_field_tag(:qt, params[:qt], :id =&gt; 'sort_qt') %&gt;
     &lt;%= hidden_field_tag(:per_page, params[:per_page].nil? ? Blacklight.config[:index][:num_per_page] : params[:per_page], :id =&gt; 'sort_per_page') %&gt;
   &lt;%= hidden_field_tag(:fq, params[:fq], :id =&gt; 'sort_fq') unless params[:fq].nil? %&gt;
+  &lt;%= hidden_field_tag(:view, params[:view]) %&gt;
     &lt;%= render :partial =&gt; 'catalog/hidden_filters' %&gt;
     &lt;noscript&gt;
       &lt;%= submit_tag 'submit', :id =&gt; 'sort_submit' %&gt;</diff>
      <filename>app/views/catalog/index.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -955,6 +955,8 @@ div.advanced_results, div.advanced_results a, div.advanced_results h2, div.advan
 #documents {
   position: relative;
   float: left;
+  padding-top: 1em;
+  width: 100%;
 }
 
 #documents .thumbnail {
@@ -972,10 +974,14 @@ div.advanced_results, div.advanced_results a, div.advanced_results h2, div.advan
 }
 
 .thumbnail-grid {
-  padding: 0px 0px;
+  padding: 0;
+  margin-bottom: 2em;
+  width: 100%;
+  float: left;
 }
 
-#documents caption {
+#documents h3 {
+  clear: both;
   background: #669;
   color: #fff;
   margin: 0;
@@ -988,7 +994,8 @@ div.advanced_results, div.advanced_results a, div.advanced_results h2, div.advan
 }
 
 #documents table {
-  margin: 1em 0;
+  margin: 0 0 2em;
+  width: 100%;
 }
 
 @media print {</diff>
      <filename>public/stylesheets/styles.css</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,8 @@ class ApplicationController &lt; ActionController::Base
   
   filter_parameter_logging :password, :password_confirmation  
   helper_method :current_user_session, :current_user
+  
+  helper :all
 
   def user_class; User; end
   </diff>
      <filename>vendor/plugins/blacklight/app/controllers/application_controller.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>728277d80bb71489fb12faab2d8b4f56c19ca354</id>
    </parent>
  </parents>
  <author>
    <name>Dan Weinand</name>
    <email>dweinand@gmail.com</email>
  </author>
  <url>http://github.com/mediashelf/salt-blacklight/commit/89ec972374a3634715d3771758e212c5600a2a38</url>
  <id>89ec972374a3634715d3771758e212c5600a2a38</id>
  <committed-date>2009-10-29T23:07:37-07:00</committed-date>
  <authored-date>2009-10-29T23:07:37-07:00</authored-date>
  <message>Result Grouping first pass.</message>
  <tree>8d6a01bffe62efe4f79e3a898714882b7a24946e</tree>
  <committer>
    <name>Dan Weinand</name>
    <email>dweinand@gmail.com</email>
  </committer>
</commit>
