app/views/playlists/_form.html.erb
<div class="page_container edit_playlist_info_container">
<% if @playlist.persisted? %>
<%= render partial: 'back_to_playlist' %>
<% else %>
<%= render partial: 'shared/back_to_artist' %>
<% end %>
<div id="edit_playlist_info" data-controller="playlist-form" class="box">
<% if @playlist.persisted? %>
<h2>Editing "<%= @playlist.title %>"</h2>
<% else %>
<h2>Create New Playlist</h2>
<% end %>
<%= render partial: 'shared/errors', locals: { errors: @playlist.errors } %>
<%= form_with model: [@user, @playlist],
data: { turbo: false },
html: { id: 'edit_playlist', autocomplete: 'off' } do |f| %>
<div class="edit_playlist_info_columns">
<div class="edit_playlist_info_left_column" data-controller="image-upload">
<label>Album Artwork</label>
<div class="cover" data-image-upload-target='image' data-action='click->image-upload#openFile' title="<%= @playlist.title %>">
<%= playlist_cover(@playlist, variant: :playlist_card) %>
</div>
<%= f.file_field :cover_image, data: { 'image-upload-target': 'fileField', action: 'change->image-upload#fileChanged' }, style: 'display:none' %>
<%= f.label :cover_image, 'Choose New Artwork...', class:"upload_artwork", data: { 'image-upload-target': 'fileLabel' } %>
<p class="upload_instructions">
Upload a square photo,<br> 2000px by 2000px for<br> best results.
</p>
<%# link_to 'Remove Artwork', '', class:"remove_artwork", data: { action: 'image-upload#removePic' } %>
</div>
<div class="edit_playlist_info_right_column">
<div class="edit_playlist_info_right_column_title_and_year">
<div>
<label for="playlist_title">Title</label>
<%= f.text_field :title %>
</div>
<div>
<label for="playlist_year">Year</label>
<%= f.text_field :year, input_html: {maxlength: 4, size: 4} %>
</div>
</div>
<div class="edit_playlist_info_right_column_links">
<div>
<label for="playlist_link1">Link 1</label>
<%= f.text_field :link1, placeholder: 'link to spotify, itunes, google play, etc' %>
</div>
<div>
<label for="playlist_link2">Link 2</label>
<%= f.text_field :link2, placeholder: 'another link' %>
</div>
</div>
<div class="edit_playlist_info_right_column_credits">
<div class="input">
<label for="playlist_credits">Credits</label>
<%= f.text_area :credits %>
</div>
</div>
<% if @playlist.persisted? %>
<div class="edit_playlist_info_right_column_private_and_hidden" data-playlist-form-target="checkbox" style="display:none">
<div class="input">
<%= f.check_box :is_private?, { data: { 'playlist-form-target': 'actualCheckbox' }, id: 'playlist_private'} %>
<label for="playlist_is_private" data-playlist-form-target="markAsPrivate" data-action='click->playlist-form#togglePrivate'><span>Private</span></label>
</div>
</div>
<% end %>
</div>
</div>
<div class="edit_playlist_info_bottom">
<div class="private_warning" data-playlist-form-target="privateBanner" style="display:none">
This playlist is private, visible only to <span class="only_user_name"><%= @user.display_name %></span> and <span class="only_alonetone_mods">alonetone mods</span>
</div>
<div class="private_warning" data-playlist-form-target="needsTracksBanner" style="display:none">
This playlist will be hidden until it has <span class="only_user_name">at least 2 tracks</span>
</div>
<%= link_to 'Delete', user_playlist_path(@user, @playlist.permalink), :class => "delete_playlist", data: { turbo: 'true', turbo_method: 'delete', turbo_confirm: 'Are you sure, it will be gone forrrrreevrrrrrrr? Note: the actual tracks will remain, just the playlist will be deleted.' } if @playlist.persisted? %>
<% if @playlist.persisted? %>
<%= submit_tag "Save playlist" %>
<% else %>
<%= submit_tag "Create playlist" %>
<% end %>
</div>
<% end %>
</div>
</div>