search.html 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <style>
  2. #grafana-search {
  3. position: fixed;
  4. right: 0;
  5. left: 0;
  6. top: 39px;
  7. margin-right: auto;
  8. margin-left: auto;
  9. /* give it dimensions */
  10. min-height: 10em;
  11. width: 90%;
  12. }
  13. </style>
  14. <div ng-controller="SearchCtrl" ng-init="init()">
  15. <div class="dashboard-editor-header">
  16. <div class="dashboard-editor-title" style="border: 0; line-height: 41px;">
  17. <i class="icon icon-search"></i>
  18. Search
  19. </div>
  20. <div class="grafana-search-panel">
  21. <div class="search-field-wrapper">
  22. <button class="btn btn-success pull-right" dash-editor-link="app/partials/playlist.html" editor-scope="isolated">
  23. <i class="icon-play"></i>
  24. Playlist
  25. </button>
  26. <button class="btn btn-success pull-right" ng-click="toggleImport($event)">
  27. <i class="icon-download-alt"></i>
  28. Import
  29. </button>
  30. <button class="btn btn-success pull-right" ng-click="newDashboard()">
  31. <i class="icon-th-large"></i>
  32. New
  33. </button>
  34. <span style="position: relative;">
  35. <input type="text"
  36. placeholder="search dashboards, metrics, or graphs"
  37. xng-focus="giveSearchFocus"
  38. ng-keydown="keyDown($event)"
  39. ng-model="query.query" spellcheck='false'
  40. ng-change="search()" />
  41. <a class="search-tagview-switch" href="javascript:void(0);"
  42. ng-class="{'active': tagsOnly}"
  43. ng-click="showTags($event)">tags</a>
  44. </span>
  45. </div>
  46. </div>
  47. <h6 ng-hide="results.dashboards.length">No dashboards matching your query were found.</h6>
  48. <div class="search-results-container" ng-if="tagsOnly">
  49. <div ng-repeat="tag in results.tags" class="pointer" style="width: 180px; float: left;"
  50. ng-class="{'selected': $index === selectedIndex }"
  51. ng-click="filterByTag(tag.term, $event)">
  52. <a class="search-result-tag label label-tag" tag-color-from-name>
  53. <i class="icon icon-tag"></i>
  54. <span>{{tag.term}} &nbsp;({{tag.count}})</span>
  55. </a>
  56. </div>
  57. </div>
  58. <div class="search-results-container" ng-if="!tagsOnly">
  59. <div class="search-result-item pointer"
  60. bindonce ng-repeat="row in results.dashboards"
  61. ng-class="{'selected': $index === selectedIndex }" ng-click="goToDashboard(row.id)">
  62. <div class="search-result-actions small">
  63. <a ng-click="shareDashboard(row.id, row.id, $event)" config-modal="app/partials/dashLoaderShare.html">
  64. <i class="icon-share"></i> share &nbsp;&nbsp;&nbsp;
  65. </a>
  66. <a ng-click="deleteDashboard(row.id, $event)">
  67. <i class="icon-remove"></i> delete
  68. </a>
  69. </div>
  70. <div class="search-result-tags">
  71. <a ng-click="filterByTag(tag, $event)" ng-repeat="tag in row.tags" tag-color-from-name class="label label-tag">
  72. {{tag}}
  73. </a>
  74. </div>
  75. <a class="search-result-link">
  76. <i class="icon icon-th-large"></i>
  77. <span bo-text="row.title"></span>
  78. </a>
  79. </div>
  80. </div>
  81. </div>
  82. </li>
  83. <li ng-if="showImport" style="margin: 20px;">
  84. <div class="editor-row">
  85. <div class="section">
  86. <div class="editor-option">
  87. <h5>Local File <tip>Load dashboard JSON layout from file</tip></h5>
  88. <form>
  89. <input type="file" id="dashupload" dash-upload /><br>
  90. </form>
  91. </div>
  92. </div>
  93. </div>
  94. </li>
  95. </div>