dasheditor.html 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <div class="modal-body">
  2. <div class="pull-right editor-title">Dashboard settings</div>
  3. <div ng-model="editor.index" bs-tabs>
  4. <div ng-repeat="tab in ['General','Index','Rows','Controls']" data-title="{{tab}}">
  5. </div>
  6. </div>
  7. <div ng-show="editor.index == 0">
  8. <div class="row-fluid">
  9. <div class="span4">
  10. <label class="small">Title</label><input type="text" class="input-large" ng-model='dashboard.current.title'></input>
  11. </div>
  12. <div class="span1">
  13. <label class="small"> Editable </label><input type="checkbox" ng-model="dashboard.current.editable" ng-checked="dashboard.current.editable" />
  14. </div>
  15. <div class="span3">
  16. <label class="small">Style</label><select class="input-small" ng-model="dashboard.current.style" ng-options='f for f in ["dark","light"]'></select>
  17. </div>
  18. </div>
  19. </div>
  20. <div ng-show="editor.index == 1">
  21. <div class="row-fluid">
  22. <h4>Index Settings</h4>
  23. <div ng-show="dashboard.current.index.interval != 'none'" class="row-fluid">
  24. <div class="span12">
  25. <p class="small">
  26. Time stamped indices use your selected time range to create a list of
  27. indices that match a specified timestamp pattern. This can be very
  28. efficient for some data sets (eg, logs) For example, to match the
  29. default logstash index pattern you might use
  30. <code>[logstash-]YYYY.MM.DD</code>. The [] in "[logstash-]" are
  31. important as they instruct Kibana not to treat those letters as a
  32. pattern.
  33. Please also note that indices should rollover at midnight <strong>UTC</strong>.
  34. </p>
  35. <p class="small">
  36. See <a href="http://momentjs.com/docs/#/displaying/format/">http://momentjs.com/docs/#/displaying/format/</a>
  37. for documentation on date formatting.
  38. </p>
  39. </div>
  40. </div>
  41. </div>
  42. <div class="row-fluid">
  43. <div class="span2">
  44. <h6>Timestamping</h6><select class="input-small" ng-model="dashboard.current.index.interval" ng-options='f for f in ["none","hour","day","week","month","year"]'></select>
  45. </div>
  46. <div class="span4" ng-show="dashboard.current.index.interval != 'none'">
  47. <h6>Index pattern <small>Absolutes in []</small></h6>
  48. <input type="text" class="input-medium" ng-model="dashboard.current.index.pattern">
  49. </div>
  50. <div class="span2" ng-show="dashboard.current.index.interval != 'none'">
  51. <h6>Failover <i class="icon-question-sign" bs-tooltip="'If no indices match the pattern, failover to default index *NOT RECOMMENDED*'"></i></h6>
  52. <input type="checkbox" ng-model="dashboard.current.failover" ng-checked="dashboard.current.failover" />
  53. </div>
  54. <div class="span4" ng-show="dashboard.current.failover || dashboard.current.index.interval == 'none'">
  55. <h6>Default Index <small ng-show="dashboard.current.index.interval != 'none'">If index not found</small></h6>
  56. <input type="text" class="input-medium" ng-model="dashboard.current.index.default">
  57. </div>
  58. </div>
  59. </div>
  60. <div ng-show="editor.index == 2">
  61. <div class="row-fluid">
  62. <div class="span12">
  63. <table class="table table-condensed table-striped">
  64. <thead>
  65. <th>Title</th>
  66. <th>Delete</th>
  67. <th>Move</th>
  68. </thead>
  69. <tr ng-repeat="row in dashboard.current.rows">
  70. <td>{{row.title}}</td>
  71. <td><i ng-click="dashboard.current.rows = _.without(dashboard.current.rows,row)" class="pointer icon-remove"></i></td>
  72. <td><i ng-click="_.move(dashboard.current.rows,$index,$index-1)" ng-hide="$first" class="pointer icon-arrow-up"></i></td>
  73. <td><i ng-click="_.move(dashboard.current.rows,$index,$index+1)" ng-hide="$last" class="pointer icon-arrow-down"></i></td>
  74. </tr>
  75. </table>
  76. </div>
  77. </div>
  78. <div class="row-fluid">
  79. <form>
  80. <div class="span5">
  81. <label class="small">Title</label>
  82. <input type="text" class="input-large" ng-model='row.title' placeholder="New row"></input>
  83. </div>
  84. <div class="span2">
  85. <label class="small">Height</label>
  86. <input type="text" class="input-mini" ng-model='row.height'></input>
  87. </div>
  88. <div class="span1">
  89. <label class="small"> Editable </label>
  90. <input type="checkbox" ng-model="row.editable" ng-checked="row.editable" />
  91. </div>
  92. </form>
  93. </div>
  94. </div>
  95. <div ng-show="editor.index == 3" ng-controller="dashLoader">
  96. <h5>Allow saving to</h5>
  97. <div class="row-fluid">
  98. <div class="span2">
  99. <label class="small">File</label><input type="checkbox" ng-model="loader.save_local" ng-checked="loader.save_local">
  100. </div>
  101. <div class="span2">
  102. <label class="small">Browser</label><input type="checkbox" ng-model="loader.save_default" ng-checked="loader.save_default">
  103. </div>
  104. <div class="span2">
  105. <label class="small">Gist <tip>Requires your domain to be OAUTH registered with Github<tip></label><input type="checkbox" ng-model="loader.save_gist" ng-checked="loader.save_gist">
  106. </div>
  107. <div class="span2">
  108. <label class="small">Elasticsearch</label><input type="checkbox" ng-model="loader.save_elasticsearch" ng-checked="loader.save_elasticsearch">
  109. </div>
  110. </div>
  111. <h5>Allow loading from</h5>
  112. <div class="row-fluid">
  113. <div class="span2">
  114. <label class="small">Local file</label><input type="checkbox" ng-model="loader.load_local" ng-checked="loader.load_local">
  115. </div>
  116. <div class="span2">
  117. <label class="small">Gist</label><input type="checkbox" ng-model="loader.load_gist" ng-checked="loader.load_gist">
  118. </div>
  119. <div class="span2">
  120. <label class="small">Elasticsearch</label><input type="checkbox" ng-model="loader.load_elasticsearch" ng-checked="loader.load_elasticsearch">
  121. </div>
  122. <div class="span3" ng-show="loader.load.elasticsearch">
  123. <label class="small">ES list size</label><input class="input-mini" type="number" ng-model="loader.load_elasticsearch_size">
  124. </div>
  125. </div>
  126. <h5>Sharing</h5>
  127. <div class="row-fluid">
  128. <div class="span2" >
  129. <label class="small">Allow Sharing <tip>Allow generating adhoc links to dashboards</tip></label><input type="checkbox" ng-model="loader.save_temp" ng-checked="loader.save_temp">
  130. </div>
  131. <div class="span2" ng-show="loader.save_temp">
  132. <label class="small">TTL <tip>Expire temp urls</tip></label><input type="checkbox" ng-model="loader.save_temp_ttl_enable">
  133. </div>
  134. <div class="span5" ng-show="loader.save_temp && loader.save_temp_ttl_enable">
  135. <label class="small">TTL Duration <tip>Elasticsearch date math, eg: 1m,1d,1w,30d </tip></label><input class="input-small" type="text" ng-model="loader.save_temp_ttl">
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140. <div class="modal-footer">
  141. <button ng-click="add_row(dashboard.current,row); reset_row();" class="btn btn-success" ng-show="editor.index == 2">Create Row</button>
  142. <button type="button" class="btn btn-danger" ng-click="editor.index=0;dismiss();reset_panel();dashboard.refresh()">Close</button>
  143. </div>