home.html.erb 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <div id="queries">
  2. <div id="header" style="margin-bottom: 20px;">
  3. <div class="btn-group pull-right">
  4. <%= link_to "New Query", new_query_path, class: "btn btn-info" %>
  5. <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  6. <span class="caret"></span>
  7. <span class="sr-only">Toggle Dropdown</span>
  8. </button>
  9. <ul class="dropdown-menu">
  10. <li><%= link_to "Dashboards", dashboards_path %></li>
  11. <li><%= link_to "Checks", checks_path %></li>
  12. <li role="separator" class="divider"></li>
  13. <li><%= link_to "New Dashboard", new_dashboard_path %></li>
  14. <li><%= link_to "New Check", new_check_path %></li>
  15. </ul>
  16. </div>
  17. <input type="text" placeholder="Start typing a query or person" style="width: 300px; display: inline-block;" autofocus=true class="search form-control" />
  18. </div>
  19. <table class="table">
  20. <thead>
  21. <tr>
  22. <th>Name</th>
  23. <th style="width: 20%; text-align: right;">Mastermind</th>
  24. </tr>
  25. </thead>
  26. <tbody class="list">
  27. <tr id="search-item">
  28. <td>
  29. <span class="name"></span>
  30. <span class="vars"></span>
  31. <span class="hide"></span>
  32. </td>
  33. <td class="creator"></td>
  34. </tr>
  35. </tbody>
  36. </table>
  37. </div>
  38. <script>
  39. var options = {
  40. valueNames: ["name", "vars", "hide", "creator"],
  41. item: "search-item",
  42. page: 200,
  43. indexAsync: true
  44. };
  45. var dashboardValues = <%= blazer_json_escape(@dashboards.to_json).html_safe %>;
  46. var queryValues = <%= blazer_json_escape(@queries.to_json).html_safe %>;
  47. var queryList = new List("queries", options, dashboardValues);
  48. queryList.add(queryValues);
  49. var queryIds = {};
  50. for (var i = 0; i < queryValues.length; i++) {
  51. queryIds[queryValues[i].id] = true;
  52. }
  53. </script>
  54. <% if @queries.size >= 200 %>
  55. <p id="loading" class="text-muted">Loading...</p>
  56. <script>
  57. $.getJSON("<%= queries_path %>", function (data) {
  58. var i, j, newValues, val, size = 500;
  59. $("#loading").remove();
  60. for (i = 0; i < data.length / size; i++) {
  61. newValues = [];
  62. for (j = 0; j < size; j++) {
  63. val = data[i * size + j];
  64. if (!val) {
  65. break;
  66. }
  67. if (!queryIds[val.id]) {
  68. newValues.push(val);
  69. }
  70. }
  71. queryList.add(newValues);
  72. }
  73. });
  74. </script>
  75. <% end %>