query.editor.html 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. <div class="editor-row" style="margin-top: 10px;">
  2. <div ng-repeat="target in panel.targets"
  3. style="margin-bottom: 10px;"
  4. ng-class="{'tight-form-disabled': target.hide}"
  5. ng-controller="OpenTSDBQueryCtrl"
  6. ng-init="init()">
  7. <div class="tight-form">
  8. <ul class="tight-form-list pull-right">
  9. <li class="tight-form-item">
  10. <div class="dropdown">
  11. <a class="pointer dropdown-toggle"
  12. data-toggle="dropdown"
  13. tabindex="1">
  14. <i class="fa fa-bars"></i>
  15. </a>
  16. <ul class="dropdown-menu pull-right" role="menu">
  17. <li role="menuitem">
  18. <a tabindex="1"
  19. ng-click="duplicate()">
  20. Duplicate
  21. </a>
  22. </li>
  23. </ul>
  24. </div>
  25. </li>
  26. <li class="tight-form-item last">
  27. <a class="pointer" tabindex="1" ng-click="removeDataQuery(target)">
  28. <i class="fa fa-remove"></i>
  29. </a>
  30. </li>
  31. </ul>
  32. <ul class="tight-form-list">
  33. <li>
  34. <a class="tight-form-item"
  35. ng-click="target.hide = !target.hide; get_data();"
  36. role="menuitem">
  37. <i class="fa fa-eye"></i>
  38. </a>
  39. </li>
  40. </ul>
  41. <ul class="tight-form-list" role="menu">
  42. <li class="tight-form-item" style="width: 86px">
  43. Metric
  44. </li>
  45. <li>
  46. <input type="text"
  47. class="input-large tight-form-input"
  48. ng-model="target.metric"
  49. spellcheck='false'
  50. bs-typeahead="suggestMetrics"
  51. placeholder="metric name"
  52. data-min-length=0 data-items=100
  53. ng-model-onblur
  54. ng-blur="targetBlur()"
  55. >
  56. <a bs-tooltip="target.errors.metric"
  57. style="color: rgb(229, 189, 28)"
  58. ng-show="target.errors.metric">
  59. <i class="fa fa-warning"></i>
  60. </a>
  61. </li>
  62. <li class="tight-form-item">
  63. Aggregator
  64. </li>
  65. <li>
  66. <select ng-model="target.aggregator"
  67. class="tight-form-input input-small"
  68. ng-options="agg for agg in aggregators"
  69. ng-change="targetBlur()">
  70. </select>
  71. <a bs-tooltip="target.errors.aggregator"
  72. style="color: rgb(229, 189, 28)"
  73. ng-show="target.errors.aggregator">
  74. <i class="fa fa-warning"></i>
  75. </a>
  76. </li>
  77. <li class="tight-form-item">
  78. Alias:
  79. </li>
  80. <li>
  81. <input type="text"
  82. class="tight-form-input input-medium"
  83. ng-model="target.alias"
  84. spellcheck='false'
  85. placeholder="series alias"
  86. data-min-length=0 data-items=100
  87. ng-blur="targetBlur()"
  88. />
  89. </li>
  90. </ul>
  91. <div class="clearfix"></div>
  92. </div>
  93. <div class="tight-form">
  94. <ul class="tight-form-list" role="menu">
  95. <li class="tight-form-item">
  96. <i class="fa fa-eye invisible"></i>
  97. </li>
  98. <li class="tight-form-item" style="width: 86px">
  99. Down sample
  100. </li>
  101. <li>
  102. <input type="text"
  103. class="input-large tight-form-input"
  104. ng-model="target.downsampleInterval"
  105. ng-model-onblur
  106. ng-change="targetBlur()"
  107. placeholder="interval (empty = auto)"
  108. >
  109. </li>
  110. <li class="tight-form-item">
  111. Aggregator
  112. </li>
  113. <li>
  114. <select ng-model="target.downsampleAggregator"
  115. class="tight-form-input input-small"
  116. ng-options="agg for agg in aggregators"
  117. ng-change="targetBlur()">
  118. </select>
  119. </li>
  120. <li class="tight-form-item">
  121. Disable downsampling&nbsp;
  122. <input class="cr1" id="target.disableDownsampling" type="checkbox"
  123. ng-model="target.disableDownsampling" ng-checked="target.disableDownsampling" ng-change="targetBlur()">
  124. <label for="target.disableDownsampling" class="cr1"></label>
  125. </li>
  126. </ul>
  127. <div class="clearfix"></div>
  128. </div>
  129. <div class="tight-form">
  130. <ul class="tight-form-list" role="menu">
  131. <li class="tight-form-item">
  132. <i class="fa fa-eye invisible"></i>
  133. </li>
  134. <li class="tight-form-item" style="width: 86px">
  135. Tags
  136. </li>
  137. <li ng-repeat="(key, value) in target.tags track by $index" class="tight-form-item">
  138. {{key}}&nbsp;=&nbsp;{{value}}
  139. <a ng-click="removeTag(key)">
  140. <i class="fa fa-remove"></i>
  141. </a>
  142. </li>
  143. <li class="tight-form-item" ng-hide="addTagMode">
  144. <a ng-click="addTag()">
  145. <i class="fa fa-plus"></i>
  146. </a>
  147. </li>
  148. <li ng-show="addTagMode">
  149. <input type="text"
  150. class="input-small tight-form-input"
  151. spellcheck='false'
  152. bs-typeahead="suggestTagKeys"
  153. data-min-length=0 data-items=100
  154. ng-model="target.currentTagKey"
  155. placeholder="key">
  156. <input type="text"
  157. class="input-small tight-form-input"
  158. spellcheck='false'
  159. bs-typeahead="suggestTagValues"
  160. data-min-length=0 data-items=100
  161. ng-model="target.currentTagValue"
  162. placeholder="value">
  163. <a ng-click="addTag()">
  164. add tag
  165. </a>
  166. <a bs-tooltip="target.errors.tags"
  167. style="color: rgb(229, 189, 28)"
  168. ng-show="target.errors.tags">
  169. <i class="fa fa-warning"></i>
  170. </a>
  171. </li>
  172. </ul>
  173. <div class="clearfix"></div>
  174. </div>
  175. <div class="tight-form">
  176. <ul class="tight-form-list" role="menu">
  177. <li class="tight-form-item">
  178. <i class="fa fa-eye invisible"></i>
  179. </li>
  180. <li class="tight-form-item" style="width: 86px">
  181. Rate&nbsp;
  182. <input class="cr1" id="target.shouldComputeRate" type="checkbox"
  183. ng-model="target.shouldComputeRate" ng-checked="target.shouldComputeRate" ng-change="targetBlur()">
  184. <label for="target.shouldComputeRate" class="cr1"></label>
  185. </li>
  186. <li class="tight-form-item" ng-hide="!target.shouldComputeRate">
  187. Counter&nbsp;
  188. <input class="cr1" id="target.isCounter" type="checkbox"
  189. ng-model="target.isCounter" ng-checked="target.isCounter" ng-change="targetBlur()">
  190. <label for="target.isCounter" class="cr1"></label>
  191. </li>
  192. <li class="tight-form-item" ng-hide="!target.isCounter">
  193. Counter Max:
  194. </li>
  195. <li ng-hide="!target.isCounter">
  196. <input type="text"
  197. class="tight-form-input input-small"
  198. ng-disabled="!target.shouldComputeRate"
  199. ng-model="target.counterMax"
  200. spellcheck='false'
  201. placeholder="max value"
  202. ng-model-onblur
  203. ng-blur="targetBlur()"
  204. />
  205. </li>
  206. <li class="tight-form-item" ng-hide="!target.isCounter">
  207. Reset Value:
  208. </li>
  209. <li ng-hide="!target.isCounter">
  210. <input type="text"
  211. class="tight-form-input input-small"
  212. ng-disabled="!target.shouldComputeRate"
  213. ng-model="target.counterResetValue"
  214. spellcheck='false'
  215. placeholder="reset value"
  216. ng-model-onblur
  217. ng-blur="targetBlur()"
  218. />
  219. </li>
  220. </ul>
  221. <div class="clearfix"></div>
  222. </div>
  223. </div>
  224. </div>