sudara/alonetone

View on GitHub
app/views/playlists/_form.html.erb

Summary

Maintainability
Test Coverage
<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>