Welcome to mirror list, hosted at ThFree Co, Russian Federation.

_project.html.haml « projects « shared « views « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 9dde77fccefdf59c0f6d283fb6bee580b9412d09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
- avatar = true unless local_assigns[:avatar] == false
- stars = true unless local_assigns[:stars] == false
- forks = true unless local_assigns[:forks] == false
- merge_requests = true unless local_assigns[:merge_requests] == false
- issues = true unless local_assigns[:issues] == false
- pipeline_status = true unless local_assigns[:pipeline_status] == false
- skip_namespace = false unless local_assigns[:skip_namespace] == true
- access = max_project_member_access(project)
- compact_mode = false unless local_assigns[:compact_mode] == true
- show_last_commit_as_description = false unless local_assigns[:show_last_commit_as_description] == true && can_show_last_commit_in_list?(project)
- css_class = '' unless local_assigns[:css_class]
- css_class += " no-description" if project.description.blank? && !show_last_commit_as_description
- cache_key = project_list_cache_key(project)
- updated_tooltip = time_ago_with_tooltip(project.last_activity_date)
- css_details_class = compact_mode ? "d-flex flex-column flex-sm-row flex-md-row align-items-sm-center" : "align-items-center flex-md-fill flex-lg-column d-sm-flex d-lg-block"
- css_controls_class = compact_mode ? "" : "align-items-md-end align-items-lg-center flex-lg-row"

%li.project-row.d-flex{ class: css_class }
  = cache(cache_key) do
    - if avatar
      .avatar-container.s64.flex-grow-0.flex-shrink-0
        = link_to project_path(project), class: dom_class(project) do
          - if project.creator && use_creator_avatar
            = image_tag avatar_icon_for_user(project.creator, 64), class: "avatar s65", alt:''
          - else
            = project_icon(project, alt: '', class: 'avatar project-avatar s64', width: 64, height: 64)
    .project-details.flex-sm-fill{ class: css_details_class }
      .flex-wrapper.flex-fill
        .d-flex.align-items-center.flex-wrap
          %h2.d-flex.prepend-top-8
            = link_to project_path(project), class: 'text-plain' do
              %span.project-full-name.append-right-8><
                %span.namespace-name
                  - if project.namespace && !skip_namespace
                    = project.namespace.human_name
                    \/
                %span.project-name<
                  = project.name

          %span.metadata-info.visibility-icon.append-right-10.prepend-top-8.has-tooltip{ data: { container: 'body', placement: 'top' }, title: visibility_icon_description(project) }
            = visibility_level_icon(project.visibility_level, fw: true)

          - if explore_projects_tab? && project.repository.license
            %span.metadata-info.d-inline-flex.align-items-center.append-right-10.prepend-top-8
              = sprite_icon('scale', size: 14, css_class: 'append-right-4')
              = project.repository.license.name

          - if !explore_projects_tab? && access&.nonzero?
            -# haml-lint:disable UnnecessaryStringOutput
            = ' ' # prevent haml from eating the space between elements
            .metadata-info.prepend-top-8
              %span.user-access-role.d-block= Gitlab::Access.human_access(access)

        - if show_last_commit_as_description
          .description.d-none.d-sm-block.prepend-top-8.append-right-default
            = link_to_markdown(project.commit.title, project_commit_path(project, project.commit), class: "commit-row-message")
        - elsif project.description.present?
          .description.d-none.d-sm-block.prepend-top-8.append-right-default
            = markdown_field(project, :description)

      .controls.d-flex.flex-row.flex-sm-column.flex-md-column.align-items-center.align-items-sm-end.flex-wrap.flex-shrink-0{ class: css_controls_class }
        .icon-container.d-flex.align-items-center
          - if project.archived
            %span.d-flex.icon-wrapper.badge.badge-warning archived
          - if stars
            %span.d-flex.align-items-center.icon-wrapper.stars.has-tooltip{ data: { container: 'body', placement: 'top' }, title: _('Stars') }
              = sprite_icon('star', size: 14, css_class: 'append-right-4')
              = number_with_delimiter(project.star_count)
          - if forks
            = link_to project_forks_path(project),
                class: "align-items-center icon-wrapper forks has-tooltip",
                title: _('Forks'), data: { container: 'body', placement: 'top' } do
              = sprite_icon('fork', size: 14, css_class: 'append-right-4')
              = number_with_delimiter(project.forks_count)
          - if show_merge_request_count?(merge_requests, compact_mode)
            = link_to project_merge_requests_path(project),
                class: "d-none d-lg-flex align-items-center icon-wrapper merge-requests has-tooltip",
                title: _('Merge Requests'), data: { container: 'body', placement: 'top' } do
              = sprite_icon('git-merge', size: 14, css_class: 'append-right-4')
              = number_with_delimiter(project.open_merge_requests_count)
          - if show_issue_count?(issues, compact_mode)
            = link_to project_issues_path(project),
                class: "d-none d-lg-flex align-items-center icon-wrapper issues has-tooltip",
                title: _('Issues'), data: { container: 'body', placement: 'top' } do
              = sprite_icon('issues', size: 14, css_class: 'append-right-4')
              = number_with_delimiter(project.open_issues_count)
          - if pipeline_status && can?(current_user, :read_cross_project) && project.pipeline_status.has_status?
            %span.icon-wrapper.pipeline-status
              = render_project_pipeline_status(project.pipeline_status, tooltip_placement: 'top')
        .updated-note
          %span Updated #{updated_tooltip}

    .d-none.d-lg-flex.align-item-stretch
      - unless compact_mode
        - if current_user
          %button.star-button.btn.btn-default.d-flex.align-items-center.star-btn.toggle-star{ type: "button", data: { endpoint: toggle_star_project_path(project, :json) } }
            - if current_user.starred?(project)
              = sprite_icon('star', { css_class: 'icon' })
              %span.starred= s_('ProjectOverview|Unstar')
            - else
              = sprite_icon('star-o', { css_class: 'icon' })
              %span= s_('ProjectOverview|Star')

        - else
          = link_to new_user_session_path, class: 'btn btn-default has-tooltip count-badge-button d-flex align-items-center star-btn', title: s_('ProjectOverview|You must sign in to star a project') do
            = sprite_icon('star-o', { css_class: 'icon' })
            %span= s_('ProjectOverview|Star')