show.html.haml 5.44 KB
Newer Older
1 2
- page_title       @user.name
- page_description @user.bio
3
- content_for :page_specific_javascripts do
4
  = page_specific_javascript_bundle_tag('common_d3')
5
  = page_specific_javascript_bundle_tag('users')
6
- header_title     @user.name, user_path(@user)
7
- @no_container = true
Douwe Maan's avatar
Douwe Maan committed
8

9
= content_for :meta_tags do
10
  = auto_discovery_link_tag(:atom, user_url(@user, format: :atom), title: "#{@user.name} activity")
11

12
.user-profile
Simon Knox's avatar
Simon Knox committed
13
  .cover-block.user-cover-block.layout-nav
14 15
    .cover-controls
      - if @user == current_user
16
        = link_to profile_path, class: 'btn btn-gray has-tooltip', title: 'Edit profile', 'aria-label': 'Edit profile' do
17 18
          = icon('pencil')
      - elsif current_user
tauriedavis's avatar
tauriedavis committed
19 20
        - if @user.abuse_report
          %button.btn.btn-danger{ title: 'Already reported for abuse',
21
            data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } }
tauriedavis's avatar
tauriedavis committed
22 23 24
            = icon('exclamation-circle')
        - else
          = link_to new_abuse_report_path(user_id: @user.id, ref_url: request.referrer), class: 'btn btn-gray',
25
            title: 'Report abuse', data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do
tauriedavis's avatar
tauriedavis committed
26
            = icon('exclamation-circle')
27
      = link_to user_path(@user, rss_url_options), class: 'btn btn-gray has-tooltip', title: 'Subscribe', 'aria-label': 'Subscribe' do
28 29 30 31 32
        = icon('rss')
      - if current_user && current_user.admin?
        = link_to [:admin, @user], class: 'btn btn-gray', title: 'View user in admin area',
          data: {toggle: 'tooltip', placement: 'bottom', container: 'body'} do
          = icon('users')
33

tauriedavis's avatar
tauriedavis committed
34 35
    .profile-header
      .avatar-holder
36
        = link_to avatar_icon(@user, 400), target: '_blank', rel: 'noopener noreferrer' do
tauriedavis's avatar
tauriedavis committed
37
          = image_tag avatar_icon(@user, 90), class: "avatar s90", alt: ''
38

tauriedavis's avatar
tauriedavis committed
39 40 41
      .user-info
        .cover-title
          = @user.name
Alfredo Sumaran's avatar
Alfredo Sumaran committed
42

tauriedavis's avatar
tauriedavis committed
43
        .cover-desc.member-date
tauriedavis's avatar
tauriedavis committed
44 45
          %span.middle-dot-divider
            @#{@user.username}
tauriedavis's avatar
tauriedavis committed
46
          %span.middle-dot-divider
47
            Member since #{@user.created_at.to_date.to_s(:long)}
tauriedavis's avatar
tauriedavis committed
48

tauriedavis's avatar
tauriedavis committed
49 50 51 52 53 54 55 56 57 58
        .cover-desc
          - unless @user.public_email.blank?
            .profile-link-holder.middle-dot-divider
              = link_to @user.public_email, "mailto:#{@user.public_email}"
          - 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
59
              = link_to linkedin_url(@user), title: "LinkedIn" do
tauriedavis's avatar
tauriedavis committed
60 61 62
                = icon('linkedin-square')
          - unless @user.twitter.blank?
            .profile-link-holder.middle-dot-divider
63
              = link_to twitter_url(@user), title: "Twitter" do
tauriedavis's avatar
tauriedavis committed
64 65 66 67 68 69 70 71
                = icon('twitter-square')
          - unless @user.website_url.blank?
            .profile-link-holder.middle-dot-divider
              = link_to @user.short_website_url, @user.full_website_url
          - unless @user.location.blank?
            .profile-link-holder.middle-dot-divider
              = icon('map-marker')
              = @user.location
72 73 74 75
          - unless @user.organization.blank?
            .profile-link-holder.middle-dot-divider
              = icon('building')
              = @user.organization
76

77 78 79 80
    - if @user.bio.present?
      .cover-desc
        %p.profile-user-bio
          = @user.bio
81

82 83 84
    .scrolling-tabs-container
      .fade-left= icon('angle-left')
      .fade-right= icon('angle-right')
Simon Knox's avatar
Simon Knox committed
85
      %ul.nav-links.user-profile-nav.scrolling-tabs
86
        %li.js-activity-tab
87
          = link_to user_path, data: { target: 'div#activity', action: 'activity', toggle: 'tab' } do
88 89
            Activity
        %li.js-groups-tab
90
          = link_to user_groups_path, data: { target: 'div#groups', action: 'groups', toggle: 'tab', endpoint: user_groups_path(format: :json) } do
91 92
            Groups
        %li.js-contributed-tab
93
          = link_to user_contributed_projects_path, data: { target: 'div#contributed', action: 'contributed', toggle: 'tab', endpoint: user_contributed_projects_path(format: :json) } do
94 95
            Contributed projects
        %li.js-projects-tab
96
          = link_to user_projects_path, data: { target: 'div#projects', action: 'projects', toggle: 'tab', endpoint: user_projects_path(format: :json) } do
97 98
            Personal projects
        %li.js-snippets-tab
99
          = link_to user_snippets_path, data: { target: 'div#snippets', action: 'snippets', toggle: 'tab', endpoint: user_snippets_path(format: :json) } do
100
            Snippets
101

102
  %div{ class: container_class }
103 104
    - if @user == current_user && !show_user_callout?
      = render 'shared/user_callout'
105
    .tab-content
106
      #activity.tab-pane
Annabel Dunstone's avatar
Annabel Dunstone committed
107
        .row-content-block.calender-block.white.second-block.hidden-xs
108
          .user-calendar{ data: { href: user_calendar_path } }
109 110
            %h4.center.light
              %i.fa.fa-spinner.fa-spin
111 112
          .user-calendar-activities

113 114
        %h4.prepend-top-20
          Most Recent Activity
115
        .content_list{ data: { href: user_path } }
116 117 118
        = spinner

      #groups.tab-pane
119
        -# This tab is always loaded via AJAX
120

121
      #contributed.tab-pane
122
        -# This tab is always loaded via AJAX
123 124

      #projects.tab-pane
125
        -# This tab is always loaded via AJAX
126

127
      #snippets.tab-pane
128
        -# This tab is always loaded via AJAX
129

130 131
    .loading-status
      = spinner
132 133

:javascript
134
  var userProfile;
135

136
  userProfile = new gl.User({
137 138
    action: "#{controller.action_name}"
  });