playlist.html 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <navbar title="Playlists" title-url="playlists" icon="fa fa-fw fa-list" subnav="true">
  2. <ul class="nav">
  3. <li ng-class="{active: ctrl.isNew()}" ng-show="ctrl.isNew()"><a href="datasources/create">New</a></li>
  4. <li class="active" ng-show="!ctrl.isNew()"><a href="playlists/edit/{{ctrl.playlist.id}}">{{ctrl.playlist.name}}</a></li>
  5. </ul>
  6. </navbar>
  7. <div class="page-container" ng-form="playlistEditForm">
  8. <div class="page">
  9. <h2 ng-show="ctrl.isNew()">New playlist</h2>
  10. <h2 ng-show="!ctrl.isNew()">Edit playlist</h2>
  11. <h4>Name and interval</h4>
  12. <div style="margin-bottom: 10px;">
  13. <div>
  14. <div class="tight-form">
  15. <ul class="tight-form-list">
  16. <li class="tight-form-item" style="width: 100px">
  17. Name
  18. </li>
  19. <li>
  20. <input type="text" required ng-model="ctrl.playlist.name" class="input-xlarge tight-form-input">
  21. </li>
  22. </ul>
  23. <div class="clearfix"></div>
  24. </div>
  25. <div class="tight-form last">
  26. <ul class="tight-form-list">
  27. <li class="tight-form-item" style="width: 100px">
  28. Interval
  29. </li>
  30. <li>
  31. <input type="text" required ng-model="ctrl.playlist.interval" placeholder="5m" class="input-xlarge tight-form-input">
  32. </li>
  33. </ul>
  34. <div class="clearfix"></div>
  35. </div>
  36. </div>
  37. <br>
  38. </div>
  39. </div>
  40. <div class="row">
  41. <div class="span5 pull-left">
  42. <h5>Add dashboards</h5>
  43. <div style="">
  44. <playlist-search class="playlist-search-container" search-started="ctrl.searchStarted(promise)"></playlist-search>
  45. </div>
  46. </div>
  47. </div>
  48. <div class="row">
  49. <div class="span5 pull-left" ng-if="ctrl.filteredDashboards.length > 0">
  50. <h5>Search results ({{ctrl.filteredDashboards.length}})</h5>
  51. <table class="grafana-options-table">
  52. <tr ng-repeat="playlistItem in ctrl.filteredDashboards">
  53. <td style="white-space: nowrap;">
  54. {{playlistItem.title}}
  55. </td>
  56. <td style="text-align: center">
  57. <button class="btn btn-inverse btn-mini pull-right" ng-click="ctrl.addPlaylistItem(playlistItem)">
  58. <i class="fa fa-plus"></i>
  59. Add to playlist
  60. </button>
  61. </td>
  62. </tr>
  63. </table>
  64. </div>
  65. <div class="playlist-search-results-container" ng-if="ctrl.filteredTags.length > 0">
  66. <div class="row">
  67. <div class="span6 offset1">
  68. <div ng-repeat="tag in ctrl.filteredTags" class="pointer" style="width: 180px; float: left;"
  69. ng-class="{'selected': $index === selectedIndex }"
  70. ng-click="ctrl.addTagPlaylistItem(tag, $event)">
  71. <a class="search-result-tag label label-tag" tag-color-from-name="tag.term">
  72. <i class="fa fa-tag"></i>
  73. <span>{{tag.term}} &nbsp;({{tag.count}})</span>
  74. </a>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. <div class="span5 pull-left">
  80. <h5>Added dashboards</h5>
  81. <table class="grafana-options-table">
  82. <tr ng-repeat="playlistItem in ctrl.playlistItems">
  83. <td style="white-space: nowrap;" ng-if="playlistItem.type === 'dashboard_by_id'">
  84. {{playlistItem.title}}
  85. </td>
  86. <td style="white-space: nowrap;" ng-if="playlistItem.type === 'dashboard_by_tag'">
  87. <a class="search-result-tag label label-tag" tag-color-from-name="playlistItem.title">
  88. <i class="fa fa-tag"></i>
  89. <span>{{playlistItem.title}}</span>
  90. </a>
  91. </td>
  92. <td style="text-align: right">
  93. <button class="btn btn-inverse btn-mini" ng-hide="$first" ng-click="ctrl.movePlaylistItemUp(playlistItem)">
  94. <i class="fa fa-arrow-up"></i>
  95. </button>
  96. <button class="btn btn-inverse btn-mini" ng-hide="$last" ng-click="ctrl.movePlaylistItemDown(playlistItem)">
  97. <i class="fa fa-arrow-down"></i>
  98. </button>
  99. <button class="btn btn-inverse btn-mini" ng-click="ctrl.removePlaylistItem(playlistItem)">
  100. <i class="fa fa-remove"></i>
  101. </button>
  102. </td>
  103. </tr>
  104. </table>
  105. </div>
  106. </div>
  107. <div class="clearfix"></div>
  108. <div class="pull-left" style="margin-top: 25px;">
  109. <!-- <div class="tight-form"> -->
  110. <button type="button"
  111. class="btn btn-success"
  112. ng-disabled="ctrl.playlistEditForm.$invalid || ctrl.isPlaylistEmpty()"
  113. ng-click="ctrl.savePlaylist(ctrl.playlist, ctrl.playlistItems)">Save</button>
  114. <button type="button"
  115. class="btn btn-inverse"
  116. ng-click="ctrl.backToList()">Cancel</button>
  117. <!-- </div> -->
  118. </div>
  119. <div class="clearfix"></div>
  120. </div>