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
|
@user = current_user
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def social_update
|
||||||
|
@user = current_user
|
||||||
|
@user.update_attributes(params[:user])
|
||||||
|
redirect_to [:profile]
|
||||||
|
end
|
||||||
|
|
||||||
def password
|
def password
|
||||||
@user = current_user
|
@user = current_user
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,7 +5,8 @@ class User < ActiveRecord::Base
|
||||||
:recoverable, :rememberable, :trackable, :validatable
|
:recoverable, :rememberable, :trackable, :validatable
|
||||||
|
|
||||||
# Setup accessible (or protected) attributes for your model
|
# 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 :users_projects, :dependent => :destroy
|
||||||
has_many :projects, :through => :users_projects
|
has_many :projects, :through => :users_projects
|
||||||
|
@ -58,5 +59,8 @@ end
|
||||||
# name :string(255)
|
# name :string(255)
|
||||||
# admin :boolean default(FALSE), not null
|
# admin :boolean default(FALSE), not null
|
||||||
# projects_limit :integer
|
# projects_limit :integer
|
||||||
|
# skype :string
|
||||||
|
# linkedin :string
|
||||||
|
# twitter :string
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
|
@ -25,13 +25,26 @@
|
||||||
= f.label :password_confirmation
|
= f.label :password_confirmation
|
||||||
%br
|
%br
|
||||||
= f.password_field :password_confirmation
|
= f.password_field :password_confirmation
|
||||||
.span-11
|
.field.prepend-top
|
||||||
.field.prepend-top.append-bottom
|
|
||||||
= f.check_box :admin
|
= f.check_box :admin
|
||||||
= f.label :admin
|
= f.label :admin
|
||||||
|
.span-11
|
||||||
.field.prepend-top
|
.field.prepend-top
|
||||||
= f.text_field :projects_limit, :class => "small_input"
|
= f.text_field :projects_limit, :class => "small_input"
|
||||||
= f.label :projects_limit
|
= 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
|
.clear
|
||||||
%br
|
%br
|
||||||
.actions
|
.actions
|
||||||
|
|
|
@ -14,6 +14,17 @@
|
||||||
%b Projects limit:
|
%b Projects limit:
|
||||||
= @admin_user.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
|
.clear
|
||||||
= link_to 'Edit', edit_admin_user_path(@admin_user)
|
= link_to 'Edit', edit_admin_user_path(@admin_user)
|
||||||
\|
|
\|
|
||||||
|
|
|
@ -6,3 +6,28 @@
|
||||||
%p
|
%p
|
||||||
%b Email:
|
%b Email:
|
||||||
= @user.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 "errors/gitosis"
|
||||||
get "profile/password", :to => "profile#password"
|
get "profile/password", :to => "profile#password"
|
||||||
put "profile/password", :to => "profile#password_update"
|
put "profile/password", :to => "profile#password_update"
|
||||||
|
put "profile/edit", :to => "profile#social_update"
|
||||||
get "profile", :to => "profile#show"
|
get "profile", :to => "profile#show"
|
||||||
#get "profile/:id", :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.
|
# 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|
|
create_table "issues", :force => true do |t|
|
||||||
t.string "title"
|
t.string "title"
|
||||||
|
@ -82,6 +82,9 @@ ActiveRecord::Schema.define(:version => 20111016195506) do
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.boolean "admin", :default => false, :null => false
|
t.boolean "admin", :default => false, :null => false
|
||||||
t.integer "projects_limit", :default => 10
|
t.integer "projects_limit", :default => 10
|
||||||
|
t.string "skype"
|
||||||
|
t.string "linkedin"
|
||||||
|
t.string "twitter"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
|
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
|
||||||
|
|
|
@ -39,5 +39,8 @@ end
|
||||||
# name :string(255)
|
# name :string(255)
|
||||||
# admin :boolean default(FALSE), not null
|
# admin :boolean default(FALSE), not null
|
||||||
# projects_limit :integer
|
# projects_limit :integer
|
||||||
|
# skype :string
|
||||||
|
# linkedin :string
|
||||||
|
# twitter :string
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,22 @@ describe "Profile" do
|
||||||
it { page.should have_content(@user.email) }
|
it { page.should have_content(@user.email) }
|
||||||
end
|
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
|
describe "Password update" do
|
||||||
before do
|
before do
|
||||||
visit profile_password_path
|
visit profile_password_path
|
||||||
|
|
Loading…
Reference in a new issue