playlist.html 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <navbar model="ctrl.navModel"></navbar>
  2. <div class="page-container" ng-form="playlistEditForm">
  3. <div class="page-header">
  4. <page-h1 model="ctrl.navModel"></page-h1>
  5. </div>
  6. <p class="playlist-description">A playlist rotates through a pre-selected list of Dashboards. A Playlist can be a great way to build situational awareness, or just show off your metrics to your team or visitors.</p>
  7. <div class="gf-form-group">
  8. <div class="gf-form">
  9. <span class="gf-form-label width-7">Name</span>
  10. <input type="text" required ng-model="ctrl.playlist.name" class="gf-form-input max-width-21">
  11. </div>
  12. <div class="gf-form">
  13. <span class="gf-form-label width-7">Interval</span>
  14. <input type="text" required ng-model="ctrl.playlist.interval" placeholder="5m" class="gf-form-input max-width-21">
  15. </div>
  16. </div>
  17. <div class="gf-form-group">
  18. <h3 class="page-headering">Dashboards</h3>
  19. </div>
  20. <div class="row">
  21. <div class="col-lg-6">
  22. <div class="playlist-search-containerwrapper">
  23. <div class="max-width-32">
  24. <h5 class="page-headering playlist-column-header">Available</h5>
  25. <div style="">
  26. <playlist-search class="playlist-search-container" search-started="ctrl.searchStarted(promise)"></playlist-search>
  27. </div>
  28. </div>
  29. </div>
  30. <div ng-if="ctrl.filteredDashboards.length > 0">
  31. <table class="grafana-options-table playlist-available-list">
  32. <tr ng-repeat="playlistItem in ctrl.filteredDashboards">
  33. <td>
  34. <i class="icon-gf icon-gf-dashboard"></i>
  35. &nbsp;&nbsp;{{playlistItem.title}}
  36. <i class="fa fa-star" ng-show="playlistItem.isStarred"></i>
  37. </td>
  38. <td class="add-dashboard">
  39. <button class="btn btn-inverse btn-mini pull-right" ng-click="ctrl.addPlaylistItem(playlistItem)">
  40. <i class="fa fa-plus"></i>
  41. Add to playlist
  42. </button>
  43. </td>
  44. </tr>
  45. </table>
  46. </div>
  47. <div class="playlist-search-results-container" ng-if="ctrl.filteredTags.length > 0;">
  48. <table class="grafana-options-table playlist-available-list">
  49. <tr ng-repeat="tag in ctrl.filteredTags">
  50. <td>
  51. <a class="search-result-tag label label-tag" tag-color-from-name="tag.term">
  52. <i class="fa fa-tag"></i>
  53. <span>{{tag.term}} &nbsp;({{tag.count}})</span>
  54. </a>
  55. </td>
  56. <td class="add-dashboard">
  57. <button class="btn btn-inverse btn-mini pull-right" ng-click="ctrl.addTagPlaylistItem(tag)">
  58. <i class="fa fa-plus"></i>
  59. Add to playlist
  60. </button>
  61. </td>
  62. </tr>
  63. </table>
  64. </div>
  65. </div>
  66. <div class="col-lg-6">
  67. <h5 class="page headering playlist-column-header">Selected</h5>
  68. <table class="grafana-options-table playlist-available-list">
  69. <tr ng-repeat="playlistItem in ctrl.playlistItems">
  70. <td ng-if="playlistItem.type === 'dashboard_by_id'">
  71. <i class="icon-gf icon-gf-dashboard"></i>&nbsp;&nbsp;{{playlistItem.title}}
  72. </td>
  73. <td ng-if="playlistItem.type === 'dashboard_by_tag'">
  74. <a class="search-result-tag label label-tag" tag-color-from-name="playlistItem.title">
  75. <i class="fa fa-tag"></i>
  76. <span>{{playlistItem.title}}</span>
  77. </a>
  78. </td>
  79. <td class="selected-playlistitem-settings">
  80. <button class="btn btn-inverse btn-mini" ng-hide="$first" ng-click="ctrl.movePlaylistItemUp(playlistItem)">
  81. <i class="fa fa-arrow-up"></i>
  82. </button>
  83. <button class="btn btn-inverse btn-mini" ng-hide="$last" ng-click="ctrl.movePlaylistItemDown(playlistItem)">
  84. <i class="fa fa-arrow-down"></i>
  85. </button>
  86. <button class="btn btn-inverse btn-mini" ng-click="ctrl.removePlaylistItem(playlistItem)">
  87. <i class="fa fa-remove"></i>
  88. </button>
  89. </td>
  90. </tr>
  91. </table>
  92. </div>
  93. </div>
  94. <div class="clearfix"></div>
  95. <div class="gf-form-button-row">
  96. <a class="btn btn-success " ng-show="ctrl.isNew()"
  97. ng-disabled="ctrl.playlistEditForm.$invalid || ctrl.isPlaylistEmpty()"
  98. ng-click="ctrl.savePlaylist(ctrl.playlist, ctrl.playlistItems)">Create new playlist</a>
  99. <a class="btn btn-success" ng-show="!ctrl.isNew()"
  100. ng-disabled="ctrl.playlistEditForm.$invalid || ctrl.isPlaylistEmpty()"
  101. ng-click="ctrl.savePlaylist(ctrl.playlist, ctrl.playlistItems)">Save</a>
  102. <a class="btn-text" ng-click="ctrl.backToList()">Cancel</a>
  103. </div>
  104. </div>