file = request.files["song"]
title = request.form["title"]
description = request.form["description"]
- tags = [t.strip() for t in request.form["tags"].split(",")]
+ tags = [t.strip().lower() for t in request.form["tags"].split(",")]
collaborators = [c.strip() for c in request.form["collabs"].split(",")]
# Make sure song exists and the logged-in user owns it
<html>
<head>
<title>{% block title %} Base {% endblock %}</title>
+ <link rel="stylesheet" href="/static/styles.css">
+ <script src="/static/player.js"></script>
</head>
<body>
+ <!-- Navbar -->
<div class="navbar">
{% if "username" in session %}
<p>Signed in as {{ session["username"] }}</p>
<a href="/">Home</a>
</div>
+ <!-- Stite Status Messages -->
{% with messages = get_flashed_messages(with_categories=True) %}
{% if messages %}
<ul class="flashes">
{% endif %}
{% endwith %}
+ <!-- Page-Specific Content -->
{% block body %}
{% endblock %}
+
+ <!-- Song Player -->
+ <div class="player">
+ <a href="javascript:songPrevious()" class="player-button"><<</a>
+ <a href="javascript:songPlayPause()" class="player-button">></a>
+ <a href="javascript:songNext()" class="player-button">>></a>
+ <div class="player-position">
+ <span id="player-position-bar"></span>
+ <span id="player-position-dot"></span>
+ </div>
+ <span class="player-time" id="player-current-time">0:00</span>
+ <span class="player-time-sep">/</span>
+ <span class="player-time" id="player-total-time">0:00</span>
+ <audio id="player-audio"></audio>
+ <!-- TODO: Show song title, artist -->
+ <!-- TODO: Volume control -->
+ </div>
</body>
</html>
{% for song in songs %}
<div class="song">
<!-- Song Title -->
- <div class="song-title"><h3>{{ song.title }}</h3></div>
+ <div class="song-title">{{ song.title }}</div>
<!-- Owner-Specific Buttons (Edit/Delete) -->
{% if session["userid"] == song.userid %}
{% endif %}
<!-- Play Button -->
- <audio src="/song/{{ song.userid }}/{{ song.songid }}" controls></audio>
+ <!-- <audio src="/song/{{ song.userid }}/{{ song.songid }}" controls></audio> -->
+ <div class="song-play-button">
+ <a href="javascript:play({{ song.userid }}, {{ song.songid }})">Play</a>
+ </div>
<!-- Song Description -->
<div class="song-description">{{ song.description }}</div>
-- delete user account
-- sort songs by upload timestamp
-
- automated tests
-- javascript song player
+- javascript song player:
+ - scrubbing
+ - song queue
+- song search
- admin account(s)
- logging