myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [2529] branches/discovery: discovery cleanup for


From: noreply
Subject: [myexperiment-hackers] [2529] branches/discovery: discovery cleanup for trial
Date: Mon, 8 Nov 2010 10:44:01 -0500 (EST)

Revision
2529
Author
dgc
Date
2010-11-08 10:44:00 -0500 (Mon, 08 Nov 2010)

Log Message

discovery cleanup for trial

Modified Paths

Diff

Modified: branches/discovery/app/controllers/application.rb (2528 => 2529)


--- branches/discovery/app/controllers/application.rb	2010-11-04 16:14:40 UTC (rev 2528)
+++ branches/discovery/app/controllers/application.rb	2010-11-08 15:44:00 UTC (rev 2529)
@@ -622,23 +622,25 @@
             label_selection    = nil if label_selection.empty?
             checkbox_selection = nil if checkbox_selection.empty?
 
-            label_uri = build_url(params, opts, [:filter, :order, :filter_query], filter[:query_option] => label_selection, "page" => nil)
+            label_uri = build_url(params, opts, [:filter, :order], filter[:query_option] => label_selection, "page" => nil)
 
-            checkbox_uri = build_url(params, opts, [:filter, :order, :filter_query], filter[:query_option] => checkbox_selection, "page" => nil)
+            checkbox_uri = build_url(params, opts, [:filter, :order], filter[:query_option] => checkbox_selection, "page" => nil)
 
-            label = object.filter_label
+            label = object.filter_label.clone
             label = visible_name(label) if filter[:visible_name]
             label = label.capitalize    if filter[:capitalize]
 
+            plain_label = object.filter_label
+
             if params[:filter_query]
               label.sub!(Regexp.new("(#{params[:filter_query]})", Regexp::IGNORECASE), '<b>\1</b>')
-              puts "new label = #{label}"
             end
 
             {
               :object       => object,
               :value        => value,
               :label        => label,
+              :plain_label  => plain_label,
               :count        => object.filter_count,
               :checkbox_uri => checkbox_uri,
               :label_uri    => label_uri,
@@ -687,7 +689,7 @@
         end
       end
 
-      [ filters, cancel_filter_query_url ]
+      [filters, cancel_filter_query_url]
     end
 
     # apply locked filters
@@ -760,24 +762,25 @@
 
       next if opts[:lock_filter] && opts[:lock_filter][filter[:query_option]]
 
+      current = params[filter[:query_option]] ? params[filter[:query_option]].split(',') : []
+
       selected = filter[:objects].select do |x| x[:selected] end
+      current  = selected.map do |x| x[:value] end
 
       if selected.length > 0
         if params[filter[:query_option]]
 
-          selected_labels = selected.map do |x| x[:label] end
+          selected_labels = selected.map do |x|
+            x[:plain_label] + ' <a href="" + url_for(build_url(params, opts,
+            [:filter, :filter_query, :order], {
+              filter[:query_option] => (current - [x[:value]]).join(",") } )) +
+              '">' + " <img src='' /></a>"
 
-          if selected_labels.length > 1
-            sentence = selected_labels[0..-2].join(", ") + " or " + selected_labels[-1]
-          else
-            sentence = selected_labels[0]
           end
 
-          summary << '<span class="filter-in-use"><a href="" +
-            url_for(build_url(params, opts, [:filter, :filter_query, :order],
-                  { filter[:query_option] => nil } )) +
-            '"><b>' + filter[:title].capitalize + "</b>: " + sentence +
-            " <img src='' /></a></span> "
+          bits = selected_labels.map do |label| label end.join(" <i>or</i> ")
+
+          summary << '<span class="filter-in-use"><b>' + filter[:title].capitalize + "</b>: " + bits + "</span> "
         end
       end
     end

Modified: branches/discovery/app/views/content/_index.rhtml (2528 => 2529)


--- branches/discovery/app/views/content/_index.rhtml	2010-11-04 16:14:40 UTC (rev 2528)
+++ branches/discovery/app/views/content/_index.rhtml	2010-11-08 15:44:00 UTC (rev 2529)
@@ -1,12 +1,8 @@
 <div class="pivot">
   <div class="left">
-    <% if @pivot[:reset_filters_url] %>
-      <div class="reset_filters"><%= link_to("Reset filters", @pivot[:reset_filters_url]) -%></div>
-    <% end %>
-    <% if false %>
+    <div class="category">Search filter terms</div>
     <div class="search_filters">
       <form action="" url_for(request.query_parameters) -%>" method="GET">
-        <div>Search filters:</div>
         <div class="filter_search_box">
           <input class="query" name="filter_query" value="<%= params[:filter_query] -%>" />
           <% @pivot[:filter_query_url].each do |key, value| %>
@@ -21,25 +17,33 @@
         </div>
       </form>
     </div>
-    <% end %>
     <div class="filters">
       <% @pivot[:filters].each do |filter| %>
-        <div class="toggle_filter_query">
-          <img src="" />
+        <% query_name = "#{filter[:query_option]}_query" %>
+        <% if @pivot[:cancel_filter_query_url] %>
+          <div class="category"><%= filter[:title].capitalize -%> results</div>
+        <% else %>
+          <div class="category">Filter by <%= filter[:title] -%></div>
+        <% end %>
+        <div id="<%= query_name -%>" style="display: <%= @pivot[:cancel_filter_query_url] ? "block" : "none" -%>">
         </div>
-        <div class="category">Filter by <%= filter[:title] -%></div>
         <div class="filter">
           <div class="options">
             <% filter[:objects].each do |object| %>
               <div<%= object[:selected] ? ' class="selected"' : '' -%>>
                 <input class='checkbox' type='checkbox'  <% if object[:selected] %> checked='checked' <% end %> />
-                <%= link_to("<div class='count'>#{object[:count]}</div> <div class='label'><span class='truncate'>#{object[:label]}</span></div>", object[:label_uri]) -%>
+                <%= link_to("<div class='count'>#{object[:count]}</div> <div class='label' title='#{h(object[:plain_label])}'><span class='truncate'>#{object[:label]}</span></div>", object[:label_uri]) -%>
               </div>
             <% end %>
           </div>
         </div>
       <% end %>
     </div>
+    <% if @pivot[:cancel_filter_query_url] && @pivot[:filters].empty? %>
+      <div class="no-filter-query-results">
+        Your search did not match any filter terms.
+      </div>
+    <% end %>
   </div>
   <div class="main">
     <div class="sort">
@@ -64,10 +68,23 @@
       <% if @pivot[:summary].length > 0 %>
         <div class="crumbs"><%= @pivot[:summary] -%></div>
       <% end %>
+      <% if @pivot[:reset_filters_url] %>
+        <div class="reset_filters"><%= link_to("Remove all filters", @pivot[:reset_filters_url]) -%></div>
+      <% end %>
     </div>
-    <div class="results">
-      <%= render :partial => "contributions/list", :locals => { :collection => @pivot[:results], :table => true } %>
-    </div>
+    <% if @pivot[:results].empty? %>
+      <div class="no-results">
+        <% if @pivot[:summary].length > 0 %>
+          Your search did not produce any results.  Try broadening your search by removing filter terms.
+        <% else %>
+          There are no results to show in this category.
+        <% end %>
+      </div>
+    <% else %>
+      <div class="results">
+        <%= render :partial => "contributions/list", :locals => { :collection => @pivot[:results], :table => true } %>
+      </div>
+    <% end %>
     <div>
       <%= render :partial => "layouts/paginate", :locals => { :collection => @pivot[:results], :sort_by => @pivot_options[:order], :num_options => @pivot_options[:num_options] } %>
     </div>

Modified: branches/discovery/public/stylesheets/styles.css (2528 => 2529)


--- branches/discovery/public/stylesheets/styles.css	2010-11-04 16:14:40 UTC (rev 2528)
+++ branches/discovery/public/stylesheets/styles.css	2010-11-08 15:44:00 UTC (rev 2529)
@@ -2062,9 +2062,14 @@
   clear: right;
   background: #f0f0f0;
   border: 1px solid #d8d8d8;
-  padding: 4px;
+  padding: 8px;
 }
 
+.pivot .summary DIV {
+  padding-top: 0.2em;
+  padding-bottom: 0.2em;
+}
+
 .pivot .sort {
   float: right;
 }
@@ -2101,6 +2106,14 @@
   background: #d0d0f0;
 }
 
+.pivot .options > DIV.selected {
+  background: #ffe0c0;
+}
+
+.pivot .options > DIV.selected:hover {
+  background: #dfc0a0;
+}
+
 .pivot .options > DIV:first-child {
   border-top-left-radius: 6px;
   border-top-right-radius: 6px;
@@ -2142,7 +2155,7 @@
 }
 
 .pivot .filter-in-use A {
-  padding-left: 4px;
+  padding-left: 0px;
   padding-right: 4px;
   text-decoration: none; /* no underline */
 }
@@ -2154,7 +2167,7 @@
 }
 
 .pivot .filter-in-use:hover {
-  background: #f0d0d0;
+/*  background: #f0d0d0; */
 }
 
 .pivot .pagination {
@@ -2185,7 +2198,21 @@
   top: -1px;
 }
 
+.result-count {
+}
+
 .truncate {
   white-space: nowrap;
 }
 
+.no-filter-query-results {
+  padding-top: 1em;
+	font-style: italic;
+}
+
+.pivot .no-results {
+  padding-top: 2em;
+  padding-bottom: 2em;
+	font-style: italic;
+}
+

reply via email to

[Prev in Thread] Current Thread [Next in Thread]