myexperiment-hackers
[Top][All Lists]
Advanced

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

[myexperiment-hackers] [2479] branches/discovery: redone style, fixed ta


From: noreply
Subject: [myexperiment-hackers] [2479] branches/discovery: redone style, fixed tags on top and removed reset filters link
Date: Mon, 19 Jul 2010 11:35:16 -0400 (EDT)

Revision
2479
Author
dgc
Date
2010-07-19 11:35:15 -0400 (Mon, 19 Jul 2010)

Log Message

redone style, fixed tags on top and removed reset filters link

Modified Paths

Diff

Modified: branches/discovery/app/controllers/application.rb (2478 => 2479)


--- branches/discovery/app/controllers/application.rb	2010-07-19 13:11:55 UTC (rev 2478)
+++ branches/discovery/app/controllers/application.rb	2010-07-19 15:35:15 UTC (rev 2479)
@@ -575,8 +575,10 @@
       joins += filter[:joins] if filter[:joins]
       conditions << "#{filter[:id_column]} IS NOT NULL" if filter[:not_null]
 
-      if params[:filter_query]
-        conditions << "(#{filter[:label_column]} LIKE '%#{escape_sql(params[:filter_query])}%')"
+      unless opts[:inhibit_filter_query]
+        if params[:filter_query]
+          conditions << "(#{filter[:label_column]} LIKE '%#{escape_sql(params[:filter_query])}%')"
+        end
       end
 
       current = params[filter[:query_option]] ? params[filter[:query_option]].split(',') : []
@@ -629,6 +631,47 @@
       [current, objects]
     end
 
+    def calculate_filters(params, opts, user)
+
+      # produce the filter list
+
+      filters = pivot_options[:filters].clone
+      cancel_filter_query_url = nil
+
+      filters.each do |filter|
+
+        # calculate the top n items of the list
+
+        filter[:current], filter[:objects] = calculate_filter(params, filter, user, opts)
+
+        # calculate which active filters are missing (because they weren't in the
+        # top part of the list or have a count of zero)
+
+        missing_filter_ids = filter[:current] - filter[:objects].map do |ob| ob[:value] end
+
+        if missing_filter_ids.length > 0
+          filter[:objects] += calculate_filter(params, filter, user, opts.merge(:ids => missing_filter_ids))[1]
+        end
+
+        # calculate which active filters are still missing (because they have a
+        # count of zero)
+
+        missing_filter_ids = filter[:current] - filter[:objects].map do |ob| ob[:value] end
+        
+        if missing_filter_ids.length > 0
+          zero_list = calculate_filter(params, filter, user, opts.merge(:ids => missing_filter_ids, :inhibit_other_conditions => true))[1]
+
+          zero_list.each do |x| x[:count] = 0 end
+
+          zero_list.sort! do |a, b| a[:label] <=> b[:label] end
+
+          filter[:objects] += zero_list
+        end
+      end
+
+      [ filters, cancel_filter_query_url ]
+    end
+
     # apply locked filters
 
     if opts[:lock_filter]
@@ -680,60 +723,22 @@
       end
     end
 
-    opts[:order_params]        = {}
-    opts[:advanced_params]     = {}
-    opts[:filter_query_params] = {}
-
-    opts[:order_params][:order]               = params[:order]        if params[:order]
-    opts[:advanced_params][:advanced]         = params[:advanced]     if params[:advanced]
-    opts[:filter_query_params][:filter_query] = params[:filter_query] if params[:filter_query]
-
     # produce the filter list
 
-    filters = pivot_options[:filters].clone
-    cancel_filter_query_url = nil
-    reset_filters_url = nil
+    filters, cancel_filter_query_url = calculate_filters(params, opts, user)
 
-    if opts[:filter_params].length > 0
-      reset_filters_url = build_url(params, opts, [:order, :advanced])
-    end
+    # produce the summary.  If a filter query is specified, then we need to
+    # recalculate the filters without the query to get all of them.
 
-    filters.each do |filter|
-
-      # calculate the top n items of the list
-
-      filter[:current], filter[:objects] = calculate_filter(params, filter, user, opts)
-
-      # calculate which active filters are missing (because they weren't in the
-      # top part of the list or have a count of zero)
-
-      missing_filter_ids = filter[:current] - filter[:objects].map do |ob| ob[:value] end
-
-      if missing_filter_ids.length > 0
-        filter[:objects] += calculate_filter(params, filter, user, opts.merge(:ids => missing_filter_ids))[1]
-      end
-
-      # calculate which active filters are still missing (because they have a
-      # count of zero)
-
-      missing_filter_ids = filter[:current] - filter[:objects].map do |ob| ob[:value] end
-      
-      if missing_filter_ids.length > 0
-        zero_list = calculate_filter(params, filter, user, opts.merge(:ids => missing_filter_ids, :inhibit_other_conditions => true))[1]
-
-        zero_list.each do |x| x[:count] = 0 end
-
-        zero_list.sort! do |a, b| a[:label] <=> b[:label] end
-
-        filter[:objects] += zero_list
-      end
+    if params[:filter_query]
+      filters2 = calculate_filters(params, opts.merge( { :inhibit_filter_query => true } ), user)[0]
+    else
+      filters2 = filters
     end
 
-    # produce the summary
-
     summary = ""
 
-    filters.select do |filter|
+    filters2.select do |filter|
 
       next if opts[:lock_filter] && opts[:lock_filter][filter[:query_option]]
 
@@ -760,7 +765,7 @@
     end
 
     if params[:filter_query]
-      cancel_filter_query_url = build_url(params, opts, [:advanced])
+      cancel_filter_query_url = build_url(params, opts, [:filter, :order, :advanced])
     end
 
     # remove filters that do not help in narrowing down the result set
@@ -770,8 +775,10 @@
         false
 #     elsif filter[:objects].length == 1 && filter[:objects][0][:selected] == false
 #       false
-      elsif params[:advanced].nil? && (params[filter[:query_option]] || filter[:objects].length < 2)
+      elsif params[:advanced].nil? && params[filter[:query_option]]
         false
+      elsif params[:advanced].nil? && params[:filter_query].nil? && filter[:objects].length < 2
+        false
       elsif opts[:lock_filter] && opts[:lock_filter][filter[:query_option]]
         false
       else
@@ -782,9 +789,8 @@
     {
       :results                 => results,
       :filters                 => filters,
-      :reset_filters_url       => reset_filters_url,
       :cancel_filter_query_url => cancel_filter_query_url,
-      :filter_query_url        => opts[:filter_params],
+      :filter_query_url        => build_url(params, opts, [:filter]),
       :summary                 => summary
     }
   end

Modified: branches/discovery/app/views/content/_index.rhtml (2478 => 2479)


--- branches/discovery/app/views/content/_index.rhtml	2010-07-19 13:11:55 UTC (rev 2478)
+++ branches/discovery/app/views/content/_index.rhtml	2010-07-19 15:35:15 UTC (rev 2479)
@@ -1,15 +1,19 @@
 <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 %>
     <div class="search_filters">
       <form action="" url_for(request.query_parameters) -%>" method="GET">
         <div>Search filters:</div>
-        <input name="filter_query" value="<%= params[:filter_query] -%>" style="width: 100px" />
-        <% @pivot[:filter_query_url].each do |key, value| %>
-          <input name="<%= key -%>" type="hidden" value="<%= value.sub('"', '\\"') -%>" />
-        <% end %>
+        <div class="filter_search_box">
+          <input name="filter_query" value="<%= params[:filter_query] -%>" />
+          <% @pivot[:filter_query_url].each do |key, value| %>
+            <input name="<%= key -%>" type="hidden" value="<%= value.sub('"', '\\"') -%>" />
+          <% end %>
+          <% if @pivot[:cancel_filter_query_url] %>
+            <img src="" />
+          <% else %>
+            <img src="" />
+          <% end %>
+        </div>
       </form>
 
       <div>
@@ -56,11 +60,11 @@
     <div class="summary">
       <div class="result-count">
         Showing <%= pluralize(@pivot[:results].size, 'result') -%>.
-        <% if @pivot[:reset_filters_url] %>
+        <% if @pivot[:summary].length > 0 %>
           The following filters are in effect:
         <% end %>
       </div>
-      <% if @pivot[:summary] %>
+      <% if @pivot[:summary].length > 0 %>
         <div class="crumbs"><%= @pivot[:summary] -%></div>
       <% end %>
     </div>

Modified: branches/discovery/public/stylesheets/styles.css (2478 => 2479)


--- branches/discovery/public/stylesheets/styles.css	2010-07-19 13:11:55 UTC (rev 2478)
+++ branches/discovery/public/stylesheets/styles.css	2010-07-19 15:35:15 UTC (rev 2479)
@@ -2157,6 +2157,22 @@
 	text-align: left;
 }
 
+.pivot .filter_search_box {
+  border: 1px solid gray;
+}
+
+.pivot .filter_search_box INPUT {
+  width: 127px;
+  border: none;
+  outline: none;
+}
+
+.pivot .filter_search_box IMG {
+  vertical-align: middle;
+  position: relative;
+  top: -1px;
+}
+
 .truncate {
   white-space: nowrap;
 }

reply via email to

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