Report.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <template>
  2. <div class='modal is-active'>
  3. <div class='modal-background'></div>
  4. <div class='modal-card'>
  5. <header class='modal-card-head'>
  6. <p class='modal-card-title'>Report</p>
  7. <button class='delete' @click='$parent.modals.report = !$parent.modals.report'></button>
  8. </header>
  9. <section class='modal-card-body'>
  10. <div class='columns'>
  11. <div class='column'>
  12. <div class='card is-fullwidth'>
  13. <header class='card-header'>
  14. <p class='card-header-title'>
  15. Previous Song
  16. </p>
  17. </header>
  18. <div class='card-content'>
  19. <article class='media'>
  20. <figure class='media-left'>
  21. <p class='image is-64x64'>
  22. <img :src='$parent.previousSong.thumbnail' onerror='this.src="/assets/notes.png"'>
  23. </p>
  24. </figure>
  25. <div class='media-content'>
  26. <div class='content'>
  27. <p>
  28. <strong>{{ $parent.previousSong.title }}</strong>
  29. <br>
  30. <small>{{ $parent.previousSong.artists.split(' ,') }}</small>
  31. </p>
  32. </div>
  33. </div>
  34. </article>
  35. </div>
  36. </div>
  37. </div>
  38. <div class='column'>
  39. <div class='card is-fullwidth'>
  40. <header class='card-header'>
  41. <p class='card-header-title'>
  42. Current Song
  43. </p>
  44. </header>
  45. <div class='card-content'>
  46. <article class='media'>
  47. <figure class='media-left'>
  48. <p class='image is-64x64'>
  49. <img :src='$parent.currentSong.thumbnail' onerror='this.src="/assets/notes.png"'>
  50. </p>
  51. </figure>
  52. <div class='media-content'>
  53. <div class='content'>
  54. <p>
  55. <strong>{{ $parent.currentSong.title }}</strong>
  56. <br>
  57. <small>{{ $parent.currentSong.artists.split(' ,') }}</small>
  58. </p>
  59. </div>
  60. </div>
  61. </article>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. <div class='edit-report-wrapper'>
  67. <div class='columns'>
  68. <div class='column'>
  69. <label class='label'>Video</label>
  70. <p class='control'>
  71. <label class='checkbox'>
  72. <input type='checkbox'>
  73. Doesn't exist
  74. </label>
  75. </p>
  76. <p class='control'>
  77. <label class='checkbox'>
  78. <input type='checkbox'>
  79. It's Private
  80. </label>
  81. </p>
  82. <p class='control'>
  83. <label class='checkbox'>
  84. <input type='checkbox'>
  85. It's not available in my country
  86. </label>
  87. </p>
  88. </div>
  89. <div class='column'>
  90. <label class='label'>Title</label>
  91. <p class='control'>
  92. <label class='checkbox'>
  93. <input type='checkbox'>
  94. Incorrect
  95. </label>
  96. </p>
  97. <p class='control'>
  98. <label class='checkbox'>
  99. <input type='checkbox'>
  100. Inappropriate
  101. </label>
  102. </p>
  103. </div>
  104. </div>
  105. <div class='columns'>
  106. <div class='column'>
  107. <label class='label'>Duration</label>
  108. <p class='control'>
  109. <label class='checkbox'>
  110. <input type='checkbox'>
  111. Skips too soon
  112. </label>
  113. </p>
  114. <p class='control'>
  115. <label class='checkbox'>
  116. <input type='checkbox'>
  117. Skips too late
  118. </label>
  119. </p>
  120. <p class='control'>
  121. <label class='checkbox'>
  122. <input type='checkbox'>
  123. Starts too soon
  124. </label>
  125. </p>
  126. <p class='control'>
  127. <label class='checkbox'>
  128. <input type='checkbox'>
  129. Starts too late
  130. </label>
  131. </p>
  132. </div>
  133. <div class='column'>
  134. <label class='label'>Artists</label>
  135. <p class='control'>
  136. <label class='checkbox'>
  137. <input type='checkbox'>
  138. Incorrect
  139. </label>
  140. </p>
  141. <p class='control'>
  142. <label class='checkbox'>
  143. <input type='checkbox'>
  144. Inappropriate
  145. </label>
  146. </p>
  147. </div>
  148. </div>
  149. <div class='columns'>
  150. <div class='column'>
  151. <label class='label'>Thumbnail</label>
  152. <p class='control'>
  153. <label class='checkbox'>
  154. <input type='checkbox'>
  155. Incorrect
  156. </label>
  157. </p>
  158. <p class='control'>
  159. <label class='checkbox'>
  160. <input type='checkbox'>
  161. Inappropriate
  162. </label>
  163. </p>
  164. <p class='control'>
  165. <label class='checkbox'>
  166. <input type='checkbox'>
  167. Doesn't exist
  168. </label>
  169. </p>
  170. </div>
  171. <div class='column'>
  172. <label class='label'>Other</label>
  173. <textarea class='textarea' placeholder='Any other details...'></textarea>
  174. </div>
  175. </div>
  176. </div>
  177. </section>
  178. <footer class='modal-card-foot'>
  179. <a class='button is-success' @click='save()'>
  180. <i class='material-icons save-changes'>done</i>
  181. <span>&nbsp;Submit Report</span>
  182. </a>
  183. <a class='button is-danger' @click='$parent.modals.report = !$parent.modals.report'>
  184. <span>&nbsp;Cancel</span>
  185. </a>
  186. </footer>
  187. </div>
  188. </div>
  189. </template>
  190. <script>
  191. export default {
  192. data() {
  193. return {
  194. report: {
  195. }
  196. }
  197. },
  198. methods: {
  199. save: function () {
  200. // this.socket.emit('reports.updateDisplayName', this.$parent.stationId, this.$parent.station.displayName, res => {
  201. // if (res.status == 'success') return Toast.methods.addToast(res.message, 4000);
  202. // Toast.methods.addToast(res.message, 8000);
  203. // });
  204. }
  205. },
  206. ready() {
  207. console.log(this.$parent.currentSong)
  208. }
  209. }
  210. </script>
  211. <style type='scss' scoped>
  212. h6 { margin-bottom: 15px; }
  213. .previous-song, .current-song {
  214. display: flex;
  215. flex-direction: column;
  216. align-items: center;
  217. }
  218. .media-content {
  219. display: flex;
  220. align-items: center;
  221. height: 64px;
  222. }
  223. .radio-controls .control {
  224. display: flex;
  225. align-items: center;
  226. }
  227. @media screen and (min-width: 769px) {
  228. .radio-controls .control-label { padding-top: 0 !important; }
  229. }
  230. .edit-report-wrapper {
  231. padding: 20px;
  232. }
  233. </style>