module Project
  class PhysicalProductTrackPage < BasePage
    include ProductProgressBar

    page_url "/project/<%=params[:project_id]%>/product/<%=params[:product_id]%>/tracklist"

    button(:add_track, class: "AddTrackButton")
    h2(:track_list_header, class: "TrackList-header")
    paragraph(:success, class: ["alert", "alert-success"])
    button(:save_and_continue, text: "SAVE AND CONTINUE")
    button(:yes_delete, class: "RemoveTrackConfirmationModal-button-delete", text: "DELETE")

    indexed_property(
      :track,
      [
        [:text_field, :track_number, { id: /track-number/, index: "%s" }],
        [:text_field, :track_name, { id: /track-name/, index: "%s" }],
        [:text_field, :track_artist, { id: /performer/, index: "%s" }],
        [:text_field, :track_songwriters, { class: "TagsInput-input", index: "%s" }],
        [:text_field, :track_length, { id: /length/, index: "%s" }],
        [:text_field, :track_side, { id: /side/, index: "%s" }],
        [:text_field, :track_disc, { id: /disc/, index: "%s" }],
        [:text_field, :track_isrc, { id: /isrc/, index: "%s" }],
        [:button, :remove, { class: "RemoveTrackButton", index: "%s" }]
      ]
    )

    def populate_required_track_fields(index, data)
      current_track = track[index]
      current_track.track_number = data[:track_number]
      current_track.track_name = data[:track_name]
      current_track.track_artist = data[:track_artist]
      current_track.track_songwriters = data[:track_artist]
      current_track.track_length = data[:track_length]
      current_track.track_side = data[:track_side]
      current_track.track_disc = data[:track_disc]
      current_track.track_isrc = data[:track_isrc]
    end
  end
end
