|
@@ -3,304 +3,352 @@
|
|
|
<metadata v-if="exists && !loading" :title="`${station.displayName}`" />
|
|
|
<metadata v-else-if="!exists && !loading" :title="`Not found`" />
|
|
|
|
|
|
- <main-header v-if="exists" />
|
|
|
-
|
|
|
- <div
|
|
|
- id="station-outer-container"
|
|
|
- :style="[!exists ? { margin: 0, padding: 0 } : {}]"
|
|
|
- >
|
|
|
- <div v-show="loading" class="progress" />
|
|
|
- <div
|
|
|
- v-show="!loading && exists"
|
|
|
- id="station-inner-container"
|
|
|
- :class="{ 'nothing-here': noSong }"
|
|
|
+ <div id="content-loader-container" v-if="loading">
|
|
|
+ <content-loader
|
|
|
+ width="1920"
|
|
|
+ height="1080"
|
|
|
+ primary-color="#f3f3f3"
|
|
|
+ secondary-color="#cccccc"
|
|
|
+ preserve-aspect-ratio="none"
|
|
|
+ style="position: absolute; height: inherit; max-width: 1800px; transform: translateX(-50%); left: 50%;"
|
|
|
>
|
|
|
- <div id="station-left-column" class="column">
|
|
|
- <div class="player-container quadrant" v-show="!noSong">
|
|
|
- <div id="video-container">
|
|
|
- <div
|
|
|
- id="stationPlayer"
|
|
|
- style="width: 100%; height: 100%"
|
|
|
- />
|
|
|
- <div
|
|
|
- class="player-cannot-autoplay"
|
|
|
- v-if="!canAutoplay"
|
|
|
- >
|
|
|
- <p>
|
|
|
- Please click anywhere on the screen for the
|
|
|
- video to start
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div id="seeker-bar-container">
|
|
|
- <div id="seeker-bar" style="width: 0%" />
|
|
|
- </div>
|
|
|
- <div id="control-bar-container">
|
|
|
- <div id="left-buttons">
|
|
|
- <!-- Debug Box -->
|
|
|
- <button
|
|
|
- class="button is-primary"
|
|
|
- @click="togglePlayerDebugBox()"
|
|
|
- @dblclick="resetPlayerDebugBox()"
|
|
|
- >
|
|
|
- <i class="material-icons icon-with-button">
|
|
|
- bug_report
|
|
|
- </i>
|
|
|
- </button>
|
|
|
+ <rect x="100" y="108" rx="5" ry="5" width="1048" height="672" />
|
|
|
+ <rect x="100" y="810" rx="5" ry="5" width="1048" height="110" />
|
|
|
+ <rect x="1190" y="110" rx="5" ry="5" width="630" height="149" />
|
|
|
+ <rect x="1190" y="288" rx="5" ry="5" width="630" height="630" />
|
|
|
+ </content-loader>
|
|
|
+
|
|
|
+ <content-loader
|
|
|
+ width="1920"
|
|
|
+ height="1080"
|
|
|
+ primary-color="#f3f3f3"
|
|
|
+ secondary-color="#cccccc"
|
|
|
+ preserve-aspect-ratio="none"
|
|
|
+ style="height: inherit"
|
|
|
+ >
|
|
|
+ <rect x="0" y="0" rx="0" ry="0" width="1920" height="64" />
|
|
|
+ <rect x="0" y="980" rx="0" ry="0" width="1920" height="100" />
|
|
|
+ </content-loader>
|
|
|
+ </div>
|
|
|
|
|
|
- <!-- Local Pause/Resume Button -->
|
|
|
- <button
|
|
|
- class="button is-primary"
|
|
|
- @click="resumeLocalStation()"
|
|
|
- id="local-resume"
|
|
|
- v-if="localPaused"
|
|
|
- >
|
|
|
- <i class="material-icons">play_arrow</i>
|
|
|
- </button>
|
|
|
- <button
|
|
|
- class="button is-primary"
|
|
|
- @click="pauseLocalStation()"
|
|
|
- id="local-pause"
|
|
|
- v-else
|
|
|
- >
|
|
|
- <i class="material-icons">pause</i>
|
|
|
- </button>
|
|
|
+ <!-- More simplistic loading animation for mobile users -->
|
|
|
+ <div v-show="loading" id="mobile-progress-animation" />
|
|
|
|
|
|
- <!-- Vote to Skip Button -->
|
|
|
- <button
|
|
|
- v-if="loggedIn"
|
|
|
- class="button is-primary"
|
|
|
- @click="voteSkipStation()"
|
|
|
- >
|
|
|
- <i class="material-icons icon-with-button"
|
|
|
- >skip_next</i
|
|
|
- >
|
|
|
- {{ currentSong.skipVotes }}
|
|
|
- </button>
|
|
|
- </div>
|
|
|
- <div id="duration">
|
|
|
- <p>
|
|
|
- {{ timeElapsed }} /
|
|
|
- {{ utils.formatTime(currentSong.duration) }}
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- <p id="volume-control">
|
|
|
- <i
|
|
|
- v-if="muted"
|
|
|
- class="material-icons"
|
|
|
- @click="toggleMute()"
|
|
|
- >volume_mute</i
|
|
|
- >
|
|
|
- <i
|
|
|
- v-else
|
|
|
- class="material-icons"
|
|
|
- @click="toggleMute()"
|
|
|
- >volume_down</i
|
|
|
- >
|
|
|
- <input
|
|
|
- v-model="volumeSliderValue"
|
|
|
- type="range"
|
|
|
- min="0"
|
|
|
- max="10000"
|
|
|
- class="volume-slider active"
|
|
|
- @change="changeVolume()"
|
|
|
- @input="changeVolume()"
|
|
|
+ <div v-show="!loading">
|
|
|
+ <main-header v-if="exists" />
|
|
|
+
|
|
|
+ <div
|
|
|
+ id="station-outer-container"
|
|
|
+ :style="[!exists ? { margin: 0, padding: 0 } : {}]"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ v-show="exists"
|
|
|
+ id="station-inner-container"
|
|
|
+ :class="{ 'nothing-here': noSong }"
|
|
|
+ >
|
|
|
+ <div id="station-left-column" class="column">
|
|
|
+ <div class="player-container quadrant" v-show="!noSong">
|
|
|
+ <div id="video-container">
|
|
|
+ <div
|
|
|
+ id="stationPlayer"
|
|
|
+ style="width: 100%; height: 100%; min-height: 200px;"
|
|
|
/>
|
|
|
- <i
|
|
|
- class="material-icons"
|
|
|
- @click="increaseVolume()"
|
|
|
- >volume_up</i
|
|
|
- >
|
|
|
- </p>
|
|
|
- <div id="right-buttons" v-if="loggedIn">
|
|
|
- <!-- Ratings (Like/Dislike) Buttons -->
|
|
|
<div
|
|
|
- id="ratings"
|
|
|
- v-if="
|
|
|
- currentSong.likes !== -1 &&
|
|
|
- currentSong.dislikes !== -1
|
|
|
- "
|
|
|
- :class="{
|
|
|
- liked: liked,
|
|
|
- disliked: disliked
|
|
|
- }"
|
|
|
+ class="player-cannot-autoplay"
|
|
|
+ v-if="!canAutoplay"
|
|
|
>
|
|
|
- <!-- Like Song Button -->
|
|
|
+ <p>
|
|
|
+ Please click anywhere on the screen for
|
|
|
+ the video to start
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div id="seeker-bar-container">
|
|
|
+ <div id="seeker-bar" style="width: 0%" />
|
|
|
+ </div>
|
|
|
+ <div id="control-bar-container">
|
|
|
+ <div id="left-buttons">
|
|
|
+ <!-- Debug Box -->
|
|
|
<button
|
|
|
- class="button is-success"
|
|
|
- id="like-song"
|
|
|
- @click="toggleLike()"
|
|
|
+ class="button is-primary"
|
|
|
+ @click="togglePlayerDebugBox()"
|
|
|
+ @dblclick="resetPlayerDebugBox()"
|
|
|
>
|
|
|
<i
|
|
|
class="material-icons icon-with-button"
|
|
|
- :class="{ liked: liked }"
|
|
|
- >thumb_up_alt</i
|
|
|
- >{{ currentSong.likes }}
|
|
|
+ >
|
|
|
+ bug_report
|
|
|
+ </i>
|
|
|
</button>
|
|
|
|
|
|
- <!-- Dislike Song Button -->
|
|
|
+ <!-- Local Pause/Resume Button -->
|
|
|
<button
|
|
|
- class="button is-danger"
|
|
|
- id="dislike-song"
|
|
|
- @click="toggleDislike()"
|
|
|
+ class="button is-primary"
|
|
|
+ @click="resumeLocalStation()"
|
|
|
+ id="local-resume"
|
|
|
+ v-if="localPaused"
|
|
|
+ >
|
|
|
+ <i class="material-icons">play_arrow</i>
|
|
|
+ </button>
|
|
|
+ <button
|
|
|
+ class="button is-primary"
|
|
|
+ @click="pauseLocalStation()"
|
|
|
+ id="local-pause"
|
|
|
+ v-else
|
|
|
+ >
|
|
|
+ <i class="material-icons">pause</i>
|
|
|
+ </button>
|
|
|
+
|
|
|
+ <!-- Vote to Skip Button -->
|
|
|
+ <button
|
|
|
+ v-if="loggedIn"
|
|
|
+ class="button is-primary"
|
|
|
+ @click="voteSkipStation()"
|
|
|
>
|
|
|
<i
|
|
|
class="material-icons icon-with-button"
|
|
|
- :class="{
|
|
|
- disliked: disliked
|
|
|
- }"
|
|
|
- >thumb_down_alt</i
|
|
|
- >{{ currentSong.dislikes }}
|
|
|
+ >skip_next</i
|
|
|
+ >
|
|
|
+ {{ currentSong.skipVotes }}
|
|
|
</button>
|
|
|
</div>
|
|
|
-
|
|
|
- <!-- Add Song To Playlist Button & Dropdown -->
|
|
|
- <div id="add-song-to-playlist">
|
|
|
- <div class="control has-addons">
|
|
|
+ <div id="duration">
|
|
|
+ <p>
|
|
|
+ {{ timeElapsed }} /
|
|
|
+ {{
|
|
|
+ utils.formatTime(
|
|
|
+ currentSong.duration
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ <p id="volume-control">
|
|
|
+ <i
|
|
|
+ v-if="muted"
|
|
|
+ class="material-icons"
|
|
|
+ @click="toggleMute()"
|
|
|
+ >volume_mute</i
|
|
|
+ >
|
|
|
+ <i
|
|
|
+ v-else
|
|
|
+ class="material-icons"
|
|
|
+ @click="toggleMute()"
|
|
|
+ >volume_down</i
|
|
|
+ >
|
|
|
+ <input
|
|
|
+ v-model="volumeSliderValue"
|
|
|
+ type="range"
|
|
|
+ min="0"
|
|
|
+ max="10000"
|
|
|
+ class="volume-slider active"
|
|
|
+ @change="changeVolume()"
|
|
|
+ @input="changeVolume()"
|
|
|
+ />
|
|
|
+ <i
|
|
|
+ class="material-icons"
|
|
|
+ @click="increaseVolume()"
|
|
|
+ >volume_up</i
|
|
|
+ >
|
|
|
+ </p>
|
|
|
+ <div id="right-buttons" v-if="loggedIn">
|
|
|
+ <!-- Ratings (Like/Dislike) Buttons -->
|
|
|
+ <div
|
|
|
+ id="ratings"
|
|
|
+ v-if="
|
|
|
+ currentSong.likes !== -1 &&
|
|
|
+ currentSong.dislikes !== -1
|
|
|
+ "
|
|
|
+ :class="{
|
|
|
+ liked: liked,
|
|
|
+ disliked: disliked
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <!-- Like Song Button -->
|
|
|
<button
|
|
|
- class="button is-primary"
|
|
|
- @click="
|
|
|
- showPlaylistDropdown = !showPlaylistDropdown
|
|
|
- "
|
|
|
+ class="button is-success"
|
|
|
+ id="like-song"
|
|
|
+ @click="toggleLike()"
|
|
|
>
|
|
|
- <i class="material-icons">queue</i>
|
|
|
+ <i
|
|
|
+ class="material-icons icon-with-button"
|
|
|
+ :class="{ liked: liked }"
|
|
|
+ >thumb_up_alt</i
|
|
|
+ >{{ currentSong.likes }}
|
|
|
</button>
|
|
|
+
|
|
|
+ <!-- Dislike Song Button -->
|
|
|
<button
|
|
|
- class="button"
|
|
|
- id="dropdown-toggle"
|
|
|
- @click="
|
|
|
- showPlaylistDropdown = !showPlaylistDropdown
|
|
|
- "
|
|
|
+ class="button is-danger"
|
|
|
+ id="dislike-song"
|
|
|
+ @click="toggleDislike()"
|
|
|
>
|
|
|
- <i class="material-icons">
|
|
|
- {{
|
|
|
- showPlaylistDropdown
|
|
|
- ? "expand_more"
|
|
|
- : "expand_less"
|
|
|
- }}
|
|
|
- </i>
|
|
|
+ <i
|
|
|
+ class="material-icons icon-with-button"
|
|
|
+ :class="{
|
|
|
+ disliked: disliked
|
|
|
+ }"
|
|
|
+ >thumb_down_alt</i
|
|
|
+ >{{ currentSong.dislikes }}
|
|
|
</button>
|
|
|
</div>
|
|
|
- <add-to-playlist-dropdown
|
|
|
- v-if="showPlaylistDropdown"
|
|
|
- />
|
|
|
+
|
|
|
+ <!-- Add Song To Playlist Button & Dropdown -->
|
|
|
+ <div id="add-song-to-playlist">
|
|
|
+ <div class="control has-addons">
|
|
|
+ <button
|
|
|
+ class="button is-primary"
|
|
|
+ @click="
|
|
|
+ showPlaylistDropdown = !showPlaylistDropdown
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <i class="material-icons"
|
|
|
+ >queue</i
|
|
|
+ >
|
|
|
+ </button>
|
|
|
+ <button
|
|
|
+ class="button"
|
|
|
+ id="dropdown-toggle"
|
|
|
+ @click="
|
|
|
+ showPlaylistDropdown = !showPlaylistDropdown
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <i class="material-icons">
|
|
|
+ {{
|
|
|
+ showPlaylistDropdown
|
|
|
+ ? "expand_more"
|
|
|
+ : "expand_less"
|
|
|
+ }}
|
|
|
+ </i>
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ <add-to-playlist-dropdown
|
|
|
+ v-if="showPlaylistDropdown"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <p class="player-container nothing-here-text" v-if="noSong">
|
|
|
- No song is currently playing
|
|
|
- </p>
|
|
|
- <div v-if="!noSong" id="current-next-row">
|
|
|
- <div
|
|
|
- id="currently-playing-container"
|
|
|
- class="quadrant"
|
|
|
- :class="{ 'no-currently-playing': noSong }"
|
|
|
+ <p
|
|
|
+ class="player-container nothing-here-text"
|
|
|
+ v-if="noSong"
|
|
|
>
|
|
|
- <currently-playing />
|
|
|
- <!-- <p v-else class="nothing-here-text">
|
|
|
+ No song is currently playing
|
|
|
+ </p>
|
|
|
+ <div v-if="!noSong" id="current-next-row">
|
|
|
+ <div
|
|
|
+ id="currently-playing-container"
|
|
|
+ class="quadrant"
|
|
|
+ :class="{ 'no-currently-playing': noSong }"
|
|
|
+ >
|
|
|
+ <currently-playing />
|
|
|
+ <!-- <p v-else class="nothing-here-text">
|
|
|
No song is currently playing
|
|
|
</p> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div id="station-right-column" class="column">
|
|
|
- <div id="about-station-container" class="quadrant">
|
|
|
- <div id="station-info">
|
|
|
- <div class="row" id="station-name">
|
|
|
- <h1>{{ station.displayName }}</h1>
|
|
|
- <a href="#">
|
|
|
- <!-- Favorite Station Button -->
|
|
|
- <i
|
|
|
- v-if="loggedIn && station.isFavorited"
|
|
|
- @click.prevent="unfavoriteStation()"
|
|
|
- class="material-icons"
|
|
|
- >star</i
|
|
|
- >
|
|
|
- <i
|
|
|
- v-if="loggedIn && !station.isFavorited"
|
|
|
- @click.prevent="favoriteStation()"
|
|
|
- class="material-icons"
|
|
|
- >star_border</i
|
|
|
- >
|
|
|
- </a>
|
|
|
+ <div id="station-right-column" class="column">
|
|
|
+ <div id="about-station-container" class="quadrant">
|
|
|
+ <div id="station-info">
|
|
|
+ <div class="row" id="station-name">
|
|
|
+ <h1>{{ station.displayName }}</h1>
|
|
|
+ <a href="#">
|
|
|
+ <!-- Favorite Station Button -->
|
|
|
+ <i
|
|
|
+ v-if="
|
|
|
+ loggedIn && station.isFavorited
|
|
|
+ "
|
|
|
+ @click.prevent="unfavoriteStation()"
|
|
|
+ class="material-icons"
|
|
|
+ >star</i
|
|
|
+ >
|
|
|
+ <i
|
|
|
+ v-if="
|
|
|
+ loggedIn && !station.isFavorited
|
|
|
+ "
|
|
|
+ @click.prevent="favoriteStation()"
|
|
|
+ class="material-icons"
|
|
|
+ >star_border</i
|
|
|
+ >
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
+ <p>{{ station.description }}</p>
|
|
|
</div>
|
|
|
- <p>{{ station.description }}</p>
|
|
|
- </div>
|
|
|
|
|
|
- <div id="admin-buttons" v-if="isOwnerOrAdmin()">
|
|
|
- <!-- (Admin) Pause/Resume Button -->
|
|
|
- <button
|
|
|
- class="button is-danger"
|
|
|
- v-if="stationPaused"
|
|
|
- @click="resumeStation()"
|
|
|
- >
|
|
|
- <i class="material-icons icon-with-button"
|
|
|
- >play_arrow</i
|
|
|
+ <div id="admin-buttons" v-if="isOwnerOrAdmin()">
|
|
|
+ <!-- (Admin) Pause/Resume Button -->
|
|
|
+ <button
|
|
|
+ class="button is-danger"
|
|
|
+ v-if="stationPaused"
|
|
|
+ @click="resumeStation()"
|
|
|
>
|
|
|
- <span class="optional-desktop-only-text">
|
|
|
- Resume Station
|
|
|
- </span>
|
|
|
- </button>
|
|
|
- <button
|
|
|
- class="button is-danger"
|
|
|
- @click="pauseStation()"
|
|
|
- v-else
|
|
|
- >
|
|
|
- <i class="material-icons icon-with-button"
|
|
|
- >pause</i
|
|
|
+ <i class="material-icons icon-with-button"
|
|
|
+ >play_arrow</i
|
|
|
+ >
|
|
|
+ <span class="optional-desktop-only-text">
|
|
|
+ Resume Station
|
|
|
+ </span>
|
|
|
+ </button>
|
|
|
+ <button
|
|
|
+ class="button is-danger"
|
|
|
+ @click="pauseStation()"
|
|
|
+ v-else
|
|
|
>
|
|
|
- <span class="optional-desktop-only-text">
|
|
|
- Pause Station
|
|
|
- </span>
|
|
|
- </button>
|
|
|
-
|
|
|
- <!-- (Admin) Skip Button -->
|
|
|
- <button
|
|
|
- class="button is-danger"
|
|
|
- @click="skipStation()"
|
|
|
- >
|
|
|
- <i class="material-icons icon-with-button"
|
|
|
- >skip_next</i
|
|
|
+ <i class="material-icons icon-with-button"
|
|
|
+ >pause</i
|
|
|
+ >
|
|
|
+ <span class="optional-desktop-only-text">
|
|
|
+ Pause Station
|
|
|
+ </span>
|
|
|
+ </button>
|
|
|
+
|
|
|
+ <!-- (Admin) Skip Button -->
|
|
|
+ <button
|
|
|
+ class="button is-danger"
|
|
|
+ @click="skipStation()"
|
|
|
>
|
|
|
- <span class="optional-desktop-only-text">
|
|
|
- Force Skip
|
|
|
- </span>
|
|
|
- </button>
|
|
|
-
|
|
|
- <!-- (Admin) Station Settings Button -->
|
|
|
- <button
|
|
|
- class="button is-primary"
|
|
|
- @click="openSettings()"
|
|
|
- >
|
|
|
- <i class="material-icons icon-with-button"
|
|
|
- >settings</i
|
|
|
+ <i class="material-icons icon-with-button"
|
|
|
+ >skip_next</i
|
|
|
+ >
|
|
|
+ <span class="optional-desktop-only-text">
|
|
|
+ Force Skip
|
|
|
+ </span>
|
|
|
+ </button>
|
|
|
+
|
|
|
+ <!-- (Admin) Station Settings Button -->
|
|
|
+ <button
|
|
|
+ class="button is-primary"
|
|
|
+ @click="openSettings()"
|
|
|
>
|
|
|
- <span class="optional-desktop-only-text">
|
|
|
- Station settings
|
|
|
- </span>
|
|
|
- </button>
|
|
|
+ <i class="material-icons icon-with-button"
|
|
|
+ >settings</i
|
|
|
+ >
|
|
|
+ <span class="optional-desktop-only-text">
|
|
|
+ Station settings
|
|
|
+ </span>
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div id="sidebar-container" class="quadrant">
|
|
|
+ <station-sidebar />
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div id="sidebar-container" class="quadrant">
|
|
|
- <station-sidebar />
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <song-queue v-if="modals.addSongToQueue" />
|
|
|
+ <edit-playlist v-if="modals.editPlaylist" />
|
|
|
+ <create-playlist v-if="modals.createPlaylist" />
|
|
|
+ <edit-station
|
|
|
+ v-if="modals.editStation"
|
|
|
+ :station-id="station._id"
|
|
|
+ sector="station"
|
|
|
+ />
|
|
|
+ <report v-if="modals.report" />
|
|
|
</div>
|
|
|
|
|
|
- <song-queue v-if="modals.addSongToQueue" />
|
|
|
- <edit-playlist v-if="modals.editPlaylist" />
|
|
|
- <create-playlist v-if="modals.createPlaylist" />
|
|
|
- <edit-station
|
|
|
- v-if="modals.editStation"
|
|
|
- :station-id="station._id"
|
|
|
- sector="station"
|
|
|
- />
|
|
|
- <report v-if="modals.report" />
|
|
|
+ <main-footer v-if="exists" />
|
|
|
</div>
|
|
|
|
|
|
- <main-footer v-if="exists" />
|
|
|
-
|
|
|
<edit-song
|
|
|
v-if="modals.editSong"
|
|
|
:song-id="editingSongId"
|
|
@@ -359,6 +407,7 @@
|
|
|
<script>
|
|
|
import { mapState, mapActions } from "vuex";
|
|
|
import Toast from "toasters";
|
|
|
+import { ContentLoader } from "vue-content-loader";
|
|
|
|
|
|
import MainHeader from "../../components/layout/MainHeader.vue";
|
|
|
import MainFooter from "../../components/layout/MainFooter.vue";
|
|
@@ -377,6 +426,7 @@ import StationSidebar from "./components/Sidebar/index.vue";
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
|
+ ContentLoader,
|
|
|
MainHeader,
|
|
|
MainFooter,
|
|
|
SongQueue: () => import("./AddSongToQueue.vue"),
|
|
@@ -1517,6 +1567,7 @@ export default {
|
|
|
position: absolute;
|
|
|
top: 50%;
|
|
|
left: 50%;
|
|
|
+ display: none;
|
|
|
}
|
|
|
|
|
|
@keyframes rotate {
|
|
@@ -1585,7 +1636,7 @@ export default {
|
|
|
#station-inner-container {
|
|
|
height: 100%;
|
|
|
width: 100%;
|
|
|
- min-height: calc(100vh - 64px - 190px);
|
|
|
+ min-height: calc(100vh - 428px);
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
flex-wrap: wrap;
|
|
@@ -1933,19 +1984,27 @@ export default {
|
|
|
}
|
|
|
|
|
|
@media (max-width: 950px) {
|
|
|
+ #mobile-progress-animation {
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+
|
|
|
+ #content-loader-container {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+
|
|
|
#station-outer-container {
|
|
|
padding: 10px;
|
|
|
height: unset;
|
|
|
max-width: 700px;
|
|
|
+
|
|
|
#station-inner-container {
|
|
|
flex-direction: column;
|
|
|
+
|
|
|
#station-left-column {
|
|
|
#current-next-row {
|
|
|
flex-direction: column;
|
|
|
}
|
|
|
- #video-container {
|
|
|
- min-height: 200px;
|
|
|
- }
|
|
|
+
|
|
|
#control-bar-container {
|
|
|
#duration,
|
|
|
#volume-control,
|
|
@@ -1954,31 +2013,39 @@ export default {
|
|
|
margin-bottom: 5px;
|
|
|
justify-content: center;
|
|
|
}
|
|
|
+
|
|
|
#duration {
|
|
|
order: 1;
|
|
|
}
|
|
|
+
|
|
|
#volume-control {
|
|
|
order: 2;
|
|
|
max-width: 400px;
|
|
|
}
|
|
|
+
|
|
|
#right-buttons {
|
|
|
order: 3;
|
|
|
flex-wrap: wrap;
|
|
|
+
|
|
|
#ratings {
|
|
|
flex-wrap: wrap;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
#left-buttons {
|
|
|
order: 4;
|
|
|
flex-wrap: wrap;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
#station-right-column {
|
|
|
max-width: unset;
|
|
|
+
|
|
|
#about-station-container #admin-buttons {
|
|
|
flex-wrap: wrap;
|
|
|
}
|
|
|
+
|
|
|
#sidebar-container {
|
|
|
min-height: 350px;
|
|
|
}
|