show.html.erb 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <% blazer_title @query.name %>
  2. <div class="topbar">
  3. <div class="container">
  4. <div class="row" style="padding-top: 13px;">
  5. <div class="col-sm-9">
  6. <%= render partial: "blazer/nav" %>
  7. <h3 style="margin: 0; line-height: 34px; display: inline;">
  8. <%= @query.name %>
  9. </h3>
  10. </div>
  11. <div class="col-sm-3 text-right">
  12. <%= link_to "Edit", edit_query_path(@query, variable_params), class: "btn btn-default", disabled: !@query.editable?(blazer_user) %>
  13. <%= link_to "Fork", new_query_path(variable_params.merge(fork_query_id: @query.id, data_source: @query.data_source, name: @query.name)), class: "btn btn-info" %>
  14. <% if !@error && @success %>
  15. <%= button_to "Download", run_queries_path(query_id: @query.id, format: "csv"), params: {statement: @statement}, class: "btn btn-primary" %>
  16. <% end %>
  17. </div>
  18. </div>
  19. </div>
  20. </div>
  21. <div style="margin-bottom: 60px;"></div>
  22. <% if @sql_errors.any? %>
  23. <div class="alert alert-danger">
  24. <ul>
  25. <% @sql_errors.each do |message| %>
  26. <li><%= message %></li>
  27. <% end %>
  28. </ul>
  29. </div>
  30. <% end %>
  31. <% if @query.description.present? %>
  32. <p><%= @query.description %></p>
  33. <% end %>
  34. <%= render partial: "blazer/variables", locals: {action: query_path(@query)} %>
  35. <pre id="code"><code><%= @statement %></code></pre>
  36. <% if @success %>
  37. <div id="results">
  38. <p class="text-muted">Loading...</p>
  39. </div>
  40. <script>
  41. function showRun(data) {
  42. $("#results").html(data);
  43. $("#results table").stupidtable().stickyTableHeaders({fixedOffset: 60});
  44. }
  45. function showError(message) {
  46. $("#results").css("color", "red").html(message);
  47. }
  48. <%= blazer_js_var "data", variable_params.merge(statement: @statement, query_id: @query.id) %>
  49. runQuery(data, showRun, showError);
  50. </script>
  51. <% end %>
  52. <% if %w[sql presto].include?(Blazer.data_sources[@query.data_source].adapter) %>
  53. <script>
  54. // do not highlight really long queries
  55. // this can lead to performance issues
  56. if ($("code").text().length < 10000) {
  57. hljs.highlightBlock(document.getElementById("code"));
  58. }
  59. </script>
  60. <% end %>