summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/stylesheets/common.scss7
-rw-r--r--app/assets/stylesheets/main.scss5
-rw-r--r--app/assets/stylesheets/sections/profile.scss8
-rw-r--r--app/controllers/profile_controller.rb8
-rw-r--r--app/helpers/application_helper.rb3
-rw-r--r--app/views/layouts/profile.html.haml10
-rw-r--r--app/views/profile/account.html.haml57
-rw-r--r--app/views/profile/history.html.haml5
-rw-r--r--app/views/profile/password.html.haml29
-rw-r--r--app/views/profile/show.html.haml4
-rw-r--r--app/views/profile/token.html.haml23
-rw-r--r--config/routes.rb3
-rw-r--r--features/profile/profile.feature2
-rw-r--r--features/steps/shared/paths.rb4
-rw-r--r--spec/requests/security/profile_access_spec.rb4
15 files changed, 104 insertions, 68 deletions
diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss
index 69a3d743c5a..fda8d54cec8 100644
--- a/app/assets/stylesheets/common.scss
+++ b/app/assets/stylesheets/common.scss
@@ -699,7 +699,14 @@ li.note {
.active {
img {
border:1px solid #ccc;
+ background:$hover;
@include border-radius(5px);
}
}
}
+
+.btn-build-token {
+ float: left;
+ padding: 6px 20px;
+ margin-right: 12px;
+}
diff --git a/app/assets/stylesheets/main.scss b/app/assets/stylesheets/main.scss
index 9a6d44563b3..75001d3a7c3 100644
--- a/app/assets/stylesheets/main.scss
+++ b/app/assets/stylesheets/main.scss
@@ -161,6 +161,11 @@ $hover: #fdf5d9;
@import "sections/notes.scss";
/**
+ * This file represent profile styles
+ */
+@import "sections/profile.scss";
+
+/**
* Devise styles
*/
@import "sections/login.scss";
diff --git a/app/assets/stylesheets/sections/profile.scss b/app/assets/stylesheets/sections/profile.scss
new file mode 100644
index 00000000000..206da3a95f7
--- /dev/null
+++ b/app/assets/stylesheets/sections/profile.scss
@@ -0,0 +1,8 @@
+.profile_history {
+ .event_feed {
+ min-height:20px;
+ .avatar {
+ width:20px;
+ }
+ }
+}
diff --git a/app/controllers/profile_controller.rb b/app/controllers/profile_controller.rb
index a95a331096a..ba68af2e84c 100644
--- a/app/controllers/profile_controller.rb
+++ b/app/controllers/profile_controller.rb
@@ -32,10 +32,14 @@ class ProfileController < ApplicationController
def reset_private_token
current_user.reset_authentication_token!
- redirect_to profile_token_path
+ redirect_to profile_account_path
end
- private
+ def history
+ @events = current_user.recent_events.page(params[:page]).per(20)
+ end
+
+ private
def user
@user = current_user
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index fb1393e2279..3e435840bae 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -104,7 +104,8 @@ module ApplicationHelper
# Profile Area
when :profile; current_page?(controller: "profile", action: :show)
- when :password; current_page?(controller: "profile", action: :password)
+ when :history; current_page?(controller: "profile", action: :history)
+ when :account; current_page?(controller: "profile", action: :account)
when :token; current_page?(controller: "profile", action: :token)
when :design; current_page?(controller: "profile", action: :design)
when :ssh_keys; controller.controller_name == "keys"
diff --git a/app/views/layouts/profile.html.haml b/app/views/layouts/profile.html.haml
index 810b346f1cd..62c8db5be12 100644
--- a/app/views/layouts/profile.html.haml
+++ b/app/views/layouts/profile.html.haml
@@ -9,20 +9,20 @@
%li.home{class: tab_class(:profile)}
= link_to "Profile", profile_path
- %li{class: tab_class(:password)}
- = link_to "Authentication", profile_password_path
+ %li{class: tab_class(:account)}
+ = link_to "Account", profile_account_path
%li{class: tab_class(:ssh_keys)}
= link_to keys_path do
SSH Keys
%span.count= current_user.keys.count
- %li{class: tab_class(:token)}
- = link_to "Token", profile_token_path
-
%li{class: tab_class(:design)}
= link_to "Design", profile_design_path
+ %li{class: tab_class(:history)}
+ = link_to "History", profile_history_path
+
.content
= yield
diff --git a/app/views/profile/account.html.haml b/app/views/profile/account.html.haml
new file mode 100644
index 00000000000..6707a8ff443
--- /dev/null
+++ b/app/views/profile/account.html.haml
@@ -0,0 +1,57 @@
+- if Gitlab.config.omniauth_enabled?
+ %fieldset
+ %legend
+ %h3.page_title Social Accounts
+ .oauth_select_holder
+ %p.hint Tip: Click on icon to activate sigin with one of the following services
+ - User.omniauth_providers.each do |provider|
+ %span{class: oauth_active_class(provider) }
+ = link_to authbutton(provider, 32), omniauth_authorize_path(User, provider)
+
+
+%fieldset
+ %legend
+ %h3.page_title
+ Private token
+ %span.cred.right
+ keep it in secret!
+ .padded
+ = form_for @user, url: profile_reset_private_token_path, method: :put do |f|
+ .data
+ %p.slead
+ Private token used to access application resources without authentication.
+ %br
+ It can be used for atom feed or API
+ %p.cgray
+ - if current_user.private_token
+ = text_field_tag "token", current_user.private_token, class: "xxlarge large_text"
+ = f.submit 'Reset', confirm: "Are you sure?", class: "btn primary btn-build-token"
+ - else
+ %span You don`t have one yet. Click generate to fix it.
+ = f.submit 'Generate', class: "btn success btn-build-token"
+
+%fieldset
+ %legend
+ %h3.page_title Password
+ = form_for @user, url: profile_password_path, method: :put do |f|
+ .padded
+ %p.slead After successful password update you will be redirected to login page where you should login with new password
+ -if @user.errors.any?
+ .alert-message.block-message.error
+ %ul
+ - @user.errors.full_messages.each do |msg|
+ %li= msg
+
+ .clearfix
+ = f.label :password
+ .input= f.password_field :password
+ .clearfix
+ = f.label :password_confirmation
+ .input= f.password_field :password_confirmation
+ .actions
+ = f.submit 'Save', class: "btn save-btn"
+
+
+
+
+
diff --git a/app/views/profile/history.html.haml b/app/views/profile/history.html.haml
new file mode 100644
index 00000000000..aa7006c569b
--- /dev/null
+++ b/app/views/profile/history.html.haml
@@ -0,0 +1,5 @@
+.profile_history
+ = render @events
+%hr
+= paginate @events, theme: "gitlab"
+
diff --git a/app/views/profile/password.html.haml b/app/views/profile/password.html.haml
deleted file mode 100644
index 805429e3629..00000000000
--- a/app/views/profile/password.html.haml
+++ /dev/null
@@ -1,29 +0,0 @@
-- if Gitlab.config.omniauth_enabled?
- %h3.page_title Accounts
- %hr
- %p.hint Tip: Click on icon to activate sigin with one of the following services
- .oauth_select_holder
- - User.omniauth_providers.each do |provider|
- %span{class: oauth_active_class(provider) }
- = link_to authbutton(provider, 32), omniauth_authorize_path(User, provider)
-
-.clearfix.prepend-top-20
-%h3.page_title Password
-%hr
-
-= form_for @user, url: profile_password_path, method: :put do |f|
- %p.slead After successful password update you will be redirected to login page where you should login with new password
- -if @user.errors.any?
- .alert-message.block-message.error
- %ul
- - @user.errors.full_messages.each do |msg|
- %li= msg
-
- .clearfix
- = f.label :password
- .input= f.password_field :password
- .clearfix
- = f.label :password_confirmation
- .input= f.password_field :password_confirmation
- .actions
- = f.submit 'Save', class: "btn save-btn"
diff --git a/app/views/profile/show.html.haml b/app/views/profile/show.html.haml
index 5ac84122aa2..7b62529116e 100644
--- a/app/views/profile/show.html.haml
+++ b/app/views/profile/show.html.haml
@@ -33,13 +33,13 @@
%ul
-unless Gitlab.config.disable_gravatar?
%li
- %p.hint You can change your avatar at gravatar.com
+ %p.hint You can change your avatar at #{link_to "gravatar.com", "http://gravatar.com"}
- if Gitlab.config.omniauth_enabled? && @user.provider?
%li
%p.hint
You can login through #{@user.provider.titleize}!
- = link_to "click here to change", profile_password_path
+ = link_to "click here to change", profile_account_path
%hr
.row
diff --git a/app/views/profile/token.html.haml b/app/views/profile/token.html.haml
deleted file mode 100644
index 6c870c364de..00000000000
--- a/app/views/profile/token.html.haml
+++ /dev/null
@@ -1,23 +0,0 @@
-%h3.page_title
- Private token
- %span.cred.right
- keep it in secret!
-%hr
-= form_for @user, url: profile_reset_private_token_path, method: :put do |f|
- .data
- %p.slead
- Private token used to access application resources without authentication.
- %br
- It can be used for atom feed or API
- %p.cgray
- - if current_user.private_token
- = text_field_tag "token", current_user.private_token, class: "xxlarge large_text"
- - else
- You don`t have one yet. Click generate to fix it.
- .actions
- - if current_user.private_token
- = f.submit 'Reset', confirm: "Are you sure?", class: "btn"
- - else
- = f.submit 'Generate', class: "btn primary"
-
-
diff --git a/config/routes.rb b/config/routes.rb
index ed5eac0ddd0..84a0c6ab170 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -63,7 +63,8 @@ Gitlab::Application.routes.draw do
#
# Profile Area
#
- get "profile/password", :to => "profile#password"
+ get "profile/account", :to => "profile#account"
+ get "profile/history", :to => "profile#history"
put "profile/password", :to => "profile#password_update"
get "profile/token", :to => "profile#token"
put "profile/reset_private_token", :to => "profile#reset_private_token"
diff --git a/features/profile/profile.feature b/features/profile/profile.feature
index f4b2f198f0a..03cb7a13a6e 100644
--- a/features/profile/profile.feature
+++ b/features/profile/profile.feature
@@ -12,7 +12,7 @@ Feature: Profile
And I should see new contact info
Scenario: I change my password
- Given I visit profile password page
+ Given I visit profile account page
Then I change my password
And I should be redirected to sign in page
diff --git a/features/steps/shared/paths.rb b/features/steps/shared/paths.rb
index 05ae88e63e9..b0028f9c27e 100644
--- a/features/steps/shared/paths.rb
+++ b/features/steps/shared/paths.rb
@@ -21,8 +21,8 @@ module SharedPaths
visit profile_path
end
- Given 'I visit profile password page' do
- visit profile_password_path
+ Given 'I visit profile account page' do
+ visit profile_account_path
end
Given 'I visit profile token page' do
diff --git a/spec/requests/security/profile_access_spec.rb b/spec/requests/security/profile_access_spec.rb
index 9f6fe6a2b50..69c1c29cf12 100644
--- a/spec/requests/security/profile_access_spec.rb
+++ b/spec/requests/security/profile_access_spec.rb
@@ -28,8 +28,8 @@ describe "Users Security" do
it { should be_denied_for :visitor }
end
- describe "GET /profile/password" do
- subject { profile_password_path }
+ describe "GET /profile/account" do
+ subject { profile_account_path }
it { should be_allowed_for @u1 }
it { should be_allowed_for :admin }