preferences_controller.rb 874 Bytes
Newer Older
1 2 3 4 5 6 7
class Profiles::PreferencesController < Profiles::ApplicationController
  before_action :user

  def show
  end

  def update
8
    begin
9
      result = Users::UpdateService.new(user, preferences_params).execute
10 11

      if result[:status] == :success
12 13 14 15 16 17 18
        flash[:notice] = 'Preferences saved.'
      else
        flash[:alert] = 'Failed to save preferences.'
      end
    rescue ArgumentError => e
      # Raised when `dashboard` is given an invalid value.
      flash[:alert] = "Failed to save preferences (#{e.message})."
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
    end

    respond_to do |format|
      format.html { redirect_to profile_preferences_path }
      format.js
    end
  end

  private

  def user
    @user = current_user
  end

  def preferences_params
34 35
    params.require(:user).permit(
      :color_scheme_id,
36
      :layout,
37
      :dashboard,
38 39
      :project_view,
      :theme_id
40
    )
41 42
  end
end