playlist.html 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <navbar icon="fa fa-fw fa-list" title="Playlist">
  2. </navbar>
  3. <div class="page-container" ng-form="playlistEditForm">
  4. <h1 ng-show="ctrl.isNew()">New Playlist</h1>
  5. <h1 ng-show="!ctrl.isNew()">Edit Playlist</h1>
  6. <h3>Name and interval</h3>
  7. <div class="gf-form-group">
  8. <div class="gf-form">
  9. <span class="gf-form-label gf-size-s">Name</span>
  10. <input type="text" required ng-model="ctrl.playlist.name" class="gf-form-input gf-form-size-xl">
  11. </div>
  12. <div class="gf-form">
  13. <span class="gf-form-label gf-size-s">Interval</span>
  14. <input type="text" required ng-model="ctrl.playlist.interval" placeholder="5m" class="gf-form-input gf-form-s">
  15. </div>
  16. </div>
  17. <div class="row" style="max-width: 400px">
  18. <h5>Add dashboards</h5>
  19. <div style="">
  20. <playlist-search class="playlist-search-container" search-started="ctrl.searchStarted(promise)"></playlist-search>
  21. </div>
  22. </div>
  23. <div class="row">
  24. <div class="span5 pull-left" ng-if="ctrl.filteredDashboards.length > 0">
  25. <h5>Search results ({{ctrl.filteredDashboards.length}})</h5>
  26. <table class="grafana-options-table">
  27. <tr ng-repeat="playlistItem in ctrl.filteredDashboards">
  28. <td style="white-space: nowrap;">
  29. {{playlistItem.title}}
  30. </td>
  31. <td style="text-align: center">
  32. <button class="btn btn-inverse btn-mini pull-right" ng-click="ctrl.addPlaylistItem(playlistItem)">
  33. <i class="fa fa-plus"></i>
  34. Add to playlist
  35. </button>
  36. </td>
  37. </tr>
  38. </table>
  39. </div>
  40. <div class="playlist-search-results-container" ng-if="ctrl.filteredTags.length > 0">
  41. <div class="row">
  42. <div class="span6 offset1">
  43. <div ng-repeat="tag in ctrl.filteredTags" class="pointer" style="width: 180px; float: left;"
  44. ng-class="{'selected': $index === selectedIndex }"
  45. ng-click="ctrl.addTagPlaylistItem(tag, $event)">
  46. <a class="search-result-tag label label-tag" tag-color-from-name="tag.term">
  47. <i class="fa fa-tag"></i>
  48. <span>{{tag.term}} &nbsp;({{tag.count}})</span>
  49. </a>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. <div class="span5 pull-left">
  55. <h5>Added dashboards</h5>
  56. <table class="grafana-options-table">
  57. <tr ng-repeat="playlistItem in ctrl.playlistItems">
  58. <td style="white-space: nowrap;" ng-if="playlistItem.type === 'dashboard_by_id'">
  59. {{playlistItem.title}}
  60. </td>
  61. <td style="white-space: nowrap;" ng-if="playlistItem.type === 'dashboard_by_tag'">
  62. <a class="search-result-tag label label-tag" tag-color-from-name="playlistItem.title">
  63. <i class="fa fa-tag"></i>
  64. <span>{{playlistItem.title}}</span>
  65. </a>
  66. </td>
  67. <td style="text-align: right">
  68. <button class="btn btn-inverse btn-mini" ng-hide="$first" ng-click="ctrl.movePlaylistItemUp(playlistItem)">
  69. <i class="fa fa-arrow-up"></i>
  70. </button>
  71. <button class="btn btn-inverse btn-mini" ng-hide="$last" ng-click="ctrl.movePlaylistItemDown(playlistItem)">
  72. <i class="fa fa-arrow-down"></i>
  73. </button>
  74. <button class="btn btn-inverse btn-mini" ng-click="ctrl.removePlaylistItem(playlistItem)">
  75. <i class="fa fa-remove"></i>
  76. </button>
  77. </td>
  78. </tr>
  79. </table>
  80. </div>
  81. </div>
  82. <div class="clearfix"></div>
  83. <div class="pull-left" style="margin-top: 25px;">
  84. <!-- <div class="norm-form"> -->
  85. <a
  86. class="btn btn-success"
  87. ng-disabled="ctrl.playlistEditForm.$invalid || ctrl.isPlaylistEmpty()"
  88. ng-click="ctrl.savePlaylist(ctrl.playlist, ctrl.playlistItems)">Save</a>
  89. <a class="btn-text" ng-click="ctrl.backToList()">Cancel</a>
  90. <!-- </div> -->
  91. </div>
  92. <div class="clearfix"></div>
  93. </div>