Home.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <template>
  2. <div class="app">
  3. <main-header></main-header>
  4. <div class="modal fade" id="register" tabindex="-1" role="dialog" aria-labelledby="register-modal">
  5. <div class="modal-dialog" role="document">
  6. <div class="modal-content">
  7. <div class="modal-header">
  8. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  9. <h5 class="modal-title">Register</h5>
  10. </div>
  11. <div class="modal-body">
  12. <input class="form-control" type="text" placeholder="Email..." v-model="$parent.register.email"/>
  13. <input class="form-control" type="text" placeholder="Username..." v-model="$parent.register.username"/>
  14. <input class="form-control" type="password" placeholder="Password..." v-model="$parent.register.password"/>
  15. <div class="g-recaptcha" data-sitekey="6Lfa-wYUAAAAANY6iVvWNEXohC38l1cZqHRole9T"></div>
  16. </div>
  17. <div class="modal-footer">
  18. <button type="button" class="btn btn-primary" data-dismiss="modal" @click="this.$dispatch('register');">Submit</button>
  19. </div>
  20. </div>
  21. </div>
  22. </div>
  23. <div class="modal fade" id="login" tabindex="-1" role="dialog" aria-labelledby="login-modal">
  24. <div class="modal-dialog" role="document">
  25. <div class="modal-content">
  26. <div class="modal-header">
  27. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  28. <h5 class="modal-title">Login</h5>
  29. </div>
  30. <div class="modal-body">
  31. <input class="form-control" type="text" placeholder="Email..." v-model="$parent.login.email"/>
  32. <input class="form-control" type="password" placeholder="Password..." v-model="$parent.login.password"/>
  33. </div>
  34. <div class="modal-footer">
  35. <button type="button" class="btn btn-primary" data-dismiss="modal" @click="this.$dispatch('login');">Submit</button>
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. <div class="group">
  41. <!--<div class="group-title">{{group.name}}</div>-->
  42. <div class="group-stations">
  43. <div class="stations-station" v-for="station in $parent.stations" v-link="{ path: '/station/' + station.id }">
  44. <img class="station-image" :src="station.playlist[station.currentSongIndex].thumbnail" />
  45. <div class="station-info">
  46. <div class="station-grid-left">
  47. <h3>{{ station.displayName }}</h3>
  48. <p>{{ station.description }}</p>
  49. </div>
  50. <div class="station-grid-right">
  51. <!--<div>{{ station.users }}&nbsp;&nbsp;<i class="fa fa-user" aria-hidden="true"></i></div>-->
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. <main-footer></main-footer>
  58. </div>
  59. </template>
  60. <script>
  61. import MainHeader from '../MainHeader.vue'
  62. import MainFooter from '../MainFooter.vue'
  63. export default {
  64. components: { MainHeader, MainFooter }
  65. }
  66. </script>
  67. <style lang="sass">
  68. * { box-sizing: border-box; font-family: Roboto, sans-serif; }
  69. html {
  70. width: 100%;
  71. height: 100%;
  72. color: rgba(0, 0, 0, 0.87);
  73. body {
  74. width: 100%;
  75. height: 100%;
  76. margin: 0;
  77. padding: 0;
  78. }
  79. }
  80. @media only screen and (min-width: 1200px) {
  81. html {
  82. font-size: 15px;
  83. }
  84. }
  85. @media only screen and (min-width: 992px) {
  86. html {
  87. font-size: 14.5px;
  88. }
  89. }
  90. @media only screen and (min-width: 0) {
  91. html {
  92. font-size: 14px;
  93. }
  94. }
  95. .g-recaptcha {
  96. display: flex;
  97. justify-content: center;
  98. margin-top: 10px;
  99. }
  100. .group {
  101. width: 100%;
  102. height: 448px;
  103. margin: 64px 0 64px 0;
  104. .group-title {
  105. float: left;
  106. clear: none;
  107. width: 100%;
  108. height: 64px;
  109. line-height: 48px;
  110. text-align: center;
  111. font-size: 48px;
  112. }
  113. .group-stations {
  114. white-space: nowrap;
  115. text-align: center;
  116. overflow: hidden;
  117. float: left;
  118. clear: none;
  119. width: 100%;
  120. height: 400px;
  121. .stations-station {
  122. position: relative;
  123. top: 16px;
  124. display: inline-block;
  125. clear: none;
  126. width: 256px;
  127. height: 370px;
  128. margin: 0 16px 0 16px;
  129. box-shadow: 0 1px 6px 2px rgba(0, 0, 0, 0.25);
  130. cursor: pointer;
  131. .station-info {
  132. display: flex;
  133. flex-direction: row;
  134. align-items: center;
  135. }
  136. .station-image {
  137. width: 100%;
  138. height: 256px;
  139. }
  140. .station-grid-left {
  141. display: flex;
  142. flex-direction: column;
  143. width: 75%;
  144. text-align: left;
  145. padding-left: 10px;
  146. h3, p {
  147. margin: 0;
  148. white-space: normal;
  149. padding-top: 10px;
  150. }
  151. }
  152. .station-grid-right {
  153. display: flex;
  154. flex-direction: column;
  155. width: 25%;
  156. }
  157. }
  158. }
  159. }
  160. .btn-github {
  161. background-color: #333;
  162. color: #fff;
  163. border: 0;
  164. &:hover, &:active, &:focus {
  165. background-color: darken(#333, 5%);
  166. color: #fff;
  167. }
  168. }
  169. .btn-discord {
  170. background-color: #7289DA;
  171. color: #fff;
  172. border: 0;
  173. &:hover, &:active, &:focus {
  174. background-color: darken(#7289DA, 5%);
  175. color: #fff;
  176. }
  177. }
  178. </style>