search.html 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. <input type="text"
  21. placeholder="search dashboards, metrics, or graphs"
  22. xng-focus="giveSearchFocus"
  23. ng-keydown="keyDown($event)"
  24. ng-model="elasticsearch.query"
  25. ng-change="elasticsearch_dblist(elasticsearch.query)" />
  26. <h6 ng-hide="search_results.dashboards.length || search_results.metrics.length">No dashboards or metrics matching your query found</h6>
  27. <table class="table table-condensed table-striped">
  28. <tr bindonce ng-repeat="row in search_results.metrics"
  29. class="grafana-search-metric-result"
  30. ng-class="{'selected': $index === selectedIndex }">
  31. <td><span class="label label-info">metric</span></td>
  32. <td class="grafana-search-metric-name">
  33. {{row._id}}
  34. </td>
  35. <td style="width:100%;">
  36. <div class="grafana-search-metric-actions">
  37. <a ng-click="addMetricToCurrentDashboard(row._id)"><i class="icon-plus-sign"></i> Add to dashboard</a>
  38. </div>
  39. </td>
  40. </tr>
  41. <tr bindonce
  42. ng-repeat="row in search_results.dashboards"
  43. ng-class="{'selected': $index === selectedIndex }">
  44. <td><a ng-click="elasticsearch_delete(row._id)"><i class="icon-remove"></i></a></td>
  45. <td style="width:100%"><a href="#/dashboard/elasticsearch/{{row._id}}" bo-text="row._id"></a></td>
  46. <td><a><i class="icon-share" ng-click="share = dashboard.share_link(row._id,'elasticsearch',row._id)" bs-modal="'app/panels/dashcontrol/share.html'"></i></a></td>
  47. </tr>
  48. </table>
  49. </div>
  50. </li>
  51. <li class="pull-right" style="margin: 5px;">
  52. <a ng-click="toggleImport($event)">Import</a>
  53. </li>
  54. <!-- ng-show="dashboard.current.loader.load_gist || dashboard.current.loader.load_local" -->
  55. <li ng-if="showImport" style="margin: 20px;">
  56. <div class="editor-row">
  57. <div class="section">
  58. <div class="editor-option">
  59. <h5>Local File <tip>Load dashboard JSON layout from file</tip></h5>
  60. <form>
  61. <input type="file" id="dashupload" dash-upload /><br>
  62. </form>
  63. </div>
  64. </div>
  65. </div>
  66. <div class="editor-row" ng-show='dashboard.current.loader.load_gist'>
  67. <h5>Gist <tip>Enter a gist number or url</tip></h5>
  68. <form>
  69. <input type="text" ng-model="gist.url" placeholder="Gist number or URL"><br>
  70. <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>
  71. <h6 ng-show="gist.files.length">Dashboards in gist:{{gist.url | gistid}} <small>click to load</small></h6>
  72. <h6 ng-hide="gist.files.length || !gist.url.length">No gist dashboards found</h6>
  73. <table class="table table-condensed table-striped">
  74. <tr ng-repeat="file in gist.files">
  75. <td><a ng-click="dashboard.dash_load(file)">{{file.title}}</a></td>
  76. </tr>
  77. </table>
  78. </form>
  79. </div>
  80. </li>