|
@@ -1,13 +1,13 @@
|
|
module Blazer
|
|
module Blazer
|
|
class QueriesController < BaseController
|
|
class QueriesController < BaseController
|
|
- before_action :set_queries, only: [:home, :index]
|
|
|
|
before_action :set_query, only: [:show, :edit, :update, :destroy, :refresh]
|
|
before_action :set_query, only: [:show, :edit, :update, :destroy, :refresh]
|
|
|
|
|
|
def home
|
|
def home
|
|
- @queries = @queries.limit(1000)
|
|
|
|
|
|
+ set_queries(1000)
|
|
end
|
|
end
|
|
|
|
|
|
def index
|
|
def index
|
|
|
|
+ set_queries
|
|
render partial: "index", layout: false
|
|
render partial: "index", layout: false
|
|
end
|
|
end
|
|
|
|
|
|
@@ -168,9 +168,20 @@ module Blazer
|
|
|
|
|
|
private
|
|
private
|
|
|
|
|
|
- def set_queries
|
|
|
|
|
|
+ def set_queries(limit = nil)
|
|
|
|
+ @my_queries =
|
|
|
|
+ if blazer_user
|
|
|
|
+ recent_query_ids = Blazer::Audit.where(user_id: blazer_user.id).where("query_id IS NOT NULL").order("created_at desc").limit(100).pluck(:query_id).uniq.first(20)
|
|
|
|
+ queries = Blazer::Query.where(id: recent_query_ids).index_by(&:id)
|
|
|
|
+ recent_query_ids.map { |query_id| queries[query_id] }.compact
|
|
|
|
+ else
|
|
|
|
+ []
|
|
|
|
+ end
|
|
|
|
+
|
|
@queries = Blazer::Query.order(:name)
|
|
@queries = Blazer::Query.order(:name)
|
|
|
|
+ @queries = @queries.where("id NOT IN (?)", @my_queries.map(&:id)) if @my_queries.any?
|
|
@queries = @queries.includes(:creator) if Blazer.user_class
|
|
@queries = @queries.includes(:creator) if Blazer.user_class
|
|
|
|
+ @queries = @queries.limit(limit) if limit
|
|
@trending_queries = Blazer::Audit.group(:query_id).where("created_at > ?", 2.days.ago).having("COUNT(DISTINCT user_id) >= 3").uniq.count(:user_id)
|
|
@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
|
|
@checks = Blazer::Check.group(:query_id).count
|
|
@dashboards = Blazer::Dashboard.order(:name)
|
|
@dashboards = Blazer::Dashboard.order(:name)
|