parent
9b195f5dd3
commit
7a6d95f70c
@ -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' |
require 'rails_helper' |
||||||
|
|
||||||
RSpec.describe SettingsController, type: :controller do |
RSpec.describe Settings::ProfilesController, type: :controller do |
||||||
|
|
||||||
before do |
before do |
||||||
sign_in Fabricate(:user), scope: :user |
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