search.html 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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. <a href="#" bs-tooltip="'Search'" data-placement="bottom" ng-click="openSearch()" class="dropdown-toggle" data-toggle="dropdown">
  15. <i class='icon-folder-open'></i>
  16. </a>
  17. <ul class="dropdown-menu" id="grafana-search">
  18. <li ng-if="!showImport">
  19. <div class="grafana-search-panel">
  20. <div class="search-field-wrapper">
  21. <button class="btn btn-success pull-right" ng-click="toggleImport($event)">
  22. <i class="icon-download-alt"></i>
  23. Import
  24. </button>
  25. <button class="btn btn-success pull-right" ng-click="newDashboard()">
  26. <i class="icon-th-large"></i>
  27. New
  28. </button>
  29. <span class="position: relative;">
  30. <input type="text"
  31. placeholder="search dashboards, metrics, or graphs"
  32. xng-focus="giveSearchFocus"
  33. ng-keydown="keyDown($event)"
  34. ng-model="query.query" spellcheck='false'
  35. ng-change="search()" />
  36. <a class="search-tagview-switch" href="javascript:void(0);"
  37. ng-class="{'active': tagsOnly}"
  38. ng-click="showTags($event)">tags</a>
  39. </span>
  40. </div>
  41. <h6 ng-hide="results.dashboards.length || results.metrics.length">No dashboards or metrics matching your query found</h6>
  42. <table class="table table-condensed table-striped" ng-if="tagsOnly">
  43. <tr ng-repeat="tag in results.tags" ng-class="{'selected-tag': $index === selectedIndex }">
  44. <td>
  45. <a ng-click="filterByTag(tag.term, $event)" class="label label-tag">
  46. {{tag.term}} &nbsp;({{tag.count}})
  47. </a>
  48. </td>
  49. <td style="width:100%;padding-left: 10px;font-weight: bold;">
  50. </td>
  51. </tr>
  52. </table>
  53. <table class="table table-condensed table-striped" ng-if="!tagsOnly">
  54. <tr bindonce ng-repeat="row in results.metrics"
  55. class="grafana-search-metric-result"
  56. ng-class="{'selected': $index === selectedIndex }">
  57. <td><span class="label label-info">metric</span></td>
  58. <td class="grafana-search-metric-name">
  59. {{row._id}}
  60. </td>
  61. <td style="width:100%;">
  62. <div class="grafana-search-metric-actions">
  63. <a ng-click="addMetricToCurrentDashboard(row._id)"><i class="icon-plus-sign"></i> Add to dashboard</a>
  64. </div>
  65. </td>
  66. </tr>
  67. <tr bindonce
  68. ng-repeat="row in results.dashboards"
  69. ng-class="{'selected': $index === selectedIndex }">
  70. <td><a confirm-click="elasticsearch_delete(row._id)" confirmation="Are you sure you want to delete the {{row._id}} dashboard"><i class="icon-remove"></i></a></td>
  71. <td style="width:100%">
  72. <a href="#/dashboard/elasticsearch/{{row._id}}" bo-text="row._id"></a>
  73. </td>
  74. <td style="white-space: nowrap; text-align: right;">
  75. <a ng-click="filterByTag(tag, $event)" ng-repeat="tag in row._source.tags" style="margin-right: 5px;" class="label label-tag">
  76. {{tag}}
  77. </a>
  78. </td>
  79. <td><a><i class="icon-share" ng-click="share = dashboard.share_link(row._id,'elasticsearch',row._id)" config-modal="app/partials/dashLoaderShare.html"></i></a></td>
  80. </tr>
  81. </table>
  82. </div>
  83. </li>
  84. <!-- ng-show="dashboard.current.loader.load_gist || dashboard.current.loader.load_local" -->
  85. <li ng-if="showImport" style="margin: 20px;">
  86. <div class="editor-row">
  87. <div class="section">
  88. <div class="editor-option">
  89. <h5>Local File <tip>Load dashboard JSON layout from file</tip></h5>
  90. <form>
  91. <input type="file" id="dashupload" dash-upload /><br>
  92. </form>
  93. </div>
  94. </div>
  95. </div>
  96. <div class="editor-row" ng-show='dashboard.current.loader.load_gist'>
  97. <h5>Gist <tip>Enter a gist number or url</tip></h5>
  98. <form>
  99. <input type="text" ng-model="gist.url" placeholder="Gist number or URL"><br>
  100. <button class="btn" ng-click="gist_dblist(dashboard.gist_id(gist.url))" ng-show="dashboard.is_gist(gist.url)"><i class="icon-github-alt"></i> Get gist:{{gist.url | gistid}}</button>
  101. <h6 ng-show="gist.files.length">Dashboards in gist:{{gist.url | gistid}} <small>click to load</small></h6>
  102. <h6 ng-hide="gist.files.length || !gist.url.length">No gist dashboards found</h6>
  103. <table class="table table-condensed table-striped">
  104. <tr ng-repeat="file in gist.files">
  105. <td><a ng-click="dashboard.dash_load(file)">{{file.title}}</a></td>
  106. </tr>
  107. </table>
  108. </form>
  109. </div>
  110. </li>