app/views/playlists/_playlist.html.erb
<%= link_to playlist_cover(@playlist, variant: :playlist_card),
user_playlist_path(@playlist.user, @playlist), class: 'small_cover', data: { "playlist-target": "smallCover", "turbo-frame": "playlist-track" }, style: ('display:none;' unless @asset) %>
<h1 class="<%= 'cover' unless @asset %>">
<%= @playlist.title %>
</h1>
<h2>
<span class="by">by</span> <%= link_to @user.name, user_home_path(@user) %> <% if authorized? %>
<span class="parentheses">(</span> <%= link_to edit_user_playlist_path(@playlist.user, @playlist),
class: 'edit_playlist', :title => 'edit this playlist' do %>
edit
<% end %> <span class="parentheses">)</span>
<% end %>
</h2>
<ul class="tracklist">
<% @playlist.tracks.each do |track| %>
<li data-controller="playlist-track-playback"
data-action="popstate@window->playlist-track-playback#popTrack
big-play:connected@window->playlist-track-playback#connectBigPlay
big-play:togglePlay@window->playlist-track-playback#togglePlay
big-play:seek@window->playlist-track-playback#seek
track:play->playlist-track-playback#play
track:whilePlaying->playlist-track-playback#whilePlaying
track:pause->playlist-track-playback#pause
track:ended->playlist-track-playback#stop
track:registerListen->playlist-track-playback#registerListen"
data-stitches-track-id="<%= track.id %>"
data-playlist-track-playback-track-id-value="<%= track.id %>"
class="stitches_track <%= ' active' if first_active_track?(track, @asset) %>">
<!-- Play button automagically plays AND changes to relevant track details -->
<%= link_to user_show_track_in_playlist_path(@user, @playlist, track.asset, format: :mp3),
class: 'play_button stitches_play', data: { "playlist-track-playback-target": "play", "action": "playlist-track-playback#selectTrack", "turbo-frame": "playlist-track", "turbo-action": "advance" } do %>
<i class="icon_play"></i>
<% end %>
<!-- Track title just switches track details-->
<%= link_to user_show_track_in_playlist_path(@user, @playlist, track.asset),
class: 'position_name_time', data: { 'playlist-track-playback-target': "loadTrack", "action": "playlist-track-playback#selectTrack", "turbo-frame": "playlist-track", "turbo-action": "advance" } do %>
<span class="track_position">
<%= "%02d" % track.position %>.
</span>
<span class="track_name">
<%= track.name %>
</span>
<span class='time_text'><%= track.asset.length %></span>
<% end %>
</li>
<% end %>
</ul>
<div class="sidebar_downloads"
data-playlist-target="sidebarDownloads"
style="<%= 'display:none' unless @asset %>">
<ul class="downloads_links">
</ul>
<ul class="external_links">
<% [:link1, :link2, :link3].collect do |link| %>
<% if valid_link = @playlist.send(link) %>
<% if external_link_for(valid_link) %>
<li>
<%= external_link_for(valid_link) %>
</li>
<% end %>
<% end %>
<% end %>
</ul>
</div>