show.html.erb 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. <%= button_to "Download", run_queries_path(query_id: @query.id, format: "xls"), params: {statement: @statement}, class: "btn btn-primary" %>
  17. <% end %>
  18. </div>
  19. </div>
  20. </div>
  21. </div>
  22. <div style="margin-bottom: 60px;"></div>
  23. <% if @sql_errors.any? %>
  24. <div class="alert alert-danger">
  25. <ul>
  26. <% @sql_errors.each do |message| %>
  27. <li><%= message %></li>
  28. <% end %>
  29. </ul>
  30. </div>
  31. <% end %>
  32. <% if @query.description.present? %>
  33. <p><%= @query.description %></p>
  34. <% end %>
  35. <%= render partial: "blazer/variables", locals: {action: query_path(@query)} %>
  36. <pre id="code"><code><%= @statement %></code></pre>
  37. <% if @success %>
  38. <div id="results">
  39. <p class="text-muted">Loading...</p>
  40. </div>
  41. <script>
  42. function showRun(data) {
  43. $("#results").html(data)
  44. $("#results table").stupidtable().stickyTableHeaders({fixedOffset: 60})
  45. }
  46. function showError(message) {
  47. $("#results").addClass("query-error").html(message)
  48. }
  49. <%= blazer_js_var "data", variable_params.merge(statement: @statement, query_id: @query.id) %>
  50. runQuery(data, showRun, showError)
  51. </script>
  52. <% end %>
  53. <% unless %w(mongodb elasticsearch).include?(Blazer.data_sources[@query.data_source].adapter) %>
  54. <script>
  55. // do not highlight really long queries
  56. // this can lead to performance issues
  57. if ($("code").text().length < 10000) {
  58. hljs.highlightBlock(document.getElementById("code"));
  59. }
  60. </script>
  61. <% end %>