room.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <template name="room">
  2. {{> alerts}}
  3. {{#if loaded}}
  4. <header>
  5. <nav>
  6. <div class="nav-wrapper teal accent-4">
  7. <ul class="left hide-on-med-and-down">
  8. <li><a href="/"><i class="material-icons">home</i></a></li>
  9. <li><a href="#add_song_modal" id="add-song-button"><i
  10. class="material-icons">playlist_add</i></a></li>
  11. <li><a href="#bug_report_modal"><i class="material-icons">bug_report</i></a></li>
  12. <li><a href="#vote_to_skip" id="skip_vote"><i class="material-icons">skip_next</i></a></li>
  13. </ul>
  14. <span class="brand-logo center">{{type}}</span>
  15. <ul class="right hide-on-med-and-down">
  16. <li><a href="#"><i class="material-icons">queue_music</i></a></li>
  17. <li><a href="#" data-activates="chat" class="dropdown-button"><i class="material-icons">chat</i></a>
  18. </li>
  19. </ul>
  20. <div id='chat' class='dropdown-content right'>
  21. <ul id="chat-ul">
  22. {{#each chat}}
  23. {{#emojione}}
  24. <li class="chat-message">
  25. <small class="rank-{{this.rawrank}}">{{this.rank}}</small>
  26. <a style="text-decoration: none" href="/u/{{this.username}}" target="_blank"><b
  27. class="bold">{{this.username}}</b></a> <span title="{{time}}"
  28. style="float: right;">{{rtime time}}</span>
  29. <br/>
  30. {{#if this.isMentioned}}
  31. {{#if this.curUserMention}}
  32. <span style="background-color: lightblue">{{this.message}}</span>
  33. {{else}}
  34. {{this.message}}
  35. {{/if}}
  36. {{else}}
  37. {{this.message}}
  38. {{/if}}
  39. </li>
  40. {{/emojione}}
  41. <hr>
  42. {{/each}}
  43. </ul>
  44. <div id="chat-input-div">
  45. {{#if currentUser}}
  46. <textarea id="chat-input" placeholder="Type a message..."></textarea>
  47. {{else}}
  48. <input id="chat-input" placeholder="Please register and login to chat." disabled>
  49. {{/if}}
  50. <div id="submit">
  51. <button class="btn btn-primary btn-block">Submit<i id="submit-message"
  52. class="fa fa-paper-plane-o"></i>
  53. </button>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </nav>
  59. </header>
  60. <main id="room-content">
  61. <div class="container">
  62. <div class="row">
  63. <div class="col s12 m10 l8 offset-l2 offset-m1" id="media-container">
  64. <div class="video-container">
  65. <div id="player"></div>
  66. </div>
  67. </div>
  68. <div class="col s12 m10 l8 offset-l2 offset-m1">
  69. <div class="row">
  70. <div class="col s12 m12 l8">
  71. <h3>{{{title}}} - {{{artist}}}</h3>
  72. <h4 id="time-display"><span id="time-elapsed"></span> / <span id="time-total"></span>
  73. </h4>
  74. <div class="row">
  75. <form action="#" class="left col s4 m4 l4">
  76. <p class="range-field" style="margin-top: 0">
  77. <input type="range" id="volume_slider" min="0" max="100"/>
  78. </p>
  79. </form>
  80. <div class="right col s4 m2 l2">
  81. <ul>
  82. <li class="left"><i id="thumbs_up" class="material-icons">thumb_up</i></li>
  83. <li class="right"><i id="thumbs_down" class="material-icons">thumb_down</i>
  84. </li>
  85. </ul>
  86. </div>
  87. </div>
  88. <div class="seeker-bar-container white" id="preview-progress">
  89. <div class="seeker-bar teal" style="width: 0%"></div>
  90. </div>
  91. </div>
  92. <img alt="Not loading" class="responsive-img song-img col s12 m12 l4"
  93. onError="this.src='http://static.boredpanda.com/blog/wp-content/uploads/2014/04/amazing-fox-photos-182.jpg'"
  94. id="song-img"/>
  95. </div>
  96. </div>
  97. </div>
  98. </div>
  99. <div id="add_song_modal" class="modal">
  100. <div class="modal-content container">
  101. <div class="row">
  102. <form class="black-text" id="search-info">
  103. <div class="row">
  104. <div class="input-field">
  105. <select id="si_or_pl">
  106. <option value="singleVideo" selected>Single Song</option>
  107. <option value="importPlaylist">Import Playlist</option>
  108. <label>Import Type</label>
  109. </select>
  110. </div>
  111. </div>
  112. {{#if singleVideo}}
  113. <div class="row" id="single-video">
  114. <div class="input-field">
  115. <input id="song-input" type="text" class="validate">
  116. <label for="search_for_song">Search for song</label>
  117. </div>
  118. <a class="waves-effect waves-light btn" id="search-song"><i class="material-icons left">search</i>Search</a>
  119. {{#if singleVideoResultsActive}}
  120. <div id="single-video-results">
  121. <ul class="collection teal-text">
  122. {{#each result in singleVideoResults}}
  123. <li class="collection-item avatar youtube-search-result-li">
  124. <img src="{{result.image}}" onerror="this.src='http://static.boredpanda.com/blog/wp-content/uploads/2014/04/amazing-fox-photos-182.jpg'" alt="" class="video-import-thumbnail">
  125. <span class="title video-import-text">{{result.title}}</span>
  126. <p class="video-import-text">{{result.artist}} <br>
  127. <a href="https://youtube.com/watch?v={{result.id}}" target="_blank">View Video In YouTube</a>
  128. </p>
  129. <a href="#!" class="secondary-content" id="addSong" data-result="{{result.id}}"><i class="material-icons" data-result="{{result.id}}">add</i></a>
  130. </li>
  131. {{/each}}
  132. </ul>
  133. </div>
  134. {{/if}}
  135. </div>
  136. {{else}}
  137. <div class="row" id="import-playlist">
  138. <div class="input-field">
  139. <input id="playlist-url" type="text" class="validate">
  140. <label for="search_for_song">Playlist URL</label>
  141. </div>
  142. <div class="progress">
  143. <div class="determinate" id="import-progress" style="width: 0%"></div>
  144. </div>
  145. <a class="waves-effect waves-light btn" id="import-playlist-button">Import Playlist</a>
  146. {{#if playlistImportVideosActive}}
  147. <a class="waves-effect waves-light btn" id="confirm-import">Confirm selection and add songs to queue</a>
  148. <div id="import-playlist-results">
  149. <ul class="collection teal-text">
  150. {{#each result in importPlaylistVideos}}
  151. <li class="collection-item avatar youtube-search-result-li">
  152. <img src="{{result.image}}" onerror="this.src='http://static.boredpanda.com/blog/wp-content/uploads/2014/04/amazing-fox-photos-182.jpg'" alt="" class="video-import-thumbnail">
  153. <span class="title video-import-text">{{result.title}}</span>
  154. <p class="video-import-text">{{result.artist}} <br>
  155. <a href="https://youtube.com/watch?v={{result.id}}" target="_blank">View Video In YouTube</a>
  156. </p>
  157. <a href="#!" class="secondary-content" id="removeSong" data-result="{{id}}"><i class="material-icons">remove</i></a>
  158. </li>
  159. {{/each}}
  160. </ul>
  161. </div>
  162. {{/if}}
  163. </div>
  164. {{/if}}
  165. </form>
  166. <div id="song-results"></div>
  167. </div>
  168. <div class="row">
  169. <form class="black-text hide" id="add-info">
  170. <div class="row">
  171. <div class="input-field">
  172. <input id="song-id" type="text" class="validate">
  173. <label for="song-id">Song ID</label>
  174. </div>
  175. </div>
  176. <div class="row">
  177. <a class="waves-effect waves-light btn" id="add-song-button"><i
  178. class="material-icons left">playlist_add</i>Request Song</a>
  179. </div>
  180. </form>
  181. </div>
  182. </div>
  183. <div class="divider"></div>
  184. <div class="modal-footer">
  185. <a href="#!" class="modal-action modal-close waves-effect btn">Close</a>
  186. </div>
  187. </div>
  188. </main>
  189. <script>
  190. $("#add-song-button").leanModal({
  191. dismissible: true,
  192. opacity: .5,
  193. in_duration: 500,
  194. out_duration: 200
  195. });
  196. $(".dropdown-button").dropdown({
  197. belowOrigin: true,
  198. alignment: 'right'
  199. });
  200. $('select').material_select();
  201. </script>
  202. {{/if}}
  203. </template>