definition_details.hbs 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. {{!
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. }}
  18. {{#if view.isLoaded}}
  19. <div id="alert-definition-details">
  20. <div class="row-fluid">
  21. {{! Left column }}
  22. <div class="span9">
  23. {{! Alert Definition Name }}
  24. <div class="definition-name row-fluid">
  25. {{#if controller.editing.label.isEditing}}
  26. <div {{bindAttr class="controller.editing.label.isError:error :span5 :name-text-field :control-group"}}>
  27. {{view Em.TextField valueBinding="controller.editing.label.value"}}
  28. </div>
  29. <div class="edit-buttons">
  30. <button {{action cancelEdit controller.editing.label target="controller"}}
  31. class="btn cancel-button">{{t common.cancel}}</button>
  32. <button {{bindAttr disabled="controller.editing.label.isError"}} {{action saveEdit controller.editing.label target="controller"}}
  33. class="btn btn-primary save-button">{{t common.save}}
  34. </button>
  35. </div>
  36. {{else}}
  37. <span>
  38. {{controller.content.label}}
  39. </span>
  40. {{/if}}
  41. {{#unless controller.editing.label.isEditing}}
  42. {{#isAccessible ADMIN}}
  43. <a {{action edit controller.editing.label target="controller"}} class="edit-description-button"><i
  44. class="icon-pencil"></i></a>
  45. {{/isAccessible}}
  46. {{/unless}}
  47. </div>
  48. {{! Alert Definition Name end }}
  49. <div><a href="javascript:void(null)" data-toggle="modal" {{action back}}><i
  50. class="icon-arrow-left"></i>&nbsp;{{t common.back}}</a></div>
  51. {{! Alert Definition Configs }}
  52. <div class="box">
  53. <div class="box-header">
  54. <div class="pull-left">
  55. <h4>{{t common.configuration}}</h4>
  56. </div>
  57. <div class="pull-right span5 row-fluid" style="padding:0 10px;">
  58. {{#isAccessible ADMIN}}
  59. {{#unless App.router.mainAlertDefinitionConfigsController.canEdit}}
  60. <a {{action editConfigs target="App.router.mainAlertDefinitionConfigsController"}}
  61. class="pull-right edit-link">
  62. {{t common.edit}}
  63. </a>
  64. {{/unless}}
  65. {{/isAccessible}}
  66. </div>
  67. </div>
  68. {{view App.AlertDefinitionConfigsView contentBinding="view.controller.content" alertDefinitionTypeBinding="view.controller.content.type" canEdit=false}}
  69. {{#if App.router.mainAlertDefinitionConfigsController.canEdit}}
  70. <div class="edit-buttons">
  71. <button {{action cancelEditConfigs target="App.router.mainAlertDefinitionConfigsController"}}
  72. class="btn">{{t common.cancel}}</button>
  73. <button {{bindAttr disabled="App.router.mainAlertDefinitionConfigsController.hasErrors"}} {{action saveConfigs target="App.router.mainAlertDefinitionConfigsController"}}
  74. class="btn btn-primary">{{t common.save}}
  75. </button>
  76. </div>
  77. {{/if}}
  78. </div>
  79. {{! Alert Definition Configs end }}
  80. </div>
  81. {{! Left column end }}
  82. {{! Right column }}
  83. <div class="span3 right-column">
  84. <div class="status">
  85. {{{controller.content.status}}}
  86. </div>
  87. <div class="properties-list">
  88. <div class="row-fluid">
  89. <div class="span4 property-name">{{t alerts.table.state}}:</div>
  90. <div class="span8">
  91. {{#if controller.content.enabled}}
  92. {{#isAccessible ADMIN}}
  93. <a href="#" {{action "toggleState" controller.content target="controller"}} {{bindAttr class="controller.content.enabled:alert-definition-enable:alert-definition-disable"}}>
  94. <span
  95. class="enable-disable-button" {{translateAttr data-original-title="alerts.table.state.enabled.tooltip"}}>
  96. {{view.enabledDisplay}}
  97. </span>
  98. </a>
  99. {{/isAccessible}}
  100. {{#isAccessible NON_ADMIN}}
  101. <span {{bindAttr class="controller.content.enabled:alert-definition-enable:alert-definition-disable"}}>
  102. {{t alerts.table.state.enabled}}
  103. </span>
  104. {{/isAccessible}}
  105. {{else}}
  106. {{#isAccessible ADMIN}}
  107. <a href="#" {{action "toggleState" controller.content target="controller"}} {{bindAttr class="controller.content.enabled:alert-definition-enable:alert-definition-disable"}}>
  108. <span
  109. class="enable-disable-button" {{translateAttr data-original-title="alerts.table.state.disabled.tooltip"}}>
  110. {{view.disabledDisplay}}
  111. </span>
  112. </a>
  113. {{/isAccessible}}
  114. {{#isAccessible NON_ADMIN}}
  115. <span {{bindAttr class="controller.content.enabled:alert-definition-enable:alert-definition-disable"}}>
  116. {{t alerts.table.state.disabled}}
  117. </span>
  118. {{/isAccessible}}
  119. {{/if}}
  120. </div>
  121. </div>
  122. {{#if controller.content.serviceDisplayName}}
  123. <div class="row-fluid">
  124. <div class="span4 property-name">{{t common.service}}:</div>
  125. <div class="span8"><span>{{controller.content.serviceDisplayName}}</span></div>
  126. </div>
  127. {{/if}}
  128. {{#if controller.content.componentNameFormatted}}
  129. <div class="row-fluid">
  130. <div class="span4 property-name">{{t common.component}}:</div>
  131. <div class="span8">{{controller.content.componentNameFormatted}}</div>
  132. </div>
  133. {{/if}}
  134. <div class="row-fluid">
  135. <div class="span4 property-name">{{t common.type}}:</div>
  136. <div class="span8">
  137. <span {{bindAttr class=":type-icon controller.content.typeIconClass"}}></span> {{controller.content.type}}
  138. </div>
  139. </div>
  140. {{#if controller.groupsList.length}}
  141. <div class="row-fluid">
  142. <div class="span4 property-name">{{t alerts.definition.details.groups}}:</div>
  143. <div class="span8">
  144. <ul>
  145. {{#each groupName in controller.groupsList}}
  146. <li>{{groupName}}</li>
  147. {{/each}}
  148. </ul>
  149. </div>
  150. </div>
  151. {{/if}}
  152. <div class="row-fluid">
  153. <div class="span4 property-name">{{t alerts.table.header.lastTrigger}}:</div>
  154. <div class="span8">{{controller.content.lastTriggeredFormatted}}</div>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. {{! Right column end }}
  160. {{! List of alerts }}
  161. <div class="definition-details-block">
  162. <span>
  163. <strong>{{t alerts.definition.details.instances}}</strong>
  164. </span>
  165. <hr>
  166. <div>
  167. {{#if App.router.mainAlertInstancesController.isLoaded}}
  168. <table class="table advanced-header-table table-bordered table-striped alerts-table" id="alert-instances-table">
  169. <thead>
  170. <tr>
  171. <th class="first">{{t alerts.definition.details.serviceHost}}</th>
  172. <th>{{t common.status}}</th>
  173. <th>{{t alerts.definition.details.24-hour}}</th>
  174. <th>{{t alerts.table.header.check.response}}</th>
  175. </tr>
  176. </thead>
  177. <tbody>
  178. {{#if view.pageContent}}
  179. {{#each instance in view.pageContent}}
  180. {{#view view.instanceTableRow}}
  181. <td class="first">
  182. {{view App.AlertInstanceServiceHostView instanceBinding="instance"}}
  183. </td>
  184. <td>{{{instance.status}}}
  185. <time class="timeago" rel="tooltip" {{bindAttr data-original-title="instance.statusChangedAndLastCheckedFormatted"}}>
  186. {{instance.lastTriggeredForFormatted}}
  187. </time>
  188. </td>
  189. <td>{{view view.parentView.lastDayCount hostNameBinding="instance.hostName"}}</td>
  190. <td>
  191. <span class="alert-text" {{bindAttr data-original-title="instance.text"}}>{{instance.text}}</span></td>
  192. {{/view}}
  193. {{/each}}
  194. {{else}}
  195. <tr>
  196. <td class="first" colspan="5">
  197. {{t alerts.definition.details.noAlerts}}
  198. </td>
  199. </tr>
  200. {{/if}}
  201. </tbody>
  202. </table>
  203. <div class="page-bar">
  204. <div class="items-on-page">
  205. <label>{{t common.show}}: {{view view.rowsPerPageSelectView selectionBinding="view.displayLength"}}</label>
  206. </div>
  207. <div class="info">{{view.paginationInfo}}</div>
  208. <div class="paging_two_button">
  209. <a {{bindAttr class="view.paginationLeftClass"}}{{action previousPage target="view"}}><i
  210. class="icon-arrow-left"></i></a>
  211. <a {{bindAttr class="view.paginationRightClass"}}{{action nextPage target="view"}}><i
  212. class="icon-arrow-right"></i></a>
  213. </div>
  214. </div>
  215. {{else}}
  216. <div class="spinner"></div>
  217. {{/if}}
  218. </div>
  219. </div>
  220. {{! List of alerts end }}
  221. </div>
  222. {{else}}
  223. <div class="spinner"></div>
  224. {{/if}}