From 2c195038bd5ad1f462c835f3cd9c8db51ede3ff2 Mon Sep 17 00:00:00 2001 From: Miguel Michelson Date: Fri, 30 Aug 2024 01:12:31 -0400 Subject: [PATCH] fix track bulk upload --- app/controllers/tracks_controller.rb | 9 ++- app/models/track_bulk_creator.rb | 8 +- app/views/playlists/_playlist_item.html.erb | 30 +------- app/views/playlists/show.html.erb | 83 +++++++++++---------- app/views/shared/_music_purchase.html.erb | 26 +++++-- app/views/sharer/new.erb | 4 +- app/views/tracks/create.turbo_stream.erb | 4 +- 7 files changed, 84 insertions(+), 80 deletions(-) diff --git a/app/controllers/tracks_controller.rb b/app/controllers/tracks_controller.rb index c95aff2..00dbe58 100644 --- a/app/controllers/tracks_controller.rb +++ b/app/controllers/tracks_controller.rb @@ -24,7 +24,11 @@ def create # @track = current_user.tracks.new(track_params) @track_form.user = current_user @track_form.private = track_bulk_params[:private] - @track_form.tracks_attributes = audios.map { |o| {audio: o} } + @track_form.tracks_attributes = audios.map { |o| + { + audio: o + } + } @track_form.step = "info" else @track_form.tracks_attributes_objects = track_bulk_params[:tracks_attributes] @@ -135,7 +139,8 @@ def track_bulk_params :private, :enable_label, :step, - audio: [], tracks_attributes: [ + audio: [], + tracks_attributes: [ :audio, :cover, :title, :description, :private, tags: [] ] ) diff --git a/app/models/track_bulk_creator.rb b/app/models/track_bulk_creator.rb index 2087f1f..615115c 100644 --- a/app/models/track_bulk_creator.rb +++ b/app/models/track_bulk_creator.rb @@ -4,7 +4,11 @@ class TrackBulkCreator include ActiveModel::Model - attr_accessor :tracks_attributes, :step, :user, :make_playlist, :private + attr_accessor :tracks_attributes, + :step, + :user, + :make_playlist, + :private validate :validate_tracks @@ -36,7 +40,7 @@ def tracks @tracks ||= tracks_attributes.map do |attributes| blob = ActiveStorage::Blob.find_signed(attributes[:audio]) t = Track.new(attributes) - t.title = File.basename(blob.filename.to_s, File.extname(blob.filename.to_s)) + t.title = File.basename(blob.filename.to_s, File.extname(blob.filename.to_s)) unless t.title.present? t.user = user t.private = private t diff --git a/app/views/playlists/_playlist_item.html.erb b/app/views/playlists/_playlist_item.html.erb index 4059880..056e9a2 100644 --- a/app/views/playlists/_playlist_item.html.erb +++ b/app/views/playlists/_playlist_item.html.erb @@ -149,33 +149,9 @@ <% if playlist.price %> - - - - - - <%= number_to_currency(playlist.price, precision: 2) %> - - - USD - - - - <% if playlist.name_your_price %> - - <%= gettext("or more") %> - - <% end %> - + <%= render "shared/music_purchase", + resource: playlist, + variant: :mini %> <% end %> diff --git a/app/views/playlists/show.html.erb b/app/views/playlists/show.html.erb index 6b282db..4cfd6a0 100644 --- a/app/views/playlists/show.html.erb +++ b/app/views/playlists/show.html.erb @@ -29,6 +29,7 @@
+ + +
+
+
+
+
+
+ +
+
+
+
+
+
@@ -200,45 +242,6 @@ -
-
-
-
-
-
- -
-
-
-
-
-
diff --git a/app/views/shared/_music_purchase.html.erb b/app/views/shared/_music_purchase.html.erb index 5130192..7316585 100644 --- a/app/views/shared/_music_purchase.html.erb +++ b/app/views/shared/_music_purchase.html.erb @@ -1,16 +1,32 @@ -
-
+<% + classes = local_assigns[:variant] == :mini ? + { + border: "border", + text: "text-sm", + pad: "px-2 py-2", + m: "my-4" + } + : + { + border: "border-4", + text: "text-xl", + pad: "px-3 py-3" + } +%> + +
+
<% if resource.is_a?(Track) %> <%= link_to new_track_track_purchase_path(resource), "data-turbo-frame": "modal", - class: "underline dark:border-white hover:bg-white hover:text-black border-black rounded-sm border-4 px-3 py-3" do %> + class: "#{classes[:pad]} underline dark:border-white hover:bg-white hover:text-black border-black rounded-sm border-4" do %> <%= t("tracks.buy_digital_music")%> <% end %> <% end %> <% if resource.is_a?(Playlist) %> <%= link_to new_playlist_playlist_purchase_path(resource), "data-turbo-frame": "modal", - class: "underline dark:border-white hover:bg-white hover:text-black border-black rounded-sm border-4 px-3 py-3" do %> + class: "#{classes[:pad]} #{classes[:border]} underline dark:border-white hover:bg-white hover:text-black border-black rounded-sm" do %> <%= t("tracks.buy_digital_music")%> <%= number_to_currency(resource.price) %> USD <% end %> @@ -23,7 +39,7 @@
-<% if @supporters.any? %> +<% if @supporters && @supporters.any? %>

<%= t("tracks.supporters") %>

diff --git a/app/views/sharer/new.erb b/app/views/sharer/new.erb index 5bb6734..d7e074d 100644 --- a/app/views/sharer/new.erb +++ b/app/views/sharer/new.erb @@ -71,7 +71,7 @@ -
+ diff --git a/app/views/tracks/create.turbo_stream.erb b/app/views/tracks/create.turbo_stream.erb index 81d453d..075dd1e 100644 --- a/app/views/tracks/create.turbo_stream.erb +++ b/app/views/tracks/create.turbo_stream.erb @@ -11,8 +11,8 @@ <%= render "basic_info_fields", form: ff %>
<% end %> -
- <%= form.submit %> +
+ <%= form.submit("Save") %>
<% end %>