parent
32b6dc088e
commit
588cb77e9f
@ -0,0 +1,27 @@
|
||||
class Settings::PreferencesController < ApplicationController
|
||||
layout 'auth'
|
||||
|
||||
before_action :authenticate_user!
|
||||
|
||||
def show
|
||||
end
|
||||
|
||||
def update
|
||||
current_user.settings(:notification_emails).follow = user_params[:notification_emails][:follow] == '1'
|
||||
current_user.settings(:notification_emails).reblog = user_params[:notification_emails][:reblog] == '1'
|
||||
current_user.settings(:notification_emails).favourite = user_params[:notification_emails][:favourite] == '1'
|
||||
current_user.settings(:notification_emails).mention = user_params[:notification_emails][:mention] == '1'
|
||||
|
||||
if current_user.save
|
||||
redirect_to settings_preferences_path, notice: 'Changes successfully saved!'
|
||||
else
|
||||
render action: :show
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def user_params
|
||||
params.require(:user).permit(notification_emails: [:follow, :reblog, :favourite, :mention])
|
||||
end
|
||||
end
|
@ -1,2 +0,0 @@
|
||||
module SettingsHelper
|
||||
end
|
@ -0,0 +1,22 @@
|
||||
- content_for :page_title do
|
||||
Preferences
|
||||
|
||||
= form_for current_user, url: settings_preferences_path, html: { method: :put } do |f|
|
||||
= f.fields_for :notification_emails, current_user.settings(:notification_emails) do |ff|
|
||||
.boolean-field
|
||||
= ff.check_box :follow
|
||||
= ff.label :follow, 'Send e-mail when someone follows you'
|
||||
.boolean-field
|
||||
= ff.check_box :reblog
|
||||
= ff.label :reblog, 'Send e-mail when someone reblogs your status'
|
||||
.boolean-field
|
||||
= ff.check_box :favourite
|
||||
= ff.label :favourite, 'Send e-mail when someone favourites your status'
|
||||
.boolean-field
|
||||
= ff.check_box :mention
|
||||
= ff.label :mention, 'Send e-mail when someone mentions you'
|
||||
|
||||
.actions
|
||||
= f.button 'Save changes', type: :submit
|
||||
|
||||
.form-footer= render "settings/shared/links"
|
@ -0,0 +1,7 @@
|
||||
%ul.no-list
|
||||
- if controller_name != 'profiles'
|
||||
%li= link_to "Edit profile", settings_profile_path
|
||||
- if controller_name != 'preferences'
|
||||
%li= link_to "Preferences", settings_preferences_path
|
||||
- if controller_name != 'registrations'
|
||||
%li= link_to "Change password", edit_user_registration_path
|
@ -0,0 +1,16 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Settings::PreferencesController, type: :controller do
|
||||
|
||||
before do
|
||||
sign_in Fabricate(:user), scope: :user
|
||||
end
|
||||
|
||||
describe "GET #show" do
|
||||
it "returns http success" do
|
||||
get :show
|
||||
expect(response).to have_http_status(:success)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
@ -1,6 +1,6 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe SettingsController, type: :controller do
|
||||
RSpec.describe Settings::ProfilesController, type: :controller do
|
||||
|
||||
before do
|
||||
sign_in Fabricate(:user), scope: :user
|
@ -1,5 +0,0 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe SettingsHelper, type: :helper do
|
||||
|
||||
end
|
Loading…
Reference in new issue