btrtracks/public/index.html

169 lines
6.4 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="index.css">
<title>Music Server</title>
</head>
<body>
<div class="container">
<div class="inline-flex">
<div class="dropdown" id="playlist-select">
<div class="dropdown-button" data-value="all">All Tracks</div>
<div class="dropdown-content">
<div data-value="all">All Tracks</div>
<div data-value="queue">Queue</div>
<div data-value="options">Options</div>
</div>
</div>
<input type="text" id="search" placeholder="Search" class="flex-row">
<span class="btn-clear" id="search-clear"></span>
</div>
<div class="table-container flex-row">
<table width="100%">
<tbody id="ttable">
<tr>
<th class="small">#</th>
<th>Track</th>
<th>Artist</th>
<th>Album</th>
<th class="small">Year</th>
<th class="small">Duration</th>
</tr>
</tbody>
</table>
</div>
<div class="pages flex-row">
<div class="paging btn" id="jump-first"><<</div>
<div class="paging btn inner" id="jump-prev"><</div>
<div class="paging bg" id="pagenum">0 / 0</div>
<div class="paging btn inner" id="jump-next">></div>
<div class="paging btn" id="jump-last">>></div>
</div>
<div class="player flex-row">
<div class="inline-flex">
<div id="queue" class="queue-tag" style="display: none;">Queue</div>
<div class="playing-bar">
<span id="playing">Nothing playing</span>
<canvas id="visualizer" height="40"></canvas>
</div>
</div>
<audio id="player"></audio>
<div class="player-controls">
<span class="prev-btn flex-col icon" id="player-prev"></span>
<span class="play-btn flex-col icon" id="player-play"></span>
<span class="next-btn flex-col icon" id="player-next"></span>
<span class="timestamp flex-col" id="player-ts">0:00 / 0:00</span>
<div class="seek-bar seek-container flex-col grow" id="player-seekbar">
<div class="seek-inner"></div>
</div>
<div class="volume flex-col">
<span class="mute-btn flex-col icon" id="player-mute"></span>
<div class="volume-bar seek-container flex-col" id="player-volbar">
<div class="seek-inner"></div>
</div>
</div>
</div>
</div>
</div>
<div class="ctx-menu" id="menu" style="display: none;">
<ul>
<li><a class="ctx-item" data-action="play">Play Track</a></li>
<li><a class="ctx-item" data-action="queue">Queue Track</a></li>
<li><a class="ctx-item" data-action="edit">Edit Metadata</a></li>
<li><a class="ctx-item" data-action="download">Download</a></li>
<li><a class="ctx-item" data-action="lastfm">View on Last.fm</a></li>
<li class="ctx-multi"><a class="ctx-item playlist-add" style="display: none;">Add to Playlist</a>
<ul class="ctx-sub-items playlist-list" id="ctx-playlists"></ul>
</li>
<li><a class="ctx-item" data-action="playlist-remove" style="display: none;">Remove from Playlist</a></li>
</ul>
</div>
<div class="sidebar background" id="options-drop">
<div class="sidebar drop sb-abs"></div>
<div class="sidebar bar sb-abs">
<h2>Options</h2>
<div class="sidebar content" id="options">
<div class="separator">Playback</div>
<div class="option checkbox">
<label for="st-autoplay">Automatically play next track</label>
<input type="checkbox" id="st-autoplay" name="autoplay">
</div>
<div class="separator">Search</div>
<div class="option checkbox">
<label for="st-streamable">Include streamable tracks in searches</label>
<input type="checkbox" id="st-streamable" name="streamable">
</div>
<div class="separator">Last.fm</div>
<div class="option url" id="lfm-connect">
<a href="/api/lastfm/connect">Connect your Last.fm account</a>
</div>
<div class="option url" id="lfm-disconnect">
<label id="lfm-connected"></label>
<a href="/api/lastfm/disconnect">Disconnect</a>
</div>
<div class="option checkbox" id="lfm-scrobble">
<label for="st-scrobble">Scrobble tracks</label>
<input type="checkbox" id="st-scrobble" name="scrobble">
</div>
<div class="separator">Sorting</div>
<div class="option checkbox">
<label for="st-trackids" title="Shows track number in album instead when unchecked">Show track IDs</label>
<input type="checkbox" id="st-trackids" name="trackids">
</div>
<div class="option">
<label for="st-sortby">Sort tracks by</label>
<select id="st-sortby" name="sortby">
<option value="id">Track ID</option>
<option value="title">Title</option>
<option value="artist">Artist</option>
<option value="album">Album</option>
<option value="year">Year</option>
<option value="file">File name</option>
</select>
</div>
<div class="option">
<label for="st-sortdir">Sort direction</label>
<select id="st-sortdir" name="sortdir">
<option value="asc">Ascending order</option>
<option value="desc">Descending order</option>
</select>
</div>
<div class="separator">User</div>
<div class="option">
<label id="logged-in"></label>
<a href="user/logout">Log out</a>
</div>
</div>
</div>
</div>
<div class="modal" id="track-edit-modal" style="display: none;">
<div class="modal-box">
<div class="modal-header">Edit Track</div>
<div class="modal-content">
<form id="track-set">
<label for="ts-title">Title</label>
<input type="text" name="ts-title" id="ts-title">
<label for="ts-artist">Artist</label>
<input type="text" name="ts-artist" id="ts-artist">
<label for="ts-album">Album</label>
<input type="text" name="ts-album" id="ts-album">
<label for="ts-genre">Genre</label>
<input type="text" name="ts-genre" id="ts-genre">
<label for="ts-year">Year</label>
<input type="text" name="ts-year" id="ts-year">
<label for="ts-track">Track nr</label>
<input type="text" name="ts-track" id="ts-track">
<input type="submit" value="Edit">
</form>
<button id="track-edit-close">Close</button>
</div>
</div>
</div>
<script type="text/javascript" src="index.js"></script>
<script type="text/javascript" src="player.js"></script>
<script type="text/javascript" src="visuals.js"></script>
</body>
</html>