Andrew před 9 roky
rodič
revize
c42fe9dd12

+ 10 - 5
app/controllers/blazer/queries_controller.rb

@@ -1,16 +1,14 @@
 module Blazer
   class QueriesController < BaseController
+    before_action :set_queries, only: [:home, :index]
     before_action :set_query, only: [:show, :edit, :update, :destroy]
 
     def home
+      @queries = @queries.limit(1000)
     end
 
     def index
-      @queries = Blazer::Query.order(:name)
-      @queries = @queries.includes(:creator) if Blazer.user_class
-      @trending_queries = Blazer::Audit.group(:query_id).where("created_at > ?", 2.days.ago).having("COUNT(DISTINCT user_id) >= 3").uniq.count(:user_id)
-      @checks = Blazer::Check.group(:query_id).count
-      render layout: false
+      render partial: "index", layout: false
     end
 
     def new
@@ -139,6 +137,13 @@ module Blazer
 
     private
 
+    def set_queries
+      @queries = Blazer::Query.order(:name)
+      @queries = @queries.includes(:creator) if Blazer.user_class
+      @trending_queries = Blazer::Audit.group(:query_id).where("created_at > ?", 2.days.ago).having("COUNT(DISTINCT user_id) >= 3").uniq.count(:user_id)
+      @checks = Blazer::Check.group(:query_id).count
+    end
+
     def set_query
       @query = Blazer::Query.find(params[:id].to_s.split("-").first)
     end

+ 1 - 1
app/views/blazer/queries/index.html.erb → app/views/blazer/queries/_index.html.erb

@@ -3,7 +3,7 @@
     <td class="query">
       <%= link_to query.name, query %>
       <span style="color: #ccc;"><%= extract_vars(query.statement).join(", ") %></span>
-      <% if query.created_at > 2.days.ago %>
+      <% if @queries.size < 1000 && query.created_at > 2.days.ago %>
         <small style="font-weight: bold; color: #5cb85c;">NEW</small>
       <% end %>
       <% if @trending_queries[query.id] %>

+ 15 - 5
app/views/blazer/queries/home.html.erb

@@ -16,15 +16,25 @@
       </tr>
     </thead>
     <tbody class="list">
+      <%= render partial: "index" %>
     </tbody>
   </table>
 </div>
 
 <script>
-  $(".list").load("<%= queries_path %>", function () {
-    var options = {
-      valueNames: ['query', 'creator']
-    };
+  var options = {
+    valueNames: ['query', 'creator']
+  };
+
+  function updateList() {
     var userList = new List('queries', options);
-  });
+    userList.search($(".search").val());
+  }
+  updateList();
 </script>
+
+<% if @queries.size == 1000 %>
+  <script>
+    $(".list").load("<%= queries_path %>", updateList);
+  </script>
+<% end %>