Procházet zdrojové kódy

Merge branch 'ryninho-master'

Andrew Kane před 8 roky
rodič
revize
c63224b769

+ 4 - 0
CHANGELOG.md

@@ -1,3 +1,7 @@
+## 1.1.1 [unreleased]
+
+- Added invert option for checks
+
 ## 1.1.0
 
 - Replaced pie charts with column charts

+ 1 - 1
app/controllers/blazer/checks_controller.rb

@@ -41,7 +41,7 @@ module Blazer
     private
 
     def check_params
-      params.require(:check).permit(:query_id, :emails)
+      params.require(:check).permit(:query_id, :emails, :invert)
     end
 
     def set_check

+ 3 - 2
app/models/blazer/check.rb

@@ -9,13 +9,14 @@ module Blazer
     end
 
     def update_state(rows, error)
+      invert = self.respond_to?(:invert) && self.invert
       self.state =
         if error
           "error"
         elsif rows.any?
-          "failing"
+          invert ? "passing" : "failing"
         else
-          "passing"
+          invert ? "failing" : "passing"
         end
 
       # do not notify on creation, except when not passing

+ 16 - 1
app/views/blazer/checks/_form.html.erb

@@ -1,4 +1,6 @@
-<p class="text-muted">Checks are designed to identify bad data. A check fails if there are any results.</p>
+<% unless @check.respond_to?(:invert) %>
+  <p class="text-muted">Checks are designed to identify bad data. A check fails if there are any results.</p>
+<% end %>
 
 <% if @check.errors.any? %>
   <div class="alert alert-danger"><%= @check.errors.full_messages.first %></div>
@@ -14,6 +16,19 @@
       $("#check_query_id").selectize().parents(".hide").removeClass("hide");
     </script>
   </div>
+
+<% if @check.respond_to?(:invert) %>
+  <div class="form-group">
+    <%= f.label "Fails if" %>
+    <div class="hide">
+      <%= f.select :invert, [["Any results (bad data)", false], ["No results (missing data)", true]], {}, {id: "select-invert"} %>
+    </div>
+    <script>
+      $("#select-invert").selectize({}).parent().removeClass("hide");
+    </script>
+  </div>
+<% end %>
+
   <div class="form-group">
     <%= f.label :emails %>
     <%= f.text_field :emails, placeholder: "Optional, comma separated", class: "form-control" %>