voluntary_music_metadata_enrichment 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/groups/show.js.coffee +2 -1
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/index.js.coffee +3 -2
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/year_in_review_releases/index_view.js.coffee +94 -15
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/year_in_review_releases/new_view.js.coffee +37 -2
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/year_in_review_tracks/index_view.js.coffee +94 -15
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/year_in_review_tracks/new_view.js.coffee +37 -2
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/years_in_review/index_view.js.coffee +6 -0
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/videos/show.js.coffee +2 -0
- data/app/controllers/concerns/music_metadata_enrichment/artist_confirmation.rb +98 -132
- data/app/controllers/concerns/music_metadata_enrichment/track_confirmation.rb +45 -24
- data/app/controllers/library/music/year_in_review_release_flops_controller.rb +31 -0
- data/app/controllers/library/music/year_in_review_releases_controller.rb +24 -4
- data/app/controllers/library/music/year_in_review_track_flops_controller.rb +31 -0
- data/app/controllers/library/music/year_in_review_tracks_controller.rb +55 -24
- data/app/controllers/library/music/years_in_review_controller.rb +25 -3
- data/app/controllers/music_metadata_enrichment/application_controller.rb +4 -0
- data/app/controllers/music_metadata_enrichment/artists_controller.rb +14 -12
- data/app/controllers/music_metadata_enrichment/group_memberships_controller.rb +20 -0
- data/app/controllers/music_metadata_enrichment/group_year_in_review_releases_controller.rb +29 -0
- data/app/controllers/music_metadata_enrichment/group_year_in_review_tracks_controller.rb +27 -0
- data/app/controllers/music_metadata_enrichment/group_year_in_reviews_controller.rb +18 -0
- data/app/controllers/music_metadata_enrichment/groups_controller.rb +2 -0
- data/app/controllers/music_metadata_enrichment/releases_controller.rb +59 -57
- data/app/controllers/music_metadata_enrichment/tracks_controller.rb +37 -7
- data/app/controllers/music_metadata_enrichment/videos_controller.rb +4 -4
- data/app/controllers/voluntary/api/v1/music/releases_controller.rb +17 -0
- data/app/controllers/voluntary/api/v1/music/tracks_controller.rb +17 -0
- data/app/controllers/voluntary/api/v1/music/videos_controller.rb +31 -0
- data/app/controllers/voluntary/api/v1/music/year_in_reviews_controller.rb +94 -0
- data/app/helpers/library/music/year_in_review_releases_helper.rb +14 -0
- data/app/helpers/library/music/year_in_review_tracks_helper.rb +13 -0
- data/app/helpers/library/music/year_in_reviews_helper.rb +22 -0
- data/app/helpers/music_metadata_enrichment/lastfm_helper.rb +19 -0
- data/app/models/concerns/lastfm_request.rb +54 -0
- data/app/models/concerns/music_metadata_enrichment/group_year_in_review_music_entry.rb +14 -0
- data/app/models/concerns/year_in_review_music_entry.rb +3 -1
- data/app/models/concerns/year_in_review_music_release_base.rb +35 -0
- data/app/models/concerns/year_in_review_music_track_base.rb +37 -0
- data/app/models/music_artist.rb +106 -27
- data/app/models/music_metadata_enrichment/group.rb +14 -13
- data/app/models/music_metadata_enrichment/group_membership.rb +13 -0
- data/app/models/music_metadata_enrichment/group_year_in_review.rb +72 -0
- data/app/models/music_metadata_enrichment/group_year_in_review_release.rb +8 -0
- data/app/models/music_metadata_enrichment/group_year_in_review_track.rb +8 -0
- data/app/models/music_release.rb +224 -35
- data/app/models/music_track.rb +140 -28
- data/app/models/year_in_review_music.rb +193 -101
- data/app/models/year_in_review_music_release.rb +2 -20
- data/app/models/year_in_review_music_release_flop.rb +4 -0
- data/app/models/year_in_review_music_track.rb +2 -24
- data/app/models/year_in_review_music_track_flop.rb +4 -0
- data/app/views/library/music/index.html.erb +2 -2
- data/app/views/library/music/year_in_review_release_flops/create.js.erb +5 -0
- data/app/views/library/music/year_in_review_releases/_collection.html.erb +55 -41
- data/app/views/library/music/year_in_review_releases/_form.html.erb +2 -1
- data/app/views/library/music/year_in_review_releases/_multiple_form.html.erb +20 -6
- data/app/views/library/music/year_in_review_releases/_year_in_review_release.html.erb +35 -0
- data/app/views/library/music/year_in_review_releases/create.js.erb +9 -4
- data/app/views/library/music/year_in_review_releases/destroy.js.erb +2 -2
- data/app/views/library/music/year_in_review_releases/export.html.erb +2 -1
- data/app/views/library/music/year_in_review_releases/index.html.erb +4 -4
- data/app/views/library/music/year_in_review_track_flops/create.js.erb +5 -0
- data/app/views/library/music/year_in_review_tracks/_collection.html.erb +49 -38
- data/app/views/library/music/year_in_review_tracks/_form.html.erb +2 -1
- data/app/views/library/music/year_in_review_tracks/_multiple_form.html.erb +69 -42
- data/app/views/library/music/year_in_review_tracks/_year_in_review_track.html.erb +29 -0
- data/app/views/library/music/year_in_review_tracks/create.js.erb +9 -4
- data/app/views/library/music/year_in_review_tracks/destroy.js.erb +2 -2
- data/app/views/library/music/year_in_review_tracks/export.html.erb +1 -1
- data/app/views/library/music/year_in_review_tracks/index.html.erb +3 -3
- data/app/views/library/music/year_in_review_tracks/multiple_new.js.erb +5 -2
- data/app/views/library/music/years_in_review/_collection.html.erb +23 -6
- data/app/views/library/music/years_in_review/destroy.js.erb +1 -0
- data/app/views/library/music/years_in_review/index.html.erb +2 -2
- data/app/views/library/music/years_in_review/publish.js.erb +1 -0
- data/app/views/library/music/years_in_review/show.html.erb +3 -3
- data/app/views/music_metadata_enrichment/artists/_collection.html.erb +3 -3
- data/app/views/music_metadata_enrichment/group_artist_connections/import.html.erb +1 -1
- data/app/views/music_metadata_enrichment/group_memberships/_create_or_destroy.html.erb +9 -0
- data/app/views/music_metadata_enrichment/group_memberships/create.js.erb +5 -0
- data/app/views/music_metadata_enrichment/group_memberships/destroy.js.erb +5 -0
- data/app/views/music_metadata_enrichment/group_year_in_review_releases/index.html.erb +16 -0
- data/app/views/music_metadata_enrichment/group_year_in_review_tracks/index.html.erb +16 -0
- data/app/views/music_metadata_enrichment/group_year_in_reviews/index.html.erb +18 -0
- data/app/views/music_metadata_enrichment/group_year_in_reviews/show.html.erb +20 -0
- data/app/views/music_metadata_enrichment/groups/show.html.erb +7 -1
- data/app/views/music_metadata_enrichment/releases/_spotify_album_player.html.erb +3 -0
- data/app/views/music_metadata_enrichment/releases/announce.html.erb +3 -1
- data/app/views/music_metadata_enrichment/releases/by_name.html.erb +1 -1
- data/app/views/music_metadata_enrichment/releases/name.html.erb +2 -1
- data/app/views/music_metadata_enrichment/releases/name_confirmation.html.erb +2 -1
- data/app/views/music_metadata_enrichment/releases/show.html.erb +24 -0
- data/app/views/music_metadata_enrichment/shared/_artist_confirmation_form.html.erb +2 -1
- data/app/views/music_metadata_enrichment/shared/_new_artist_form.html.erb +2 -1
- data/app/views/music_metadata_enrichment/shared/_new_track_form.html.erb +2 -1
- data/app/views/music_metadata_enrichment/shared/_track_confirmation_form.html.erb +3 -2
- data/app/views/music_metadata_enrichment/tracks/show.html.erb +20 -2
- data/app/views/music_metadata_enrichment/videos/artist_confirmation.html.erb +1 -1
- data/app/views/music_metadata_enrichment/videos/show.html.erb +7 -1
- data/config/locales/resources/music_metadata_enrichment_group_memberships/en.yml +7 -0
- data/config/locales/resources/music_releases/en.yml +4 -0
- data/config/locales/resources/music_tracks/en.yml +8 -3
- data/config/locales/resources/year_in_review_music_release_flops/en.yml +4 -0
- data/config/locales/resources/year_in_review_music_releases/en.yml +6 -1
- data/config/locales/resources/year_in_review_music_track_flops/en.yml +4 -0
- data/config/locales/resources/year_in_review_music_tracks/en.yml +4 -0
- data/config/locales/resources/years_in_review_music/en.yml +8 -3
- data/config/routes.rb +30 -2
- data/config/routes/api.rb +32 -0
- data/db/migrate/20150106183434_add_product_music_metadata_enrichment.rb +3 -1
- data/db/migrate/20150120091801_create_music_metadata_enrichment_groups.rb +2 -2
- data/db/migrate/20150208120722_add_is_lp_to_music_releases.rb +5 -0
- data/db/migrate/20150209091856_year_in_review_music_releases_and_tracks_flops.rb +34 -0
- data/db/migrate/20150209151056_add_is_ambiguous_to_music_artists.rb +5 -0
- data/db/migrate/20150213170604_create_group_memberships.rb +11 -0
- data/db/migrate/20150214083714_create_group_year_in_review_music_releases_and_tracks.rb +77 -0
- data/db/migrate/20150215120545_add_matches_to_year_in_reviews_music.rb +6 -0
- data/db/migrate/20150215135051_add_spotify_album_id_to_music_releases.rb +8 -0
- data/db/migrate/20150220084746_add_state_to_year_in_review_music_entries.rb +7 -0
- data/lib/voluntary_music_metadata_enrichment/ability.rb +12 -3
- data/lib/voluntary_music_metadata_enrichment/concerns/model/user/has_music_library.rb +69 -34
- data/lib/voluntary_music_metadata_enrichment/version.rb +1 -1
- metadata +63 -64
- data/MIT-LICENSE +0 -20
- data/README.rdoc +0 -3
@@ -1,4 +1,5 @@
|
|
1
1
|
<%= simple_form_for(@year_in_review_track, url: create_user_music_year_in_review_top_track_path(params[:user_id], params[:year]), method: :post, remote: true, html: {class: 'form-horizontal'}) do |f| %>
|
2
|
+
<%= hidden_field_tag :year_in_review_music_id, @year_in_review.id %>
|
2
3
|
<div class="modal-header">
|
3
4
|
<button type="button" id="close_bootstrap_modal_button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
4
5
|
<h3><%= t('year_in_review_music_tracks.index.add_single_long', year: params[:year])%></h3>
|
@@ -13,6 +14,6 @@
|
|
13
14
|
<div id="year_in_review_music_track_track_name_suggestions"/>
|
14
15
|
</div>
|
15
16
|
<div class="modal-footer">
|
16
|
-
<%=
|
17
|
+
<input type="button" id="add_track_button" value="<%= t('music_tracks.new.short_title')%>"/>
|
17
18
|
</div>
|
18
19
|
<% end %>
|
@@ -1,46 +1,73 @@
|
|
1
1
|
<%= form_tag multiple_new_user_music_year_in_review_top_tracks_path(params[:year]), method: :get, remote: true, class: 'form-horizontal' do %>
|
2
|
-
<% if @
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
<% if params[:only_tracks_of_top_releases].blank? || (params[:only_tracks_of_top_releases] == 'true' && @release_ids.none?) %>
|
3
|
+
<div class="modal-header">
|
4
|
+
<h3><%= t('year_in_review_music_tracks.index.add_multiple_from_year', year: params[:year])%></h3>
|
5
|
+
</div>
|
6
|
+
<div class="modal-body" style="overflow-y:none;">
|
7
|
+
<%= render partial: 'shared/layouts/twitter_bootstrap/control_group/boolean', locals: {
|
8
|
+
required: true, label: t('year_in_review_music_tracks.multiple_new.only_tracks_of_top_releases'), id: 'only_tracks_of_top_releases'
|
9
|
+
} %>
|
10
|
+
</div>
|
11
|
+
<div class="modal-footer">
|
12
|
+
<%= submit_tag t('general.close') %> <%= submit_tag t('general.submit') %>
|
13
|
+
</div>
|
12
14
|
<% else %>
|
13
|
-
|
14
|
-
<
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
<
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
<
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
15
|
+
<% if @tracks.none? %>
|
16
|
+
<div class="modal-header">
|
17
|
+
<h3><%= t('year_in_review_music_tracks.index.add_multiple_from_year', year: params[:year])%></h3>
|
18
|
+
</div>
|
19
|
+
<div class="modal-body" style="overflow-y:none;">
|
20
|
+
<%= t('music_tracks.index.empty_collection')%>
|
21
|
+
</div>
|
22
|
+
<div class="modal-footer">
|
23
|
+
<%= submit_tag t('general.close') %> <%= submit_tag t('year_in_review_music_tracks.multiple_new.submit') %>
|
24
|
+
</div>
|
25
|
+
<% else %>
|
26
|
+
<div class="modal-header">
|
27
|
+
<h3><%= t('year_in_review_music_tracks.multiple_new.title', year: params[:year])%> <%= t('year_in_review_music_tracks.multiple_new.tracks_left', count: @tracks_left) %></h3>
|
28
|
+
</div>
|
29
|
+
<div class="modal-body scrollable-modal-body" style="overflow-y:none;">
|
30
|
+
<%= hidden_field_tag :only_tracks_of_top_releases, params[:only_tracks_of_top_releases] %>
|
31
|
+
<%= hidden_field_tag :year, params[:year] %>
|
32
|
+
<%= hidden_field_tag :last_id, params[:last_id] %>
|
33
|
+
|
34
|
+
<table class="table" style="margin-bottom: 0px">
|
35
|
+
<thead>
|
36
|
+
<tr class="<%= cycle('odd', 'even') %>">
|
37
|
+
<th style="width:15px;"><input type="checkbox" id="toggle_checkboxes_checkbox"/></th>
|
38
|
+
<th style="width:75px;"><%= t("activerecord.attributes.music_release.released_at") %></th>
|
39
|
+
<th style="width:200px;"><%= t("music_artists.model.short_name") %></th>
|
40
|
+
<th style="width:200px;"><%= t("attributes.name") %></th>
|
41
|
+
<th style="width:300px;"></th>
|
42
|
+
<th></th>
|
43
|
+
</tr>
|
44
|
+
</thead>
|
45
|
+
<tbody>
|
46
|
+
<% @tracks.each do |track| %>
|
47
|
+
<tr id="track_<%= track.id %>">
|
48
|
+
<td><%= check_box_tag "year_in_review_music_tracks[#{track.id}]", 1, false, class: 'toggleable_checkbox' %></td>
|
49
|
+
<td><%= track.released_at.strftime('%d.%m.%Y') %></td>
|
50
|
+
<td><%= link_to track.artist_name, music_artist_path(track.artist_id) %></td>
|
51
|
+
<td><%= link_to track.name, music_track_path(track.id) %></td>
|
52
|
+
<td>
|
53
|
+
<% if track.spotify_track_id.present? %>
|
54
|
+
<i class="icon-play play_track_button" data-spotify-track-id="<%= track.spotify_track_id %>" data-target="#spotify_track_player_<%= track.id %>" style="cursor:pointer; cursor:hand;"></i>
|
55
|
+
<div id="spotify_track_player_<%= track.id %>">
|
56
|
+
</div>
|
57
|
+
<% end %>
|
58
|
+
</td>
|
59
|
+
<td>
|
60
|
+
<%= link_to create_user_music_year_in_review_flop_track_path(current_user.id, @year_in_review.year, year_in_review_music_track_flop: { track_id: track.id }), method: :post, remote: true, class: 'btn btn-danger create_music_year_in_review_flop_track_link' do %>
|
61
|
+
<%= t('years_in_review_music.general.do_not_show_here_anymore') %> <%= image_tag 'voluntary/spinner.gif', class: 'ajax_spinner hide' %>
|
62
|
+
<% end %>
|
63
|
+
</td>
|
64
|
+
<% end %>
|
65
|
+
</tbody>
|
66
|
+
</table>
|
67
|
+
</div>
|
68
|
+
<div class="modal-footer">
|
69
|
+
<%= submit_tag t('general.close') %> <%= submit_tag t('year_in_review_music_tracks.multiple_new.submit') %>
|
70
|
+
</div>
|
71
|
+
<% end %>
|
45
72
|
<% end %>
|
46
73
|
<% end %>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<li id="competitor_<%= year_in_review_track.id %>" data-id="<%= year_in_review_track.id %>" data-position="<%= year_in_review_track.position %>">
|
2
|
+
<table class="table" style="margin-bottom: 0px">
|
3
|
+
<tr class="<%= cycle('odd', 'even') %>">
|
4
|
+
<td class="list-element-striped" style="width:15px"><%= image_tag 'voluntary/spinner.gif', class: 'hide sorting_spinner' %></td>
|
5
|
+
<td class="list-element-striped competitor_position" style="width: 50px; text-align:right"><%= year_in_review_track.position %></td>
|
6
|
+
<td class="list-element-striped" style="width: 200px;"><%= link_to year_in_review_track.artist_name, music_artist_path(year_in_review_track.artist_id) %></td>
|
7
|
+
<td class="list-element-striped" style="width: 200px;">
|
8
|
+
<%= link_to year_in_review_track.track_name, music_track_path(year_in_review_track.track_id) %>
|
9
|
+
|
10
|
+
<span class="competitor_name hide"<% if year_in_review_track.spotify_track_id.present? %> data-proc-argument="<%= year_in_review_track.spotify_track_id %>;<%= year_in_review_track.id %>"<% end %>>
|
11
|
+
<%= link_to year_in_review_track.artist_name, music_artist_path(year_in_review_track.artist_id) %> - <%= link_to year_in_review_track.track_name, music_track_path(year_in_review_track.track_id) %>
|
12
|
+
</span>
|
13
|
+
</td>
|
14
|
+
<td class="list-element-striped" style="width: 50px; text-align:center;">
|
15
|
+
<% if year_in_review_track.spotify_track_id.present? %>
|
16
|
+
<i class="icon-play play_track_button" data-spotify-track-id="<%= year_in_review_track.spotify_track_id %>" style="cursor:pointer; cursor:hand;"></i>
|
17
|
+
<% end %>
|
18
|
+
</td>
|
19
|
+
<td class="list-element-striped" style="width: 75px;"><%= year_in_review_track.released_at.present? ? year_in_review_track.released_at.strftime('%d.%m.%Y') : '' %></td>
|
20
|
+
<td class="list-element-striped">
|
21
|
+
<% if @group.blank? && current_user.try(:id) == params[:user_id].to_i %>
|
22
|
+
<%= link_to destroy_music_year_in_review_top_track_path(year_in_review_track.id), method: :delete, remote: true, class: 'btn btn-danger destroy_music_year_in_review_top_track_link' do %>
|
23
|
+
<%= t('general.remove') %> <%= image_tag 'voluntary/spinner.gif', class: 'ajax_spinner hide' %>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
</td>
|
27
|
+
</tr>
|
28
|
+
</table>
|
29
|
+
</li>
|
@@ -1,11 +1,16 @@
|
|
1
|
+
if($('#competitor_<%= @year_in_review_track.id %>').length == 0) {
|
1
2
|
<% if @year_in_review_track.persisted? %>
|
2
|
-
$('#
|
3
|
-
|
3
|
+
if($('#no_tracks_message').length == 1) {
|
4
|
+
$('#no_tracks_message').remove();
|
5
|
+
}
|
6
|
+
|
7
|
+
$('#year_in_review_music_tracks').append('<%= escape_javascript render(partial: 'library/music/year_in_review_tracks/year_in_review_track', locals: { year_in_review_track: @year_in_review_track }) %>');
|
4
8
|
$('#bootstrap_modal').modal('hide')
|
5
9
|
<% else %>
|
6
10
|
$('#bootstrap_modal').html('<%= escape_javascript render(partial: 'library/music/year_in_review_tracks/form') %>');
|
7
11
|
<% end %>
|
8
12
|
|
9
13
|
<% if @notice.present? %>
|
10
|
-
alert('<%= @notice %>');
|
11
|
-
<% end %>
|
14
|
+
alert('<%= @notice %>');
|
15
|
+
<% end %>
|
16
|
+
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
$('#
|
2
|
-
window.VoluntaryMusicMetadataEnrichment.Library.YearInReviewTracks.IndexView.
|
1
|
+
$('#competitor_<%= @year_in_review_track.id %>').remove()
|
2
|
+
window.VoluntaryMusicMetadataEnrichment.Library.YearInReviewTracks.IndexView.resetPositions()
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<div class="modal-body" style="overflow-y:none;">
|
6
6
|
<textarea rows="20" style="width:515px;">
|
7
7
|
<% @year_in_review_tracks.each do |year_in_review_track| %>
|
8
|
-
<%= year_in_review_track.position %>.
|
8
|
+
<%= year_in_review_track.position %>. <%= lastfm_track_text(year_in_review_track) %>
|
9
9
|
<% end %>
|
10
10
|
</textarea>
|
11
11
|
</div>
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<% content_for(:title) do %>
|
2
|
-
<%= t('year_in_review_music_tracks.index.title', user: name_with_apostrophe(@user.
|
2
|
+
<%= t('year_in_review_music_tracks.index.title', user: name_with_apostrophe(@user.best_available_name), year: params[:year]) %>
|
3
3
|
<% end %>
|
4
4
|
|
5
5
|
<% content_for :breadcrumbs do %>
|
6
6
|
<%= raw [
|
7
|
-
link_to(I18n.t('music_library.index.title', name: name_with_apostrophe(@user.
|
7
|
+
link_to(I18n.t('music_library.index.title', name: name_with_apostrophe(@user.best_available_name)), user_music_library_path(@user)),
|
8
8
|
link_to(I18n.t('years_in_review_music.index.short_title'), user_music_years_in_review_path(@user)),
|
9
|
-
link_to(
|
9
|
+
link_to(@year_in_review.year, user_music_year_in_review_path(@user, @year_in_review.year)),
|
10
10
|
link_to(I18n.t('year_in_review_music_tracks.index.shortest_title'), user_music_year_in_review_top_tracks_path(@user, @year_in_review.year))
|
11
11
|
].join(' > ') %>
|
12
12
|
<% end %>
|
@@ -1,7 +1,10 @@
|
|
1
|
-
<% if params[:commit] == I18n.t('general.close') || @tracks.none? %>
|
1
|
+
<% if @message.blank? && (params[:commit] == I18n.t('general.close') || @tracks.none?) %>
|
2
2
|
$('#years_in_review').html('<%= escape_javascript render(partial: 'library/music/year_in_review_tracks/collection') %>');
|
3
3
|
window.VoluntaryMusicMetadataEnrichment.Library.YearInReviewTracks.IndexView.makeCollectionSortable();
|
4
4
|
$('#bootstrap_modal').modal('hide')
|
5
5
|
<% else %>
|
6
6
|
$('#bootstrap_modal').html('<%= escape_javascript render(partial: 'library/music/year_in_review_tracks/multiple_form') %>');
|
7
|
-
<% end %>
|
7
|
+
<% end %>
|
8
|
+
<% if @message.present? %>
|
9
|
+
alert("<%= @message %>");
|
10
|
+
<% end %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<h3><%= t('years_in_review_music.index.short_title') %></h3>
|
1
|
+
<h3><%= link_to t('years_in_review_music.index.short_title'), group_or_user_path('music_years_in_review') %></h3>
|
2
2
|
|
3
3
|
<% if @years_in_review.none? %>
|
4
4
|
<p><%= t('years_in_review_music.index.empty_collection') %></p>
|
@@ -7,17 +7,18 @@
|
|
7
7
|
<thead>
|
8
8
|
<tr class="<%= cycle('odd', 'even') %>">
|
9
9
|
<th style="width: 25px"><%= t("activerecord.attributes.year_in_review.year") %></th>
|
10
|
-
<th style="width:
|
10
|
+
<th style="width: 80px"></th>
|
11
|
+
<th style="width: 80px"></th>
|
11
12
|
<th></th>
|
12
13
|
</tr>
|
13
14
|
</thead>
|
14
15
|
<tbody>
|
15
16
|
<% @years_in_review.each do |year_in_review| %>
|
16
17
|
<tr class="<%= cycle('odd', 'even') %>">
|
17
|
-
<td><%= link_to year_in_review.year,
|
18
|
+
<td><%= link_to year_in_review.year, group_or_user_path('music_year_in_review', year_in_review) %></td>
|
18
19
|
<td>
|
19
20
|
<%= link_to(
|
20
|
-
|
21
|
+
group_or_user_path('music_year_in_review_top_releases', year_in_review),
|
21
22
|
class: 'year_in_review_music_releases_link', :'data-replace' => '#years_in_review'
|
22
23
|
) do %>
|
23
24
|
<%= t('year_in_review_music_releases.index.shortest_title') %>
|
@@ -26,13 +27,29 @@
|
|
26
27
|
</td>
|
27
28
|
<td>
|
28
29
|
<%= link_to(
|
29
|
-
|
30
|
+
group_or_user_path('music_year_in_review_top_tracks', year_in_review),
|
30
31
|
class: 'year_in_review_music_tracks_link', :'data-replace' => '#years_in_review'
|
31
32
|
) do %>
|
32
33
|
<%= t('year_in_review_music_tracks.index.shortest_title') %>
|
33
34
|
<%= image_tag 'voluntary/spinner.gif', class: 'ajax_spinner hide' %>
|
34
35
|
<% end %>
|
35
36
|
</td>
|
37
|
+
<td>
|
38
|
+
<% if @group.blank? && current_user.try(:id) == params[:user_id].to_i && year_in_review.draft? %>
|
39
|
+
<%= link_to(
|
40
|
+
publish_music_year_in_review_path(year_in_review.id), method: :put, remote: true,
|
41
|
+
class: 'btn publish_music_year_in_review_link', id: "year_in_review_publish_link_#{year_in_review.id}"
|
42
|
+
) do %>
|
43
|
+
<%= t('general.publish') %> <%= image_tag 'voluntary/spinner.gif', class: 'ajax_spinner hide' %>
|
44
|
+
<% end %>
|
45
|
+
<% end %>
|
46
|
+
|
47
|
+
<% if @group.blank? && current_user.try(:id) == params[:user_id].to_i %>
|
48
|
+
<%= link_to destroy_music_year_in_review_path(year_in_review.id), method: :delete, remote: true, class: 'btn btn-danger destroy_music_year_in_review_link' do %>
|
49
|
+
<%= t('general.remove') %> <%= image_tag 'voluntary/spinner.gif', class: 'ajax_spinner hide' %>
|
50
|
+
<% end %>
|
51
|
+
<% end %>
|
52
|
+
</td>
|
36
53
|
</tr>
|
37
54
|
<% end %>
|
38
55
|
</tbody>
|
@@ -41,7 +58,7 @@
|
|
41
58
|
|
42
59
|
<%= will_paginate @years_in_review %>
|
43
60
|
|
44
|
-
<% if current_user.try(:id) == params[:user_id].to_i %>
|
61
|
+
<% if !@group.present? && current_user.try(:id) == params[:user_id].to_i %>
|
45
62
|
<%= form_tag(create_user_music_year_in_review_path(params[:user_id]), method: :post, class: 'form-search', id: 'new_music_year_in_review_form', remote: true) do %>
|
46
63
|
<%= hidden_field_tag :authenticity_token, form_authenticity_token %>
|
47
64
|
<%= render partial: 'shared/form/error_messages', locals: { resource: @year_in_review } %>
|
@@ -0,0 +1 @@
|
|
1
|
+
$('#years_in_review').html('<%= escape_javascript render(partial: 'library/music/years_in_review/collection') %>');
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<% content_for :title do %>
|
2
|
-
<%= t('years_in_review_music.index.title', user: name_with_apostrophe(@user.
|
2
|
+
<%= t('years_in_review_music.index.title', user: name_with_apostrophe(@user.best_available_name)) %>
|
3
3
|
<% end %>
|
4
4
|
<% content_for :breadcrumbs do %>
|
5
5
|
<%= raw [
|
6
|
-
link_to(I18n.t('music_library.index.title', name: name_with_apostrophe(@user.
|
6
|
+
link_to(I18n.t('music_library.index.title', name: name_with_apostrophe(@user.best_available_name)), user_music_library_path(@user)),
|
7
7
|
link_to(I18n.t('years_in_review_music.index.short_title'), user_music_years_in_review_path(@user))
|
8
8
|
].join(' > ') %>
|
9
9
|
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
$('<%= "#year_in_review_publish_link_#{@year_in_review.id}" %>').remove();
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<% content_for(:title) do %>
|
2
|
-
<%= t('years_in_review_music.show.title_with_name', user: name_with_apostrophe(@user.
|
2
|
+
<%= t('years_in_review_music.show.title_with_name', user: name_with_apostrophe(@user.best_available_name), year: params[:year]) %>
|
3
3
|
<% end %>
|
4
4
|
|
5
5
|
<% content_for :breadcrumbs do %>
|
6
6
|
<%= raw [
|
7
|
-
link_to(I18n.t('music_library.index.title', name: name_with_apostrophe(@user.
|
7
|
+
link_to(I18n.t('music_library.index.title', name: name_with_apostrophe(@user.best_available_name)), user_music_library_path(@user)),
|
8
8
|
link_to(I18n.t('years_in_review_music.index.short_title'), user_music_years_in_review_path(@user)),
|
9
|
-
link_to(
|
9
|
+
link_to(@year_in_review.year, user_music_year_in_review_path(@user, @year_in_review.year))
|
10
10
|
].join(' > ') %>
|
11
11
|
<% end %>
|
12
12
|
|
@@ -38,7 +38,7 @@
|
|
38
38
|
<td style="width: 75px"><%= artist.founded_at.present? ? artist.founded_at.strftime('%d.%m.%Y') : '' %></td>
|
39
39
|
<% end %>
|
40
40
|
<% if with_top_tracks %>
|
41
|
-
<td style="width: 100px"><%= raw(artist.tracks.without_slaves.order('plays DESC').limit(3).map{|t| link_to(t.name, music_track_path(t.id)) }.join(', '))%></td>
|
41
|
+
<td style="width: 100px"><%= raw(artist.tracks.without_slaves.where('plays IS NOT NULL').order('plays DESC').limit(3).map{|t| link_to(t.name, music_track_path(t.id)) }.join(', '))%></td>
|
42
42
|
<% end %>
|
43
43
|
<td style="width: 75px"><%= artist.listeners %></td>
|
44
44
|
<% if user_signed_in? && current_user.id == params[:user_id].to_i %>
|
@@ -57,9 +57,9 @@
|
|
57
57
|
</table>
|
58
58
|
<% end %>
|
59
59
|
<%= will_paginate @artists, params: { controller: '/music_metadata_enrichment/artists', action: 'index', id: nil }.merge(@pagination_params ||= {}) if paginate %>
|
60
|
-
<% if
|
60
|
+
<% if @group.present? %>
|
61
61
|
<p>
|
62
|
-
<%= link_to t('music_metadata_enrichment_group_artist_connections.new.short_title'), new_music_group_artist_path(
|
62
|
+
<%= link_to t('music_metadata_enrichment_group_artist_connections.new.short_title'), new_music_group_artist_path(@group.id) %>
|
63
63
|
</p>
|
64
64
|
<% elsif params[:user_id].present? %>
|
65
65
|
<p>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<h3><%= t('music_metadata_enrichment_group_artist_connections.import.title') %></h3>
|
2
2
|
|
3
|
-
<%= simple_form_for(@group, url:
|
3
|
+
<%= simple_form_for(@group, url: post_import_music_group_artists_path(@group.id), method: :post, html: {class: 'form-horizontal'}) do |f| %>
|
4
4
|
<%= f.input :artist_connections_text, as: :text %>
|
5
5
|
<%= f.submit %>
|
6
6
|
<% end %>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<% if user_signed_in? %>
|
2
|
+
<div id="group_membership" style="display:inline;">
|
3
|
+
<% if @membership.present? && @membership.persisted? %>
|
4
|
+
<%= link_to t('general.leave'), music_group_membership_path(@membership.id), method: :delete, remote: true %>
|
5
|
+
<% else %>
|
6
|
+
<%= link_to t('general.join'), music_group_memberships_path(@group.id), method: :post, remote: true %>
|
7
|
+
<% end %>
|
8
|
+
</div>
|
9
|
+
<% end %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<% if @membership.persisted? %>
|
2
|
+
$('#group_membership').html('<%= escape_javascript render(partial: 'music_metadata_enrichment/group_memberships/create_or_destroy') %>');
|
3
|
+
<% else %>
|
4
|
+
alert("<%= I18n.t('music_metadata_enrichment_group_memberships.create.failed') %>");
|
5
|
+
<% end %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<% if @membership.persisted? %>
|
2
|
+
alert("<%= I18n.t('music_metadata_enrichment_group_memberships.destroy.failed') %>");
|
3
|
+
<% else %>
|
4
|
+
$('#group_membership').html('<%= escape_javascript render(partial: 'music_metadata_enrichment/group_memberships/create_or_destroy') %>');
|
5
|
+
<% end %>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<% content_for(:title) do %>
|
2
|
+
<%= t('year_in_review_music_releases.index.title', user: name_with_apostrophe(@group.name), year: params[:year]) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<% content_for :breadcrumbs do %>
|
6
|
+
<%= raw [
|
7
|
+
link_to(@group.name, music_group_path(@group)),
|
8
|
+
link_to(I18n.t('years_in_review_music.index.short_title'), group_music_years_in_review_path(@group)),
|
9
|
+
link_to(I18n.t('years_in_review_music.show.title', year: @year_in_review.year), group_music_year_in_review_path(@group, @year_in_review.year)),
|
10
|
+
link_to(I18n.t('year_in_review_music_releases.index.shortest_title'), group_music_year_in_review_top_releases_path(@group, @year_in_review.year))
|
11
|
+
].join(' > ') %>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div id="years_in_review">
|
15
|
+
<%= render partial: 'library/music/year_in_review_releases/collection' %>
|
16
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<% content_for(:title) do %>
|
2
|
+
<%= t('year_in_review_music_tracks.index.title', user: name_with_apostrophe(@group.name), year: params[:year]) %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<% content_for :breadcrumbs do %>
|
6
|
+
<%= raw [
|
7
|
+
link_to(@group.name, music_group_path(@group)),
|
8
|
+
link_to(I18n.t('years_in_review_music.index.short_title'), group_music_years_in_review_path(@group)),
|
9
|
+
link_to(I18n.t('years_in_review_music.show.title', year: @year_in_review.year), group_music_year_in_review_path(@group, @year_in_review.year)),
|
10
|
+
link_to(I18n.t('year_in_review_music_tracks.index.shortest_title'), group_music_year_in_review_top_tracks_path(@group, @year_in_review.year))
|
11
|
+
].join(' > ') %>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div id="years_in_review">
|
15
|
+
<%= render partial: 'library/music/year_in_review_tracks/collection' %>
|
16
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% content_for :title do %>
|
2
|
+
<%= t('years_in_review_music.index.title', user: name_with_apostrophe(@group.name)) %>
|
3
|
+
<% end %>
|
4
|
+
<% content_for :breadcrumbs do %>
|
5
|
+
<%= raw [
|
6
|
+
link_to(@group.name, music_group_path(@group)),
|
7
|
+
link_to(I18n.t('years_in_review_music.index.short_title'), group_music_years_in_review_path(@group))
|
8
|
+
].join(' > ') %>
|
9
|
+
<% end %>
|
10
|
+
<% content_for :document_ready do %>
|
11
|
+
new window.VoluntaryMusicMetadataEnrichment.Library.YearsInReview.IndexView(false);
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<%= image_tag 'voluntary/spinner.gif', id: 'years_in_review_spinner', class: 'hide' %>
|
15
|
+
|
16
|
+
<div id="years_in_review">
|
17
|
+
<%= render partial: 'library/music/years_in_review/collection' %>
|
18
|
+
</div>
|