Class: Library::Music::YearInReviewReleasesController

Inherits:
MusicMetadataEnrichment::ApplicationController show all
Includes:
Applicat::Mvc::Controller::Resource, MusicMetadataEnrichment::BaseController
Defined in:
app/controllers/library/music/year_in_review_releases_controller.rb

Instance Method Summary collapse

Methods included from MusicMetadataEnrichment::BaseController

#application_navigation, #navigation_product_name, #navigation_product_path

Instance Method Details

#createObject



50
51
52
53
54
55
56
57
58
59
60
61
# File 'app/controllers/library/music/year_in_review_releases_controller.rb', line 50

def create
  build_resource
  
  if @year_in_review_release.save
    @year_in_review.flop_releases.where(release_id: @year_in_review_release.release_id).delete_all
    MusicLibraryArtist.create(user_id: current_user.id, artist_id: @year_in_review_release.artist_id)
    @notice = I18n.t('year_in_review_music_releases.create.successful') 
    get_year_in_review_releases
  end
  
  render layout: false
end

#destroyObject



84
85
86
87
88
89
90
91
92
# File 'app/controllers/library/music/year_in_review_releases_controller.rb', line 84

def destroy
  @year_in_review_release.destroy
  @user = current_user
  params[:user_id], params[:year] = current_user.id, @year_in_review_release.year
  find_year_in_review
  get_year_in_review_releases
  
  render layout: false
end

#exportObject



94
95
96
97
98
99
100
# File 'app/controllers/library/music/year_in_review_releases_controller.rb', line 94

def export
  @user = current_user
  find_year_in_review
  get_year_in_review_releases
  
  render layout: false
end

#indexObject



8
9
10
11
12
13
14
# File 'app/controllers/library/music/year_in_review_releases_controller.rb', line 8

def index
  @user = User.by_slug_or_id(params[:user_id])
  find_year_in_review
  get_year_in_review_releases
  
  render partial: 'library/music/year_in_review_releases/collection' if request.xhr?
end

#moveObject



63
64
65
66
67
68
69
70
71
72
73
# File 'app/controllers/library/music/year_in_review_releases_controller.rb', line 63

def move
  year_in_review_releases = current_user.years_in_review_music_releases.where('year_in_review_music_releases.id IN(?)', params[:positions].values).index_by(&:id)

  params[:positions].keys.map(&:to_i).sort.each do |position|
    id = params[:positions][position.to_s]
    year_in_review_releases[id.to_i].reload
    year_in_review_releases[id.to_i].insert_at(position.to_i)
  end
  
  render nothing: true
end

#multiple_newObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/controllers/library/music/year_in_review_releases_controller.rb', line 21

def multiple_new
  @user = current_user
  find_year_in_review
  @releases = current_user.music_releases.for_year_in_review(@year_in_review)
  @releases = @releases.where('music_releases.id > ?', params[:last_id]) if params[:last_id].present?
  @releases_left = @releases.count
  @releases = @releases.order('music_releases.id ASC').limit(10)
  params[:last_id] = params[:commit] == I18n.t('general.close') || @releases.none? ? nil : @releases.last.id

  if params[:commit] != I18n.t('general.close') && params[:year_in_review_music_releases].present?
    params[:year_in_review_music_releases].each do |release_id, checked|
      next unless checked == '1'
      
      @year_in_review_release = @year_in_review.releases.create(release_id: release_id)
      
      next unless @year_in_review_release.persisted?
      
      MusicLibraryArtist.create(user_id: current_user.id, artist_id: @year_in_review_release.artist_id)
    end
  end
  
  if params[:commit] == I18n.t('general.close') || @releases.none?
    get_year_in_review_releases
    params[:user_id] = current_user.id 
  end
  
  render layout: false
end

#newObject



16
17
18
19
# File 'app/controllers/library/music/year_in_review_releases_controller.rb', line 16

def new
  build_resource
  render layout: false
end

#resourceObject



102
103
104
# File 'app/controllers/library/music/year_in_review_releases_controller.rb', line 102

def resource
  @year_in_review_release
end

#update_all_positionsObject



75
76
77
78
79
80
81
82
# File 'app/controllers/library/music/year_in_review_releases_controller.rb', line 75

def update_all_positions
  @user = current_user
  find_year_in_review
  
  @year_in_review.update_all_positions_of_users_top_list(@user, :releases, params[:matches], params[:positions])
  
  render nothing: true
end