query.editor.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <div class="tight-form-container-no-item-borders">
  2. <div class="tight-form">
  3. <ul class="tight-form-list pull-right">
  4. <li ng-show="parserError" class="tight-form-item">
  5. <a bs-tooltip="parserError" style="color: rgb(229, 189, 28)" role="menuitem">
  6. <i class="fa fa-warning"></i>
  7. </a>
  8. </li>
  9. <li class="tight-form-item small" ng-show="target.datasource">
  10. <em>{{target.datasource}}</em>
  11. </li>
  12. <li class="tight-form-item">
  13. <div class="dropdown">
  14. <a class="pointer dropdown-toggle" data-toggle="dropdown" tabindex="1">
  15. <i class="fa fa-bars"></i>
  16. </a>
  17. <ul class="dropdown-menu pull-right" role="menu">
  18. <li role="menuitem"><a tabindex="1" ng-click="toggleQueryMode()">Switch editor mode</a></li>
  19. <li role="menuitem"><a tabindex="1" ng-click="duplicateDataQuery(target)">Duplicate</a></li>
  20. <li role="menuitem"><a tabindex="1" ng-click="moveDataQuery($index, $index-1)">Move up</a></li>
  21. <li role="menuitem"><a tabindex="1" ng-click="moveDataQuery($index, $index+1)">Move down</a></li>
  22. </ul>
  23. </div>
  24. </li>
  25. <li class="tight-form-item last">
  26. <a class="pointer" tabindex="1" ng-click="removeDataQuery(target)">
  27. <i class="fa fa-remove"></i>
  28. </a>
  29. </li>
  30. </ul>
  31. <ul class="tight-form-list">
  32. <li class="tight-form-item" style="min-width: 15px; text-align: center">
  33. {{target.refId}}
  34. </li>
  35. <li>
  36. <a class="tight-form-item" ng-click="target.hide = !target.hide; get_data();" role="menuitem">
  37. <i class="fa fa-eye"></i>
  38. </a>
  39. </li>
  40. </ul>
  41. <ul class="tight-form-list" ng-hide="target.rawQuery">
  42. <li class="tight-form-item query-keyword" style="width: 75px">
  43. FROM
  44. </li>
  45. <li>
  46. <metric-segment segment="measurementSegment" get-options="getMeasurements()" on-change="measurementChanged()"></metric-segment>
  47. </li>
  48. </ul>
  49. <div class="clearfix"></div>
  50. <div style="padding: 10px" ng-if="target.rawQuery">
  51. <textarea ng-model="target.query" rows="8" spellcheck="false" style="width: 100%; box-sizing: border-box;" ng-blur="get_data()"></textarea>
  52. </div>
  53. </div>
  54. <div ng-hide="target.rawQuery">
  55. <div class="tight-form">
  56. <ul class="tight-form-list">
  57. <li class="tight-form-item query-keyword tight-form-align" style="width: 75px;">
  58. WHERE
  59. </li>
  60. <li ng-repeat="segment in tagSegments">
  61. <metric-segment segment="segment" get-options="getTagsOrValues(segment, $index)" on-change="tagSegmentUpdated(segment, $index)"></metric-segment>
  62. </li>
  63. </ul>
  64. <div class="clearfix"></div>
  65. </div>
  66. <div class="tight-form" ng-repeat="field in target.fields">
  67. <ul class="tight-form-list">
  68. <li class="tight-form-item query-keyword tight-form-align" style="width: 75px;">
  69. <span ng-show="$index === 0">SELECT</span>
  70. </li>
  71. <li>
  72. <metric-segment-model property="field.func" get-options="getFunctions()" on-change="get_data()" css-class="tight-form-item-xlarge"></metric-segment>
  73. </li>
  74. <li>
  75. <metric-segment-model property="field.name" get-options="getFields()" on-change="get_data()" css-class="tight-form-item-large"></metric-segment>
  76. </li>
  77. <li>
  78. <input type="text" class="tight-form-clear-input text-center" style="width: 70px;" ng-model="field.mathExpr" spellcheck='false' placeholder="math expr" ng-blur="get_data()">
  79. </li>
  80. <li class="tight-form-item query-keyword">
  81. AS
  82. </li>
  83. <li>
  84. <input type="text" class="tight-form-clear-input" style="width: 180px;" ng-model="field.asExpr" spellcheck='false' placeholder="as expr" ng-blur="get_data()">
  85. </li>
  86. </ul>
  87. <ul class="tight-form-list pull-right">
  88. <li class="tight-form-item last" ng-show="$index === 0">
  89. <a class="pointer" ng-click="addSelect()"><i class="fa fa-plus"></i></a>
  90. </li>
  91. <li class="tight-form-item last" ng-show="target.fields.length > 1">
  92. <a class="pointer" ng-click="removeSelect($index)"><i class="fa fa-minus"></i></a>
  93. </li>
  94. </ul>
  95. <div class="clearfix"></div>
  96. </div>
  97. <div class="tight-form" ng-repeat="groupBy in target.groupBy">
  98. <ul class="tight-form-list">
  99. <li class="tight-form-item query-keyword tight-form-align" style="width: 75px;">
  100. <span ng-show="$index === 0">GROUP BY</span>
  101. </li>
  102. <li ng-if="groupBy.type === 'time'">
  103. <span class="tight-form-item">time</span>
  104. <metric-segment-model property="groupBy.interval" get-options="getGroupByTimeIntervals()" on-change="get_data()">
  105. </metric-segment>
  106. </li>
  107. <li class="dropdown" ng-if="groupBy.type === 'time'">
  108. <a class="tight-form-item pointer" data-toggle="dropdown" bs-tooltip="'Insert missing values, important when stacking'" data-placement="right">
  109. <span ng-show="target.fill">
  110. fill ({{target.fill}})
  111. </span>
  112. <span ng-show="!target.fill">
  113. no fill
  114. </span>
  115. </a>
  116. <ul class="dropdown-menu">
  117. <li><a ng-click="setFill('')">no fill</a></li>
  118. <li><a ng-click="setFill('0')">fill (0)</a></li>
  119. <li><a ng-click="setFill('null')">fill (null)</a></li>
  120. <li><a ng-click="setFill('none')">fill (none)</a></li>
  121. <li><a ng-click="setFill('previous')">fill (previous)</a></li>
  122. </ul>
  123. </li>
  124. <li ng-if="groupBy.type === 'tag'">
  125. <metric-segment-model property="groupBy.key" get-options="getTagOptions()" on-change="get_data()"></metric-segment>
  126. </li>
  127. </ul>
  128. <ul class="tight-form-list pull-right">
  129. <li class="tight-form-item last" ng-show="$index === 0">
  130. <a class="pointer" ng-click="addGroupBy()"><i class="fa fa-plus"></i></a>
  131. </li>
  132. <li class="tight-form-item last" ng-show="$index > 0">
  133. <a class="pointer" ng-click="removeGroupBy($index)"><i class="fa fa-minus"></i></a>
  134. </li>
  135. </ul>
  136. <div class="clearfix"></div>
  137. </div>
  138. <div class="tight-form">
  139. <ul class="tight-form-list">
  140. <li class="tight-form-item query-keyword tight-form-align" style="width: 75px;">
  141. ALIAS BY
  142. </li>
  143. <li>
  144. <input type="text" class="tight-form-clear-input input-xlarge" ng-model="target.alias" spellcheck='false' placeholder="Naming pattern" ng-blur="get_data()">
  145. </li>
  146. </ul>
  147. <div class="clearfix"></div>
  148. </div>
  149. </div>
  150. </div>