extended user profile with social fields
This commit is contained in:
parent
9ad444f02e
commit
59704f481e
10 changed files with 93 additions and 4 deletions
|
@ -3,6 +3,12 @@ class ProfileController < ApplicationController
|
|||
@user = current_user
|
||||
end
|
||||
|
||||
def social_update
|
||||
@user = current_user
|
||||
@user.update_attributes(params[:user])
|
||||
redirect_to [:profile]
|
||||
end
|
||||
|
||||
def password
|
||||
@user = current_user
|
||||
end
|
||||
|
|
|
@ -5,7 +5,8 @@ class User < ActiveRecord::Base
|
|||
:recoverable, :rememberable, :trackable, :validatable
|
||||
|
||||
# Setup accessible (or protected) attributes for your model
|
||||
attr_accessible :email, :password, :password_confirmation, :remember_me, :name, :projects_limit
|
||||
attr_accessible :email, :password, :password_confirmation, :remember_me,
|
||||
:name, :projects_limit, :skype, :linkedin, :twitter
|
||||
|
||||
has_many :users_projects, :dependent => :destroy
|
||||
has_many :projects, :through => :users_projects
|
||||
|
@ -58,5 +59,8 @@ end
|
|||
# name :string(255)
|
||||
# admin :boolean default(FALSE), not null
|
||||
# projects_limit :integer
|
||||
# skype :string
|
||||
# linkedin :string
|
||||
# twitter :string
|
||||
#
|
||||
|
||||
|
|
|
@ -25,13 +25,26 @@
|
|||
= f.label :password_confirmation
|
||||
%br
|
||||
= f.password_field :password_confirmation
|
||||
.span-11
|
||||
.field.prepend-top.append-bottom
|
||||
.field.prepend-top
|
||||
= f.check_box :admin
|
||||
= f.label :admin
|
||||
.span-11
|
||||
.field.prepend-top
|
||||
= f.text_field :projects_limit, :class => "small_input"
|
||||
= f.label :projects_limit
|
||||
|
||||
.field
|
||||
= f.label :skype
|
||||
%br
|
||||
= f.text_field :skype
|
||||
.field
|
||||
= f.label :linkedin
|
||||
%br
|
||||
= f.text_field :linkedin
|
||||
.field
|
||||
= f.label :twitter
|
||||
%br
|
||||
= f.text_field :twitter
|
||||
.clear
|
||||
%br
|
||||
.actions
|
||||
|
|
|
@ -14,6 +14,17 @@
|
|||
%b Projects limit:
|
||||
= @admin_user.projects_limit
|
||||
|
||||
%p
|
||||
%b Skype:
|
||||
= @admin_user.skype
|
||||
%p
|
||||
%b LinkedIn:
|
||||
= @admin_user.linkedin
|
||||
%p
|
||||
%b Twitter:
|
||||
= @admin_user.twitter
|
||||
|
||||
|
||||
.clear
|
||||
= link_to 'Edit', edit_admin_user_path(@admin_user)
|
||||
\|
|
||||
|
|
|
@ -6,3 +6,28 @@
|
|||
%p
|
||||
%b Email:
|
||||
= @user.email
|
||||
|
||||
%br
|
||||
|
||||
= form_for @user, :url => profile_edit_path, :method => :put do |f|
|
||||
-if @user.errors.any?
|
||||
#error_explanation
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.div
|
||||
= f.label :skype
|
||||
%br
|
||||
= f.text_field :skype
|
||||
.div
|
||||
= f.label :linkedin
|
||||
%br
|
||||
= f.text_field :linkedin
|
||||
.div
|
||||
= f.label :twitter
|
||||
%br
|
||||
= f.text_field :twitter
|
||||
.actions
|
||||
= f.submit 'Save', :class => "lbutton vm"
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ Gitlab::Application.routes.draw do
|
|||
get "errors/gitosis"
|
||||
get "profile/password", :to => "profile#password"
|
||||
put "profile/password", :to => "profile#password_update"
|
||||
put "profile/edit", :to => "profile#social_update"
|
||||
get "profile", :to => "profile#show"
|
||||
#get "profile/:id", :to => "profile#show"
|
||||
|
||||
|
|
7
db/migrate/20111019212429_add_social_to_user.rb
Normal file
7
db/migrate/20111019212429_add_social_to_user.rb
Normal file
|
@ -0,0 +1,7 @@
|
|||
class AddSocialToUser < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :users, :skype, :string
|
||||
add_column :users, :linkedin, :string
|
||||
add_column :users, :twitter, :string
|
||||
end
|
||||
end
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20111016195506) do
|
||||
ActiveRecord::Schema.define(:version => 20111019212429) do
|
||||
|
||||
create_table "issues", :force => true do |t|
|
||||
t.string "title"
|
||||
|
@ -82,6 +82,9 @@ ActiveRecord::Schema.define(:version => 20111016195506) do
|
|||
t.string "name"
|
||||
t.boolean "admin", :default => false, :null => false
|
||||
t.integer "projects_limit", :default => 10
|
||||
t.string "skype"
|
||||
t.string "linkedin"
|
||||
t.string "twitter"
|
||||
end
|
||||
|
||||
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
|
||||
|
|
|
@ -39,5 +39,8 @@ end
|
|||
# name :string(255)
|
||||
# admin :boolean default(FALSE), not null
|
||||
# projects_limit :integer
|
||||
# skype :string
|
||||
# linkedin :string
|
||||
# twitter :string
|
||||
#
|
||||
|
||||
|
|
|
@ -14,6 +14,22 @@ describe "Profile" do
|
|||
it { page.should have_content(@user.email) }
|
||||
end
|
||||
|
||||
describe "Profile update" do
|
||||
before do
|
||||
visit profile_path
|
||||
fill_in "user_skype", :with => "testskype"
|
||||
fill_in "user_linkedin", :with => "testlinkedin"
|
||||
fill_in "user_twitter", :with => "testtwitter"
|
||||
click_button "Save"
|
||||
@user.reload
|
||||
end
|
||||
|
||||
it { @user.skype.should == 'testskype' }
|
||||
it { @user.linkedin.should == 'testlinkedin' }
|
||||
it { @user.twitter.should == 'testtwitter' }
|
||||
end
|
||||
|
||||
|
||||
describe "Password update" do
|
||||
before do
|
||||
visit profile_password_path
|
||||
|
|
Loading…
Reference in a new issue