Merge branch 'master' of github.com:diaspora/diaspora
This commit is contained in:
commit
42c22cedf9
8 changed files with 58 additions and 6 deletions
|
|
@ -21,6 +21,7 @@ class UsersController < ApplicationController
|
||||||
params[:user].delete(:password) if params[:user][:password].blank?
|
params[:user].delete(:password) if params[:user][:password].blank?
|
||||||
params[:user].delete(:password_confirmation) if params[:user][:password].blank? and params[:user][:password_confirmation].blank?
|
params[:user].delete(:password_confirmation) if params[:user][:password].blank? and params[:user][:password_confirmation].blank?
|
||||||
params[:user].delete(:language) if params[:user][:language].blank?
|
params[:user].delete(:language) if params[:user][:language].blank?
|
||||||
|
params[:user].delete(:email) if params[:user][:email].blank?
|
||||||
|
|
||||||
# change email notifications
|
# change email notifications
|
||||||
if params[:user][:disable_mail]
|
if params[:user][:disable_mail]
|
||||||
|
|
@ -39,6 +40,13 @@ class UsersController < ApplicationController
|
||||||
else
|
else
|
||||||
flash[:error] = I18n.t 'users.update.language_not_changed'
|
flash[:error] = I18n.t 'users.update.language_not_changed'
|
||||||
end
|
end
|
||||||
|
# change email
|
||||||
|
elsif params[:user][:email]
|
||||||
|
if @user.update_attributes(:email => params[:user][:email])
|
||||||
|
flash[:notice] = I18n.t 'users.update.email_changed'
|
||||||
|
else
|
||||||
|
flash[:error] = I18n.t 'users.update.email_not_changed'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
redirect_to edit_user_path(@user)
|
redirect_to edit_user_path(@user)
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,11 @@ module SocketsHelper
|
||||||
def action_hash(uid, object, opts={})
|
def action_hash(uid, object, opts={})
|
||||||
begin
|
begin
|
||||||
user = User.find_by_id uid
|
user = User.find_by_id uid
|
||||||
|
unless user.nil?
|
||||||
|
old_locale = I18n.locale
|
||||||
|
I18n.locale = user.language.to_s
|
||||||
|
end
|
||||||
|
|
||||||
if object.is_a? StatusMessage
|
if object.is_a? StatusMessage
|
||||||
post_hash = {:post => object,
|
post_hash = {:post => object,
|
||||||
:person => object.person,
|
:person => object.person,
|
||||||
|
|
@ -59,7 +64,9 @@ module SocketsHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
action_hash[:mine?] = object.person && (object.person.owner.id == uid) if object.respond_to?(:person)
|
action_hash[:mine?] = object.person && (object.person.owner.id == uid) if object.respond_to?(:person)
|
||||||
|
|
||||||
|
I18n.locale = old_locale unless user.nil?
|
||||||
|
|
||||||
action_hash.to_json
|
action_hash.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ class User
|
||||||
person.save if person
|
person.save if person
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_accessible :getting_started, :password, :password_confirmation, :language, :disable_mail
|
attr_accessible :getting_started, :password, :password_confirmation, :language, :disable_mail, :email
|
||||||
|
|
||||||
def strip_and_downcase_username
|
def strip_and_downcase_username
|
||||||
if username.present?
|
if username.present?
|
||||||
|
|
@ -304,7 +304,7 @@ class User
|
||||||
def update_profile(params)
|
def update_profile(params)
|
||||||
if params[:photo]
|
if params[:photo]
|
||||||
params[:photo].update_attributes(:pending => false) if params[:photo].pending
|
params[:photo].update_attributes(:pending => false) if params[:photo].pending
|
||||||
params[:image_url] = params[:photo].url
|
params[:image_url] = params[:photo].url(:thumb_large)
|
||||||
params[:image_url_medium] = params[:photo].url(:thumb_medium)
|
params[:image_url_medium] = params[:photo].url(:thumb_medium)
|
||||||
params[:image_url_small] = params[:photo].url(:thumb_small)
|
params[:image_url_small] = params[:photo].url(:thumb_small)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,12 @@
|
||||||
.span-8.last
|
.span-8.last
|
||||||
%h3
|
%h3
|
||||||
= t('.your_email')
|
= t('.your_email')
|
||||||
%p
|
= form_for @user do |f|
|
||||||
= current_user.email
|
= f.error_messages
|
||||||
|
%p
|
||||||
|
= f.label :email, current_user.email
|
||||||
|
= f.text_field :email
|
||||||
|
= f.submit t('.change_email')
|
||||||
|
|
||||||
%br
|
%br
|
||||||
%br
|
%br
|
||||||
|
|
|
||||||
|
|
@ -176,6 +176,7 @@ en:
|
||||||
close_account: "Close Account"
|
close_account: "Close Account"
|
||||||
change_language: "Change Language"
|
change_language: "Change Language"
|
||||||
change_password: "Change Password"
|
change_password: "Change Password"
|
||||||
|
change_email: "Change Email"
|
||||||
new_password: "New Password"
|
new_password: "New Password"
|
||||||
download_xml: "download my xml"
|
download_xml: "download my xml"
|
||||||
download_photos: "download my photos"
|
download_photos: "download my photos"
|
||||||
|
|
@ -220,6 +221,8 @@ en:
|
||||||
language_changed: "Language Changed"
|
language_changed: "Language Changed"
|
||||||
language_not_changed: "Language Change Failed"
|
language_not_changed: "Language Change Failed"
|
||||||
email_notifications_changed: "Language Change Failed"
|
email_notifications_changed: "Language Change Failed"
|
||||||
|
email_changed: "Email Changed"
|
||||||
|
email_not_changed: "Email Change Failed"
|
||||||
public:
|
public:
|
||||||
does_not_exist: "User %{username} does not exist!"
|
does_not_exist: "User %{username} does not exist!"
|
||||||
comments:
|
comments:
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,9 @@ var Validation = {
|
||||||
username: {
|
username: {
|
||||||
characters: /^(|[A-Za-z0-9_]{0,32})$/,
|
characters: /^(|[A-Za-z0-9_]{0,32})$/,
|
||||||
length: [6, 32]
|
length: [6, 32]
|
||||||
|
},
|
||||||
|
email: {
|
||||||
|
characters: /^(([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,}))(, *(([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})))*$/
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
events: {
|
events: {
|
||||||
|
|
@ -15,10 +18,19 @@ var Validation = {
|
||||||
if(!Validation.rules.username.characters.test(this.value + String.fromCharCode(evt.keyCode))) {
|
if(!Validation.rules.username.characters.test(this.value + String.fromCharCode(evt.keyCode))) {
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
emailKeypress: function(evt) {
|
||||||
|
if(evt.keyCode === 0) { return; }
|
||||||
|
if(!Validation.rules.email.characters.test(this.value + String.fromCharCode(evt.keyCode))) {
|
||||||
|
$('#user_email').css('border-color', '#8B0000');
|
||||||
|
} else {
|
||||||
|
$('#user_email').css('border-color', '#666666');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
$("#user_username").keypress(Validation.events.usernameKeypress);
|
$("#user_username").keypress(Validation.events.usernameKeypress);
|
||||||
|
$("#user_email").keypress(Validation.events.emailKeypress);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,13 @@ describe("Validation", function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
describe("email", function() {
|
||||||
|
describe("characters", function() {
|
||||||
|
it("is the regex for checking if the input is a valid list of e-mail addresses", function() {
|
||||||
|
expect((typeof Validation.rules.email.characters.test === "function")).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
describe("events", function() {
|
describe("events", function() {
|
||||||
describe("usernameKeypress", function() {
|
describe("usernameKeypress", function() {
|
||||||
|
|
@ -16,5 +23,16 @@ describe("Validation", function() {
|
||||||
expect(Validation.rules.username.characters.test("ffffffffffffffffffffffffffffffffff")).toBeFalsy();
|
expect(Validation.rules.username.characters.test("ffffffffffffffffffffffffffffffffff")).toBeFalsy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
describe("emailKeypress", function() {
|
||||||
|
it("colors the border red if the input seems to be a invalid list", function() {
|
||||||
|
expect(Validation.rules.email.characters.test("user@example.com")).toBeTruthy();
|
||||||
|
expect(Validation.rules.email.characters.test("user@example.com, user@example.com")).toBeTruthy();
|
||||||
|
expect(Validation.rules.email.characters.test("user@example.com, user@example.com, user@example.com")).toBeTruthy();
|
||||||
|
expect(Validation.rules.email.characters.test("user@example.com user@example.com")).toBeFalsy();
|
||||||
|
expect(Validation.rules.email.characters.test("user@examplecom")).toBeFalsy();
|
||||||
|
expect(Validation.rules.email.characters.test("userexample.com")).toBeFalsy();
|
||||||
|
expect(Validation.rules.email.characters.test("userexamplecom")).toBeFalsy();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -296,7 +296,7 @@ describe User do
|
||||||
end
|
end
|
||||||
it 'updates image_url' do
|
it 'updates image_url' do
|
||||||
user.update_profile(@params).should be_true
|
user.update_profile(@params).should be_true
|
||||||
user.reload.profile.image_url.should == @photo.absolute_url
|
user.reload.profile.image_url.should == @photo.absolute_url(:thumb_large)
|
||||||
user.profile.image_url_medium.should == @photo.absolute_url(:thumb_medium)
|
user.profile.image_url_medium.should == @photo.absolute_url(:thumb_medium)
|
||||||
user.profile.image_url_small.should == @photo.absolute_url(:thumb_small)
|
user.profile.image_url_small.should == @photo.absolute_url(:thumb_small)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue