debian-mirror-gitlab/app/views/users/show.html.haml

172 lines
8.1 KiB
Plaintext
Raw Normal View History

2017-09-10 17:25:29 +05:30
- @hide_top_links = true
- @hide_breadcrumbs = true
2019-12-04 20:38:33 +05:30
- @no_container = true
2020-01-01 13:55:28 +05:30
- page_title @user.blocked? ? s_('UserProfile|Blocked user') : @user.name
- page_description @user.bio
- header_title @user.name, user_path(@user)
2020-04-08 14:13:33 +05:30
- link_classes = "flex-grow-1 mx-1 "
2015-09-11 14:41:01 +05:30
= content_for :meta_tags do
= auto_discovery_link_tag(:atom, user_url(@user, format: :atom), title: "#{@user.name} activity")
2016-06-02 11:05:42 +05:30
.user-profile
2019-09-30 21:07:59 +05:30
.cover-block.user-cover-block{ class: [('border-bottom' if profile_tabs.empty?)] }
2020-04-08 14:13:33 +05:30
= render layout: 'users/cover_controls' do
2016-06-02 11:05:42 +05:30
- if @user == current_user
2020-11-24 15:15:51 +05:30
= link_to profile_path, class: link_classes + 'btn gl-button btn-default has-tooltip', title: s_('UserProfile|Edit profile'), 'aria-label': 'Edit profile' do
2020-10-24 23:57:45 +05:30
= sprite_icon('pencil')
2016-06-02 11:05:42 +05:30
- elsif current_user
2016-11-03 12:29:30 +05:30
- if @user.abuse_report
2020-11-24 15:15:51 +05:30
%button{ class: link_classes + 'btn gl-button btn-danger', title: s_('UserProfile|Already reported for abuse'),
data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } }>
= sprite_icon('error')
2016-11-03 12:29:30 +05:30
- else
2020-11-24 15:15:51 +05:30
= link_to new_abuse_report_path(user_id: @user.id, ref_url: request.referrer), class: link_classes + 'btn gl-button',
2018-12-05 23:21:45 +05:30
title: s_('UserProfile|Report abuse'), data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do
2020-11-24 15:15:51 +05:30
= sprite_icon('error')
2018-11-18 11:00:15 +05:30
- if can?(current_user, :read_user_profile, @user)
2020-11-24 15:15:51 +05:30
= link_to user_path(@user, rss_url_options), class: link_classes + 'btn gl-button btn-svg btn-default has-tooltip', title: s_('UserProfile|Subscribe'), 'aria-label': 'Subscribe' do
2020-10-24 23:57:45 +05:30
= sprite_icon('rss', css_class: 'qa-rss-icon')
2017-08-17 22:00:37 +05:30
- if current_user && current_user.admin?
2020-11-24 15:15:51 +05:30
= link_to [:admin, @user], class: link_classes + 'btn gl-button btn-default', title: s_('UserProfile|View user in admin area'),
2017-08-17 22:00:37 +05:30
data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
2020-11-24 15:15:51 +05:30
= sprite_icon('user')
2016-06-02 11:05:42 +05:30
2019-02-15 15:39:39 +05:30
.profile-header{ class: [('with-no-profile-tabs' if profile_tabs.empty?)] }
2016-11-03 12:29:30 +05:30
.avatar-holder
2018-03-27 19:54:05 +05:30
= link_to avatar_icon_for_user(@user, 400), target: '_blank', rel: 'noopener noreferrer' do
= image_tag avatar_icon_for_user(@user, 90), class: "avatar s90", alt: ''
2016-06-02 11:05:42 +05:30
2020-01-01 13:55:28 +05:30
- if @user.blocked?
.user-info
.cover-title
= s_('UserProfile|Blocked user')
= render "users/profile_basic_info"
- else
.user-info
.cover-title
= @user.name
- if @user.status
.cover-status
= emoji_icon(@user.status.emoji)
= markdown_field(@user.status, :message)
= render "users/profile_basic_info"
2020-04-08 14:13:33 +05:30
.cover-desc.cgray.mb-1.mb-sm-2
- unless @user.location.blank?
.profile-link-holder.middle-dot-divider-sm.d-block.d-sm-inline.mb-1.mb-sm-0
2020-10-24 23:57:45 +05:30
= sprite_icon('location', css_class: 'vertical-align-sub fgray')
2020-04-08 14:13:33 +05:30
%span.vertical-align-middle
= @user.location
- unless work_information(@user).blank?
.profile-link-holder.middle-dot-divider-sm.d-block.d-sm-inline
2020-10-24 23:57:45 +05:30
= sprite_icon('work', css_class: 'vertical-align-middle fgray')
2020-04-08 14:13:33 +05:30
%span.vertical-align-middle
= work_information(@user)
.cover-desc.cgray.mb-1.mb-sm-2
2020-01-01 13:55:28 +05:30
- unless @user.skype.blank?
.profile-link-holder.middle-dot-divider
= link_to "skype:#{@user.skype}", title: "Skype" do
= icon('skype')
- unless @user.linkedin.blank?
.profile-link-holder.middle-dot-divider
= link_to linkedin_url(@user), title: "LinkedIn", target: '_blank', rel: 'noopener noreferrer nofollow' do
= icon('linkedin-square')
- unless @user.twitter.blank?
2020-04-08 14:13:33 +05:30
.profile-link-holder.middle-dot-divider-sm
2020-01-01 13:55:28 +05:30
= link_to twitter_url(@user), title: "Twitter", target: '_blank', rel: 'noopener noreferrer nofollow' do
= icon('twitter-square')
- unless @user.website_url.blank?
2020-04-08 14:13:33 +05:30
.profile-link-holder.middle-dot-divider-sm.d-block.d-sm-inline.mt-1.mt-sm-0
2020-01-01 13:55:28 +05:30
= link_to @user.short_website_url, @user.full_website_url, class: 'text-link', target: '_blank', rel: 'me noopener noreferrer nofollow'
2020-04-08 14:13:33 +05:30
- unless @user.public_email.blank?
.profile-link-holder.middle-dot-divider-sm.d-block.d-sm-inline.mt-1.mt-sm-0
= link_to @user.public_email, "mailto:#{@user.public_email}", class: 'text-link'
2019-02-15 15:39:39 +05:30
- if @user.bio.present?
2019-09-04 21:01:54 +05:30
.cover-desc.cgray
2020-10-24 23:57:45 +05:30
.profile-user-bio
2020-07-28 23:09:34 +05:30
= markdown(@user.bio_html)
2016-06-02 11:05:42 +05:30
2018-11-18 11:00:15 +05:30
- unless profile_tabs.empty?
.scrolling-tabs-container
2020-07-28 23:09:34 +05:30
.fade-left= sprite_icon('chevron-lg-left', size: 12)
.fade-right= sprite_icon('chevron-lg-right', size: 12)
2018-11-18 11:00:15 +05:30
%ul.nav-links.user-profile-nav.scrolling-tabs.nav.nav-tabs
2018-12-05 23:21:45 +05:30
- if profile_tab?(:overview)
%li.js-overview-tab
= link_to user_path, data: { target: 'div#js-overview', action: 'overview', toggle: 'tab' } do
= s_('UserProfile|Overview')
2018-11-18 11:00:15 +05:30
- if profile_tab?(:activity)
%li.js-activity-tab
2018-12-05 23:21:45 +05:30
= link_to user_activity_path, data: { target: 'div#activity', action: 'activity', toggle: 'tab' } do
= s_('UserProfile|Activity')
2018-11-18 11:00:15 +05:30
- if profile_tab?(:groups)
%li.js-groups-tab
= link_to user_groups_path, data: { target: 'div#groups', action: 'groups', toggle: 'tab', endpoint: user_groups_path(format: :json) } do
2018-12-05 23:21:45 +05:30
= s_('UserProfile|Groups')
2018-11-18 11:00:15 +05:30
- if profile_tab?(:contributed)
%li.js-contributed-tab
= link_to user_contributed_projects_path, data: { target: 'div#contributed', action: 'contributed', toggle: 'tab', endpoint: user_contributed_projects_path(format: :json) } do
2018-12-05 23:21:45 +05:30
= s_('UserProfile|Contributed projects')
2018-11-18 11:00:15 +05:30
- if profile_tab?(:projects)
%li.js-projects-tab
= link_to user_projects_path, data: { target: 'div#projects', action: 'projects', toggle: 'tab', endpoint: user_projects_path(format: :json) } do
2018-12-05 23:21:45 +05:30
= s_('UserProfile|Personal projects')
2019-10-12 21:52:04 +05:30
- if profile_tab?(:starred)
%li.js-starred-tab
= link_to user_starred_projects_path, data: { target: 'div#starred', action: 'starred', toggle: 'tab', endpoint: user_starred_projects_path(format: :json) } do
= s_('UserProfile|Starred projects')
2018-11-18 11:00:15 +05:30
- if profile_tab?(:snippets)
%li.js-snippets-tab
= link_to user_snippets_path, data: { target: 'div#snippets', action: 'snippets', toggle: 'tab', endpoint: user_snippets_path(format: :json) } do
2018-12-05 23:21:45 +05:30
= s_('UserProfile|Snippets')
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
%div{ class: container_class }
.tab-content
2018-12-05 23:21:45 +05:30
- if profile_tab?(:overview)
#js-overview.tab-pane
= render "users/overview"
2018-03-27 19:54:05 +05:30
- if profile_tab?(:activity)
#activity.tab-pane
- if can?(current_user, :read_cross_project)
%h4.prepend-top-20
2018-12-05 23:21:45 +05:30
= s_('UserProfile|Most Recent Activity')
2018-03-27 19:54:05 +05:30
.content_list{ data: { href: user_path } }
2020-03-13 15:44:24 +05:30
.loading
.spinner.spinner-md
2015-11-26 14:37:03 +05:30
2018-03-27 19:54:05 +05:30
- if profile_tab?(:groups)
#groups.tab-pane
-# This tab is always loaded via AJAX
2015-04-26 12:48:37 +05:30
2018-03-27 19:54:05 +05:30
- if profile_tab?(:contributed)
#contributed.tab-pane
-# This tab is always loaded via AJAX
2016-06-02 11:05:42 +05:30
2018-03-27 19:54:05 +05:30
- if profile_tab?(:projects)
#projects.tab-pane
-# This tab is always loaded via AJAX
2016-06-02 11:05:42 +05:30
2019-10-12 21:52:04 +05:30
- if profile_tab?(:starred)
#starred.tab-pane
-# This tab is always loaded via AJAX
2018-03-27 19:54:05 +05:30
- if profile_tab?(:snippets)
#snippets.tab-pane
-# This tab is always loaded via AJAX
2016-06-02 11:05:42 +05:30
2020-03-13 15:44:24 +05:30
.loading.hide
.spinner.spinner-md
2018-11-18 11:00:15 +05:30
2020-10-24 23:57:45 +05:30
- if profile_tabs.empty?
.svg-content
= image_tag 'illustrations/profile_private_mode.svg'
.text-content.text-center
%h4
- if @user.blocked?
= s_('UserProfile|This user is blocked')
- else
= s_('UserProfile|This user has a private profile')