Parcourir la source

Added mine filter

Andrew Kane il y a 8 ans
Parent
commit
b27562681e

+ 4 - 0
app/assets/stylesheets/blazer/application.css

@@ -157,3 +157,7 @@ input.search:focus {
 .list-group {
   cursor: move;
 }
+
+#header a.active {
+  color: #999;
+}

+ 9 - 1
app/controllers/blazer/queries_controller.rb

@@ -7,6 +7,9 @@ module Blazer
 
       @dashboards = Blazer::Dashboard.order(:name)
       @dashboards = @dashboards.includes(:creator) if Blazer.user_class
+      if params[:filter] == "mine"
+        @dashboards = [] # TODO show my dashboards
+      end
       @dashboards =
         @dashboards.map do |d|
           {
@@ -233,7 +236,7 @@ module Blazer
 
     def set_queries(limit = nil)
       @my_queries =
-        if limit && blazer_user
+        if limit && blazer_user && !params[:filter]
           favorite_query_ids = Blazer::Audit.where(user_id: blazer_user.id).where("created_at > ?", 30.days.ago).where("query_id IS NOT NULL").group(:query_id).order("count_all desc").count.keys
           queries = Blazer::Query.named.where(id: favorite_query_ids)
           queries = queries.includes(:creator) if Blazer.user_class
@@ -244,10 +247,15 @@ module Blazer
         end
 
       @queries = Blazer::Query.named.order(:name)
+      if params[:filter] == "mine"
+        @queries = @queries.where(creator_id: blazer_user.try(:id)).reorder(created_at: :desc)
+      end
       @queries = @queries.where("id NOT IN (?)", @my_queries.map(&:id)) if @my_queries.any?
       @queries = @queries.includes(:creator) if Blazer.user_class
       @queries = @queries.limit(limit) if limit
 
+      @more = @queries.size >= limit && !params[:filter]
+
       @queries = (@my_queries + @queries).select { |q| !q.name.to_s.start_with?("#") || q.try(:creator).try(:id) == blazer_user.try(:id) }
 
       @queries =

+ 18 - 14
app/views/blazer/queries/home.html.erb

@@ -1,18 +1,22 @@
 <div id="queries">
   <div id="header" style="margin-bottom: 20px;">
-    <div class="btn-group pull-right">
-      <%= link_to "New Query", new_query_path, class: "btn btn-info" %>
-      <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-        <span class="caret"></span>
-        <span class="sr-only">Toggle Dropdown</span>
-      </button>
-      <ul class="dropdown-menu">
-        <li><%= link_to "Dashboards", dashboards_path %></li>
-        <li><%= link_to "Checks", checks_path %></li>
-        <li role="separator" class="divider"></li>
-        <li><%= link_to "New Dashboard", new_dashboard_path %></li>
-        <li><%= link_to "New Check", new_check_path %></li>
-      </ul>
+    <div class="pull-right">
+      <%= link_to "All", root_path, class: params[:filter] != "mine" ? "active" : nil, style: "margin-right: 40px;" %>
+      <%= link_to "Mine", root_path(filter: "mine"), class: params[:filter] == "mine" ? "active" : nil, style: "margin-right: 40px;" %>
+      <div class="btn-group">
+        <%= link_to "New Query", new_query_path, class: "btn btn-info" %>
+        <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+          <span class="caret"></span>
+          <span class="sr-only">Toggle Dropdown</span>
+        </button>
+        <ul class="dropdown-menu">
+          <li><%= link_to "Dashboards", dashboards_path %></li>
+          <li><%= link_to "Checks", checks_path %></li>
+          <li role="separator" class="divider"></li>
+          <li><%= link_to "New Dashboard", new_dashboard_path %></li>
+          <li><%= link_to "New Check", new_check_path %></li>
+        </ul>
+      </div>
     </div>
     <input type="text" placeholder="Start typing a query or person" style="width: 300px; display: inline-block;" autofocus=true class="search form-control" />
   </div>
@@ -55,7 +59,7 @@
   }
 </script>
 
-<% if @queries.size >= 200 %>
+<% if @more %>
   <p id="loading" class="text-muted">Loading...</p>
   <script>
     $.getJSON("<%= queries_path %>", function (data) {