Skip to content
Extraits de code Groupes Projets
Valider 42c22ced rédigé par maxwell's avatar maxwell
Parcourir les fichiers

Merge branch 'master' of github.com:diaspora/diaspora

parents d9f25473 045ba7c4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -21,6 +21,7 @@ class UsersController < ApplicationController ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 @@ ...@@ -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: ...@@ -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: ...@@ -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 = { ...@@ -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 = { ...@@ -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() { ...@@ -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() { ...@@ -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 ...@@ -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
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter