From e4c7f2fb8fa2833037508f1b88f802944855fd77 Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 10 Dec 2012 10:38:48 +0100 Subject: actually allow adding email aliases --- users/app/controllers/users_controller.rb | 3 ++- users/app/models/user.rb | 7 +++++++ users/app/views/users/_email_aliases.html.haml | 20 ++++++++++---------- users/app/views/users/edit.html.haml | 2 +- users/config/locales/en.yml | 1 + 5 files changed, 21 insertions(+), 12 deletions(-) (limited to 'users') diff --git a/users/app/controllers/users_controller.rb b/users/app/controllers/users_controller.rb index 4921a4a..5055f4e 100644 --- a/users/app/controllers/users_controller.rb +++ b/users/app/controllers/users_controller.rb @@ -30,7 +30,8 @@ class UsersController < ApplicationController end def update - if @user.update_attributes(params[:user]) + @user.attributes = params[:user] + if @user.changed? and @user.save flash[:notice] = t(:user_updated_successfully) end respond_with @user, :location => edit_user_path(@user) diff --git a/users/app/models/user.rb b/users/app/models/user.rb index 81d5262..3ad69c7 100644 --- a/users/app/models/user.rb +++ b/users/app/models/user.rb @@ -75,6 +75,13 @@ class User < CouchRest::Model::Base APP_CONFIG['admins'].include? self.login end + def email_aliases_attributes=(attrs) + if attrs + email_alias = EmailAlias.new(attrs.values.first) + email_aliases << email_alias + end + end + protected def password password_verifier diff --git a/users/app/views/users/_email_aliases.html.haml b/users/app/views/users/_email_aliases.html.haml index 54eac0f..41d4f9e 100644 --- a/users/app/views/users/_email_aliases.html.haml +++ b/users/app/views/users/_email_aliases.html.haml @@ -1,10 +1,10 @@ -%legend= t(:email_aliases) -%ul - - @user.email_aliases.each do |email| - %li= email -= email_alias_form do |f| - =f.input :email, :placeholder => "alias@#{request.domain}" - .pull-right - %button{:type => :submit, :class => 'btn'} - %i.icon-plus - Add Email Alias +.span6 + %ul.unstyled + - @user.email_aliases.each do |email_alias| + %li.pull-right + %code= email_alias.email + %i.icon-remove + .clearfix +.clearfix += f.simple_fields_for :email_aliases, EmailAlias.new do |e| + = e.input :email, :placeholder => "alias@#{request.domain}" diff --git a/users/app/views/users/edit.html.haml b/users/app/views/users/edit.html.haml index eb1bca4..92ab71b 100644 --- a/users/app/views/users/edit.html.haml +++ b/users/app/views/users/edit.html.haml @@ -14,4 +14,4 @@ .tab-pane#email = user_form_with 'email_field', :legend => :set_email_address = user_form_with 'email_forward_field', :legend => :forward_email - = render 'email_aliases' + = user_form_with 'email_aliases', :legend => :add_email_alias diff --git a/users/config/locales/en.yml b/users/config/locales/en.yml index fe7e824..d068e70 100644 --- a/users/config/locales/en.yml +++ b/users/config/locales/en.yml @@ -12,6 +12,7 @@ en: set_email_address: "Set email address" forward_email: "Forward email" email_aliases: "Email aliases" + add_email_alias: "Add email alias" user_updated_successfully: "Settings have been updated successfully." user_created_successfully: "Successfully created your account." -- cgit v1.2.3