Andrew Kane vor 9 Jahren
Ursprung
Commit
0b93762c33

+ 1 - 0
app/assets/javascripts/blazer/application.js

@@ -7,6 +7,7 @@
 //= require ./highlight.pack
 //= require ./moment
 //= require ./daterangepicker
+//= require chartkick
 //= require ./ace/ace
 //= require ./ace/ext-language_tools
 //= require ./ace/theme-twilight

+ 8 - 0
app/views/blazer/queries/run.html.erb

@@ -5,6 +5,14 @@
 <% else %>
   <p class="text-muted"><%= pluralize(@rows.size, "row") %></p>
   <% if @rows.any? %>
+    <% values = @rows.first.values %>
+    <% if values.size >= 2 and values.first.is_a?(Time) and values[1..-1].all?{|v| v.is_a?(Numeric) } %>
+      <% time_k = @columns.keys.first %>
+      <%= line_chart @columns.keys[1..-1].map{|k| {name: k, data: @rows.map{|r| [r[time_k], r[k]] }} } %>
+    <% elsif values.size == 2 and values.first.is_a?(String) and values.last.is_a?(Numeric) %>
+      <%= pie_chart @rows.map(&:values), library: {sliceVisibilityThreshold: 1 / 40.0} %>
+    <% end %>
+
     <% header_width = 100 / @rows.first.keys.size.to_f %>
     <table class="table">
       <thead>

+ 3 - 0
app/views/blazer/queries/show.html.erb

@@ -119,6 +119,9 @@
     <p class="text-muted">Loading...</p>
   </div>
 
+  <% content_for :javascript do %>
+    <%= javascript_include_tag "//www.google.com/jsapi" %>
+  <% end %>
   <script>
     $.post("<%= run_queries_path %>", <%= json_escape({statement: @query.statement, query_id: @query.id}.to_json).html_safe %>, function (data) {
       $("#results").html(data);

+ 1 - 0
app/views/layouts/blazer/application.html.erb

@@ -6,6 +6,7 @@
     <meta charset="utf-8" />
 
     <%= stylesheet_link_tag "blazer/application" %>
+    <%= yield :javascript %>
     <%= javascript_include_tag "blazer/application" %>
     <%= csrf_meta_tags %>
   </head>

+ 1 - 0
blazer.gemspec

@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
   spec.require_paths = ["lib"]
 
   spec.add_dependency "rails"
+  spec.add_dependency "chartkick"
 
   spec.add_development_dependency "bundler", "~> 1.7"
   spec.add_development_dependency "rake", "~> 10.0"