privateRoom.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. <template name="privateRoom">
  2. <header>
  3. <nav>
  4. <div class="nav-wrapper light-blue accent-4">
  5. <ul class="left hide-on-med-and-down">
  6. <li><a href="/"><i class="material-icons">home</i></a></li>
  7. <li><a id="vote-skip" class="tooltipped" data-position="bottom" data-delay="50" data-tooltip="Vote to skip this song"><i class="material-icons left">skip_next</i>{{votes}}</a></li>
  8. {{#if isPrivateRoomOwner name}}
  9. <li><a class='dropdown-button' data-activates='control-dropdown'><i class="material-icons">control_point</i></a></li>
  10. {{/if}}
  11. </ul>
  12. <span class="brand-logo center">{{privateRoomDisplayName}} <small>(by {{privateRoomOwnerName}})</small></span>
  13. <ul class="right hide-on-med-and-down">
  14. <li><a href="#" data-position="bottom" data-delay="50" data-tooltip="Playlist" id="playlist-slideout" data-activates="playlist-slide-out" class="tooltipped header-collapse"><i class="material-icons">queue_music</i></a></li>
  15. <li><a href="#" data-position="bottom" data-delay="50" data-tooltip="Chat" id="chat-slideout" data-activates="chat-slide-out" class="tooltipped header-collapse"><i class="material-icons">chat</i></a></li>
  16. <li><a href="#" data-position="bottom" data-delay="50" data-tooltip="Users" id="users-slideout" data-activates="users-slide-out" class="tooltipped header-collapse"><i class="material-icons">people</i></a></li>
  17. <li><a href="#" data-position="bottom" data-delay="50" data-tooltip="Allowed" id="allowed-slideout" data-activates="allowed-slide-out" class="tooltipped header-collapse"><i class="material-icons">assignment</i></a></li>
  18. <li><a href="#" data-position="bottom" data-delay="50" data-tooltip="Playlists" id="playlists-slideout" data-activates="playlists-slide-out" class="tooltipped header-collapse"><i class="material-icons">library_music</i></a></li>
  19. </ul>
  20. </div>
  21. </nav>
  22. </header>
  23. {{> alerts}}
  24. <main id="room-content">
  25. <div class="container room-container">
  26. <div class="row">
  27. <div class="col s12 m10 l8 offset-l2 offset-m1" id="media-container">
  28. <div class="video-container">
  29. <div id="player"></div>
  30. </div>
  31. </div>
  32. <div class="col s12 m10 l8 offset-l2 offset-m1">
  33. <h4 id="time-display"><span id="time-elapsed"></span> / <span id="time-total"></span></h4>
  34. <h3>{{{title}}}</h3>
  35. <div class="row">
  36. <form action="#" class="left col s4 m4 l4">
  37. <p class="range-field" style="margin-top: 0">
  38. <input type="range" id="volume_slider" min="0" max="100"/>
  39. </p>
  40. </form>
  41. </div>
  42. <div class="seeker-bar-container white" id="preview-progress">
  43. <div class="seeker-bar light-blue" style="width: 0%"></div>
  44. </div>
  45. </div>
  46. </div>
  47. </div>
  48. </main>
  49. <!--Chat slideout-->
  50. <div id="chat-slide-out" class="side-nav room-slideout">
  51. <h5>Chat</h5>
  52. <ul class="chat-ul">
  53. <!-- {{#each globalChat}}
  54. {{#emojione}}
  55. <li class="chat-message" style="line-height: 30px">
  56. <span title="{{time}}" style="float: right; margin-top: 15px">{{rtime time}}</span>
  57. <a style="text-decoration: none; font-size: 0.9em; height: 0.9em; font-weight: 500" href="/u/{{this.username}}" target="_blank"><span class="rank-{{this.rawrank}}">{{this.rank}}</span>{{this.username}}</a>
  58. <p style="clear: both; line-height: 1.2em; margin-left: 13px; margin-bottom: 0; font-size: 1.2em">{{{this.message}}}</p>
  59. </li>
  60. {{/emojione}}
  61. <div class="divider" style="margin-top: 15px;"></div>
  62. {{/each}} -->
  63. <li class="chat-message" style="line-height: 30px">
  64. <span title="22nd May 2016" style="float: right; margin-top: 15px">22nd May 2016</span>
  65. <a style="text-decoration: none; font-size: 0.9em; height: 0.9em; font-weight: 500" target="_blank">Musare</a>
  66. <p style="clear: both; line-height: 1.2em; margin-left: 13px; margin-bottom: 0; font-size: 1.2em"><span class="red-text">Chat disabled!</span><br>Due to some users abusing it.<br>Messaging can be done on <a style="font-size: 18px; padding: 0; display: inline;" target="_blank" href="https://discord.gg/0b7aUqx2yknng2st">Discord</a>.</p>
  67. </li>
  68. </ul>
  69. <!-- <div>
  70. <div class="row" id="chat-input-div">
  71. <div class="input-field col s12">
  72. <input id="chat-message" type="text">
  73. <label for="chat-message">Send a message</label>
  74. </div>
  75. </div>
  76. <a id="submit" class="waves-effect waves-light btn">Send</a>
  77. </div> -->
  78. </div>
  79. <!--Playlist slideout-->
  80. <div id="playlist-slide-out" class="side-nav room-slideout">
  81. <h5>Playlist</h5>
  82. </div>
  83. <div id="users-slide-out" class="side-nav room-slideout">
  84. <h5>Users In Room</h5>
  85. <ul>
  86. {{#each usersInRoom}}
  87. <li><a href=/u/{{this}} target="_blank">{{this}}</a></li>
  88. {{/each}}
  89. </ul>
  90. </div>
  91. <div id="allowed-slide-out" class="side-nav room-slideout">
  92. <h5>Allowed</h5>
  93. <ul class="list-ul" id="allowed-ul">
  94. {{#each allowed}}
  95. <li>
  96. <a href=/u/{{this.name}} target="_blank">
  97. {{this.name}}
  98. {{#if isPrivateRoomOwner name}}
  99. <a href="#" class="right remove-allowed" data-user={{this.id}}>
  100. <i class="material-icons" style="line-height: 64px;">remove</i>
  101. </a>
  102. {{/if}}
  103. </a>
  104. </li>
  105. {{/each}}
  106. </ul>
  107. {{#if isPrivateRoomOwner name}}
  108. <div>
  109. <div class="row" id="chat-input-div">
  110. <div class="input-field col s12">
  111. <input id="add-allowed" type="text">
  112. <label for="add-allowed">Add user</label>
  113. </div>
  114. </div>
  115. <a id="add-allowed-submit" class="waves-effect waves-light btn">Add</a>
  116. </div>
  117. {{/if}}
  118. </div>
  119. <div id="playlists-slide-out" class="side-nav room-slideout">
  120. <h5>Playlists</h5>
  121. <ul class="list-ul" id="playlists-ul">
  122. {{#each playlists}}
  123. <li>
  124. <a href="#edit_playlist_modal" class="edit-playlist-button" data-playlist={{this.name}}>
  125. {{this.displayName}}
  126. <a href="#" class="right select-playlist" data-playlist={{this.name}}>
  127. {{#if isPrivateRoomOwner name}}
  128. {{#if isPlaylistSelected name this.name}}
  129. <i class="material-icons" style="line-height: 64px;">check_circle</i>
  130. {{else}}
  131. <i class="material-icons" data-playlist={{this.name}} style="line-height: 64px;" title="Select playlist">panorama_fish_eye</i>
  132. {{/if}}
  133. {{/if}}
  134. </a>
  135. </a>
  136. </li>
  137. {{/each}}
  138. </ul>
  139. <div>
  140. <a id="add-playlist-modal-button" class="waves-effect waves-light btn" href="#create_playlist_modal">Create Playlist</a>
  141. </div>
  142. </div>
  143. <!--room controls-->
  144. <ul id='control-dropdown' style="background-color: rgb(3, 169, 244) !important; display: none">
  145. {{#if playing}}
  146. <li><a id="pause"><i class="material-icons">pause</i></a></li>
  147. {{else}}
  148. <li><a id="play"><i class="material-icons">play_arrow</i></a></li>
  149. {{/if}}
  150. <li><a id="skip"><i class="material-icons">skip_next</i></a></li>
  151. {{#if private}}
  152. <li><a id="unlock"><i class="material-icons">lock_outline</i></a></li>
  153. {{else}}
  154. <li><a id="lock"><i class="material-icons">lock_open</i></a></li>
  155. {{/if}}
  156. <li><a id="edit_room" href="#edit_room_modal"><i class="material-icons">mode_edit</i></a></li>
  157. </ul>
  158. <!-- Edit Room Modal -->
  159. <div id="edit_room_modal" class="modal">
  160. <div class="modal-content">
  161. <h4>Edit Room</h4>
  162. <div class="input-field">
  163. <input id="edit_room_description" value={{room.roomDesc}} type="text">
  164. <label for="edit_room_description">Description</label>
  165. </div>
  166. <div class="input-field">
  167. <input id="edit_room_display" value={{room.displayName}} type="text">
  168. <label for="edit_room_display">Display Name</label>
  169. </div>
  170. <button class="btn waves-effect waves-light" id="save_edit_room_changes">Save Changes</button>
  171. <button class="btn waves-effect waves-light right red" id="delete_room">Delete Room</button>
  172. </div>
  173. <div class="divider"></div>
  174. <div class="modal-footer">
  175. <a class="modal-action modal-close waves-effect btn">Close</a>
  176. </div>
  177. </div>
  178. <!-- Edit Playlist Modal -->
  179. <div id="edit_playlist_modal" class="modal">
  180. <div class="modal-content">
  181. <h4>Editing: {{editingPlaylist.name}}</h4>
  182. {{#each song in editingPlaylist.songs}}
  183. <a href="https://youtube.com/watch?v={{song.id}}" target="_blank">{{song.title}}</a> <span class="red-text remove_playlist_button" data-id={{song.id}} style="cursor: pointer">remove</span><br>
  184. {{/each}}
  185. <div class="input-field">
  186. <input id="add_playlist_video" type="text">
  187. <label for="add_playlist_video">Video ID</label>
  188. </div>
  189. <button class="btn waves-effect waves-light" id="add_playlist_video_submit">Add video</button>
  190. <button class="btn waves-effect waves-light right red" id="delete_playlist">Delete playlist</button>
  191. </div>
  192. <div class="divider"></div>
  193. <div class="modal-footer">
  194. <a class="modal-action modal-close waves-effect btn">Close</a>
  195. </div>
  196. </div>
  197. <!-- Create Playlist Modal -->
  198. <div id="create_playlist_modal" class="modal">
  199. <div class="modal-content">
  200. <h4>Create Modal</h4>
  201. <div class="input-field">
  202. <input id="create_playlist_name" type="text">
  203. <label for="create_playlist_name">Name</label>
  204. </div>
  205. <div class="input-field">
  206. <input id="create_playlist_display_name" type="text">
  207. <label for="create_playlist_display_name">Display Name</label>
  208. </div>
  209. <button class="btn waves-effect waves-light" id="create_playlist_submit">Create</button>
  210. </div>
  211. <div class="divider"></div>
  212. <div class="modal-footer">
  213. <a class="modal-action modal-close waves-effect btn">Close</a>
  214. </div>
  215. </div>
  216. <script>
  217. $(".edit-playlist-button").leanModal({
  218. dismissible: true,
  219. opacity: .5,
  220. in_duration: 500,
  221. out_duration: 200
  222. });
  223. $("#add-playlist-modal-button").leanModal({
  224. dismissible: true,
  225. opacity: .5,
  226. in_duration: 500,
  227. out_duration: 200
  228. });
  229. $("#edit_room").leanModal({
  230. dismissible: true,
  231. opacity: .5,
  232. in_duration: 500,
  233. out_duration: 200
  234. });
  235. $(".dropdown-button").dropdown({
  236. belowOrigin: true
  237. });
  238. $('select').material_select();
  239. $("#chat-slideout").sideNav({
  240. menuWidth: 350,
  241. edge: 'right'
  242. });
  243. $("#playlist-slideout").sideNav({
  244. menuWidth: 350,
  245. edge: 'right'
  246. });
  247. $("#users-slideout").sideNav({
  248. menuWidth: 350,
  249. edge: 'right'
  250. });
  251. $("#allowed-slideout").sideNav({
  252. menuWidth: 350,
  253. edge: 'right'
  254. });
  255. $("#playlists-slideout").sideNav({
  256. menuWidth: 350,
  257. edge: 'right'
  258. });
  259. $('.tooltipped').tooltip({delay: 50});
  260. </script>
  261. </template>