Class: PreferencesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/preferences_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#admin_login_required, #admin_or_self_login_required, #all_done_todos_for, #boolean_param, cas_enabled?, #cas_enabled?, #count_deferred_todos, #count_undone_todos, #count_undone_todos_phrase, #done_todos_for, #enable_mobile_content_negotiation, #for_autocomplete, #format_date, #format_dependencies_as_json_for_auto_complete, #handle_unverified_request, #init_data_for_sidebar, #init_hidden_todo_counts, #init_not_done_counts, #mobile?, #notify, #openid_enabled?, openid_enabled?, #parse_date_per_user_prefs, prefered_auth?, #prefered_auth?, #redirect_back_or_home, #render_failure, #sanitize, #set_group_view_by, #set_locale, #set_session_expiration, #set_time_zone, #set_zindex_counter, #todo_xml_params

Methods included from Common

like_operator, #set_theme

Methods included from LoginSystem

#access_denied, #authorize?, #basic_auth_denied, #current_user, #get_basic_auth_data, #get_current_user, #logged_in?, #login_from_cookie, #login_optional, #login_or_feed_token_required, #login_required, #logout_user, #prefs, #protect?, #redirect_back_or_default, #redirect_to_login, #set_current_user, #store_location

Instance Method Details

#indexObject



2
3
4
5
6
# File 'app/controllers/preferences_controller.rb', line 2

def index
  @page_title = t('preferences.page_title')
  @prefs = current_user.prefs
  @user = current_user
end

#preference_updatedObject (private)

Display notification if preferences are successful updated



50
51
52
53
# File 'app/controllers/preferences_controller.rb', line 50

def preference_updated
  notify :notice, t('preferences.updated')
  redirect_to :action => 'index'
end

#prefs_paramsObject (private)



35
36
37
38
39
40
41
42
43
# File 'app/controllers/preferences_controller.rb', line 35

def prefs_params
  params.require(:prefs).permit(
    :date_format, :week_starts, :show_number_completed,
    :show_completed_projects_in_sidebar, :show_hidden_contexts_in_sidebar,
    :staleness_starts, :due_style, :locale, :title_date_format, :time_zone,
    :show_hidden_projects_in_sidebar, :show_project_on_todo_done,
    :review_period, :refresh, :verbose_action_descriptors,
    :mobile_todos_per_page, :sms_email, :sms_context_id, :theme)
end

#render_date_formatObject



28
29
30
31
# File 'app/controllers/preferences_controller.rb', line 28

def render_date_format
  format = params[:date_format]
  render :body => l(Date.current, :format => format)
end

#updateObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/controllers/preferences_controller.rb', line 8

def update
  @prefs = current_user.prefs
  @user = current_user
  user_updated = current_user.update(user_params)
  prefs_updated = current_user.preference.update(prefs_params)
  if (user_updated && prefs_updated)
    if params['user']['password'].present? # password updated?
      logout_user t('preferences.password_changed')
    else
      preference_updated
    end
  else
    msg = "Preferences could not be updated: "
    msg += "User model errors; " unless user_updated
    msg += "Prefs model errors; " unless prefs_updated
    notify :warning, msg
    render 'index'
  end
end

#user_paramsObject (private)



45
46
47
# File 'app/controllers/preferences_controller.rb', line 45

def user_params
  params.require(:user).permit(:login, :first_name, :last_name, :email, :password_confirmation, :password, :auth_type, :open_id_url)
end