stations.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <template name="stations">
  2. {{> alerts}}
  3. <div class="landing">
  4. {{> header}}
  5. <h1 class="col-md-8 col-md-offset-2 admin-header">Playlists:</h1>
  6. {{#each playlists}}
  7. <div class="col-md-8 col-md-offset-2 admin-playlist-panel">
  8. <div class="panel panel-primary">
  9. <div class="panel-heading">
  10. <h3 class="panel-title"><span>{{display}}</span> playlist</h3> <i class="fa fa-times delete-room" name="Delete room"></i>
  11. </div>
  12. <div class="panel-body admin-panel-body">
  13. <table class="table table-striped">
  14. <thead>
  15. <tr>
  16. <th>Mid</th>
  17. <th>Title</th>
  18. <th>Artist(s)</th>
  19. <th>Type</th>
  20. <th>Id</th>
  21. <th>Likes</th>
  22. <th>Dislikes</th>
  23. <th>Copy/Move</th>
  24. <th>Img</th>
  25. <th>Preview</th>
  26. <th>Edit</th>
  27. <th colspan="10">Remove</th>
  28. </tr>
  29. </thead>
  30. <tbody>
  31. {{#each songs}}
  32. <tr>
  33. <th scope="row">{{mid}}</th>
  34. <th>{{title}}</th>
  35. <td>{{artist}}</td>
  36. <td>{{type}}</td>
  37. <td>{{id}}</td>
  38. <td>{{likes}}</td>
  39. <td>{{dislikes}}</td>
  40. <td class="column-small"><button class="btn btn-primary copyMove-button" data-genre="{{../type}}" id="copyMoveButton" data-toggle="modal" data-target="#copyMoveModal">Copy/Move</button></td>
  41. <td class="column-small"><button class="btn btn-primary preview-button" id="previewImageButton" data-toggle="modal" data-target="#previewImageModal">Preview Image</button></td>
  42. <td class="column-small"><button class="btn btn-primary preview-button" data-toggle="modal" data-target="#previewModal">Preview</button></td>
  43. <td class="column-small"><button class="btn btn-primary edit-playlist-button" data-genre="{{../type}}" data-toggle="modal" data-target="#editModal">Edit</button></td>
  44. <td class="column-small"><button class="btn btn-danger remove-song-button" data-genre="{{../type}}"><i class="fa fa-ban"></i></button></td>
  45. </tr>
  46. {{/each}}
  47. </tbody>
  48. </table>
  49. </div>
  50. </div>
  51. </div>
  52. {{/each}}
  53. <button class="btn btn-danger col-md-6 col-md-offset-3" id="rrating" data-toggle="modal" data-target="#confirmModal" style="margin-bottom: 10px">Reset Rating</button>
  54. <div class="col-md-4 col-md-offset-4">
  55. <div id="croom_container">
  56. <label for="croom_display" class="croom_label">Room Display Name (eg 'Edm'):</label>
  57. <div class="input-group">
  58. <input type="text" class="croom" id="croom_display" name="croom" required />
  59. </div>
  60. <label for="croom_tag" class="croom_label">Room Tag Name (eg 'edm'):</label>
  61. <div class="input-group">
  62. <input type="text" class="croom" id="croom_tag" name="croom" required />
  63. </div>
  64. <input type="checkbox" name="two" id="two"/>
  65. <label id="two-label" for="two">Make Room Private?</label>
  66. <button class="btn btn-warning btn-block" id="croom_create">Create</button>
  67. </div>
  68. </div>
  69. <div id="confirmModal" class="modal fade" role="dialog">
  70. <div class="modal-dialog">
  71. <!-- Modal content-->
  72. <div class="modal-content">
  73. <div class="modal-header">
  74. <button type="button" class="close" data-dismiss="modal">&times;</button>
  75. <h4 class="modal-title">Confirm</h4>
  76. </div>
  77. <div class="modal-body">
  78. <button id="rreset_confirm" class="btn btn-danger">Reset All Ratings</button>
  79. </div>
  80. <div class="modal-footer">
  81. <button id="close-modal" type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
  82. </div>
  83. </div>
  84. </div>
  85. </div>
  86. <div id="copyMoveModal" class="modal fade" role="dialog">
  87. <div class="modal-dialog">
  88. <!-- Modal content-->
  89. <div class="modal-content">
  90. <div class="modal-header">
  91. <button type="button" class="close" data-dismiss="modal">&times;</button>
  92. <h4 class="modal-title">Move & Copy</h4>
  93. </div>
  94. <div class="modal-body">
  95. <h4><i class="fa fa-arrows"></i> Move This Song To:</h4>
  96. {{#each playlists}}
  97. <button id="moveSong" data-genre="{{type}}" type="button" class="btn btn-warning"> <span>{{display}}</span> playlist</button>
  98. {{/each}}
  99. <hr />
  100. <h4><i class="fa fa-files-o"></i> Copy This Song To:</h4>
  101. {{#each playlists}}
  102. <button id="copySong" data-genre="{{type}}" type="button" class="btn btn-warning"> <span>{{display}}</span> playlist</button>
  103. {{/each}}
  104. </div>
  105. <div class="modal-footer">
  106. <button id="close-modal" type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. <div id="previewModal" class="modal fade" role="dialog">
  112. <div class="modal-dialog">
  113. <!-- Modal content-->
  114. <div class="modal-content">
  115. <div class="modal-header">
  116. <button type="button" class="close" data-dismiss="modal">&times;</button>
  117. <h4 class="modal-title">Preview</h4>
  118. </div>
  119. <div class="modal-body">
  120. <div width="960" height="540" id="previewPlayer"></div>
  121. <button id="play" title="Play video" class="btn btn-success"><i class="fa fa-play"></i></button>
  122. <button id="stop" title="Stop video" class="btn btn-danger" disabled><i class="fa fa-stop"></i></button>
  123. <button id="forward" title="Go to the last 10 seconds of the video" class="btn btn-primary"><i class="fa fa-fast-forward"></i></button>
  124. <div id="volume-container-admin">
  125. <input type="text" id="volume-slider" class="span2" value="" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="50" data-slider-orientation="horizontal" data-slider-selection="after" data-slider-tooltip="hide">
  126. </div>
  127. </div>
  128. <div class="modal-footer">
  129. <button id="close-modal" type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
  130. </div>
  131. </div>
  132. </div>
  133. </div>
  134. <div id="previewImageModal" class="modal fade" role="dialog">
  135. <div class="modal-dialog">
  136. <!-- Modal content-->
  137. <div class="modal-content">
  138. <div class="modal-header">
  139. <button type="button" class="close" data-dismiss="modal">&times;</button>
  140. <h4 class="modal-title">Preview Image</h4>
  141. </div>
  142. <div class="modal-body">
  143. <img alt="Not loading" id="preview-image" height="210px" width="210px" src=""/>
  144. </div>
  145. <div class="modal-footer">
  146. <button id="close-modal" type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. <div id="editModal" class="modal fade" role="dialog">
  152. <div class="modal-dialog">
  153. <!-- Modal content-->
  154. <div class="modal-content">
  155. <div class="modal-header">
  156. <button type="button" class="close" data-dismiss="modal">&times;</button>
  157. <h4 class="modal-title">Edit</h4>
  158. </div>
  159. <div class="modal-body">
  160. <label for="type" class="song-input-label">Song Type</label>
  161. <select name="type" id="type" class="song-input-select">
  162. <option name="youtube" id="youtube">YouTube</option>
  163. <option name="soundcloud" id="soundcloud">SoundCloud</option>
  164. </select>
  165. <label for="mid" class="song-input-label">Song MID</label>
  166. <input class="song-input" name="mid" id="mid" type="text" />
  167. <label for="id" class="song-input-label">Song ID</label>
  168. <input class="song-input" name="id" id="id" type="text" />
  169. <label for="id" class="song-input-label">Song Artist</label>
  170. <input class="song-input" name="artist" id="artist" type="text" />
  171. <label for="title" class="song-input-label">Song Title</label>
  172. <input class="song-input" name="title" id="title" type="text" />
  173. <label for="title" class="song-input-label">Song Duration</label>
  174. <input class="song-input" name="duration" id="duration" type="number" />
  175. <label for="skip-duration" class="song-input-label">Skip Duration</label>
  176. <input class="song-input" id="skip-duration" type="number" />
  177. <label for="likes" class="song-input-label">Likes</label>
  178. <input class="song-input" id="likes" type="number"/>
  179. <label for="dislikes" class="song-input-label">Dislikes</label>
  180. <input class="song-input" id="dislikes" type="number"/>
  181. <label for="img" class="song-input-label">Song Image</label>
  182. <input class="song-input" name="img" id="img" type="text" />
  183. <button type="button" id="get-spotify-info" class="button">Get Spotify Data</button>
  184. <button type="button" id="save-song-button" class="button">Save Changes</button>
  185. </div>
  186. <div class="modal-footer">
  187. <button id="close-modal" type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
  188. </div>
  189. </div>
  190. </div>
  191. </div>
  192. </div>
  193. </template>