debian-mirror-gitlab/app/views/shared/projects/_project.html.haml

110 lines
6.6 KiB
Text
Raw Normal View History

2015-09-25 12:07:36 +05:30
- avatar = true unless local_assigns[:avatar] == false
- stars = true unless local_assigns[:stars] == false
2019-02-15 15:39:39 +05:30
- 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
2015-10-24 18:46:33 +05:30
- skip_namespace = false unless local_assigns[:skip_namespace] == true
2018-11-08 19:23:39 +05:30
- access = max_project_member_access(project)
2019-02-15 15:39:39 +05:30
- compact_mode = false unless local_assigns[:compact_mode] == true
2018-03-27 19:54:05 +05:30
- show_last_commit_as_description = false unless local_assigns[:show_last_commit_as_description] == true && can_show_last_commit_in_list?(project)
2019-02-15 15:39:39 +05:30
- css_class = '' unless local_assigns[:css_class]
2016-04-02 18:10:28 +05:30
- css_class += " no-description" if project.description.blank? && !show_last_commit_as_description
2019-07-07 11:18:12 +05:30
- cache_key = project_list_cache_key(project, pipeline_status: pipeline_status)
2017-09-10 17:25:29 +05:30
- updated_tooltip = time_ago_with_tooltip(project.last_activity_date)
2021-04-17 20:07:23 +05:30
- show_pipeline_status_icon = pipeline_status && can?(current_user, :read_cross_project) && project.pipeline_status.has_status? && can?(current_user, :read_build, project)
- last_pipeline = project.last_pipeline if show_pipeline_status_icon
2019-12-21 20:55:43 +05:30
- css_controls_class = compact_mode ? [] : ["flex-lg-row", "justify-content-lg-between"]
2021-04-17 20:07:23 +05:30
- css_controls_class << "with-pipeline-status" if show_pipeline_status_icon && last_pipeline.present?
2019-07-07 11:18:12 +05:30
- avatar_container_class = project.creator && use_creator_avatar ? '' : 'rect-avatar'
2019-02-15 15:39:39 +05:30
%li.project-row.d-flex{ class: css_class }
= cache(cache_key) do
2017-08-17 22:00:37 +05:30
- if avatar
2019-07-07 11:18:12 +05:30
.avatar-container.s48.flex-grow-0.flex-shrink-0{ class: avatar_container_class }
2017-08-17 22:00:37 +05:30
= link_to project_path(project), class: dom_class(project) do
2017-09-10 17:25:29 +05:30
- if project.creator && use_creator_avatar
2021-04-29 21:17:54 +05:30
= image_tag avatar_icon_for_user(project.creator, 48), class: "avatar s48", alt: ''
2017-08-17 22:00:37 +05:30
- else
2019-03-02 22:35:43 +05:30
= project_icon(project, alt: '', class: 'avatar project-avatar s48', width: 48, height: 48)
2020-10-24 23:57:45 +05:30
.project-details.d-sm-flex.flex-sm-fill.align-items-center{ data: { qa_selector: 'project_content', qa_project_name: project.name } }
2019-03-02 22:35:43 +05:30
.flex-wrapper
.d-flex.align-items-center.flex-wrap.project-title
2020-06-23 00:09:42 +05:30
%h2.d-flex.gl-mt-3
2022-01-26 12:08:38 +05:30
= link_to project_path(project), class: 'text-plain js-prefetch-document' do
2020-06-23 00:09:42 +05:30
%span.project-full-name.gl-mr-3><
2019-02-15 15:39:39 +05:30
%span.namespace-name
- if project.namespace && !skip_namespace
= project.namespace.human_name
\/
%span.project-name<
= project.name
2020-07-28 23:09:34 +05:30
%span.metadata-info.visibility-icon.gl-mr-3.gl-mt-3.text-secondary.has-tooltip{ data: { container: 'body', placement: 'top' }, title: visibility_icon_description(project) }
2020-10-24 23:57:45 +05:30
= visibility_level_icon(project.visibility_level)
2019-02-15 15:39:39 +05:30
2020-07-28 23:09:34 +05:30
- if explore_projects_tab? && project_license_name(project)
%span.metadata-info.d-inline-flex.align-items-center.gl-mr-3.gl-mt-3
= sprite_icon('scale', size: 14, css_class: 'gl-mr-2')
= project_license_name(project)
2019-02-15 15:39:39 +05:30
- if !explore_projects_tab? && access&.nonzero?
-# haml-lint:disable UnnecessaryStringOutput
= ' ' # prevent haml from eating the space between elements
2020-06-23 00:09:42 +05:30
.metadata-info.gl-mt-3
2020-10-24 23:57:45 +05:30
%span.user-access-role.d-block{ data: { qa_selector: 'user_role_content' } }= Gitlab::Access.human_access(access)
2019-02-15 15:39:39 +05:30
2020-04-22 19:07:51 +05:30
- if !explore_projects_tab?
2020-06-23 00:09:42 +05:30
.metadata-info.gl-mt-3
2020-04-22 19:07:51 +05:30
= render_if_exists 'compliance_management/compliance_framework/compliance_framework_badge', project: project
2019-02-15 15:39:39 +05:30
- if show_last_commit_as_description
2020-07-28 23:09:34 +05:30
.description.d-none.d-sm-block.gl-mr-3
2019-02-15 15:39:39 +05:30
= link_to_markdown(project.commit.title, project_commit_path(project, project.commit), class: "commit-row-message")
- elsif project.description.present?
2020-07-28 23:09:34 +05:30
.description.d-none.d-sm-block.gl-mr-3
2019-02-15 15:39:39 +05:30
= markdown_field(project, :description)
2021-10-27 15:23:28 +05:30
- if project.topics.any?
.gl-mt-2
= render "shared/projects/topics", project: project.present(current_user: current_user)
2020-10-24 23:57:45 +05:30
= render_if_exists 'shared/projects/removed', project: project
2019-12-21 20:55:43 +05:30
.controls.d-flex.flex-sm-column.align-items-center.align-items-sm-end.flex-wrap.flex-shrink-0.text-secondary{ class: css_controls_class.join(" ") }
2019-02-15 15:39:39 +05:30
.icon-container.d-flex.align-items-center
2021-04-17 20:07:23 +05:30
- if show_pipeline_status_icon && last_pipeline.present?
2019-12-04 20:38:33 +05:30
- pipeline_path = pipelines_project_commit_path(project.pipeline_status.project, project.pipeline_status.sha, ref: project.pipeline_status.ref)
%span.icon-wrapper.pipeline-status
2021-04-17 20:07:23 +05:30
= render 'ci/status/icon', status: last_pipeline.detailed_status(current_user), tooltip_placement: 'top', path: pipeline_path
2019-12-04 20:38:33 +05:30
2020-01-01 13:55:28 +05:30
= render_if_exists 'shared/projects/archived', project: project
2019-02-15 15:39:39 +05:30
- if stars
2019-10-12 21:52:04 +05:30
= link_to project_starrers_path(project),
class: "d-flex align-items-center icon-wrapper stars has-tooltip",
title: _('Stars'), data: { container: 'body', placement: 'top' } do
2020-07-28 23:09:34 +05:30
= sprite_icon('star', size: 14, css_class: 'gl-mr-2')
2019-02-15 15:39:39 +05:30
= 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
2020-07-28 23:09:34 +05:30
= sprite_icon('fork', size: 14, css_class: 'gl-mr-2')
2019-02-15 15:39:39 +05:30
= number_with_delimiter(project.forks_count)
- if show_merge_request_count?(disabled: !merge_requests, compact_mode: compact_mode)
= link_to project_merge_requests_path(project),
2019-03-02 22:35:43 +05:30
class: "d-none d-xl-flex align-items-center icon-wrapper merge-requests has-tooltip",
2021-04-29 21:17:54 +05:30
title: _('Merge requests'), data: { container: 'body', placement: 'top' } do
2020-07-28 23:09:34 +05:30
= sprite_icon('git-merge', size: 14, css_class: 'gl-mr-2')
2019-02-15 15:39:39 +05:30
= number_with_delimiter(project.open_merge_requests_count)
- if show_issue_count?(disabled: !issues, compact_mode: compact_mode)
= link_to project_issues_path(project),
2019-03-02 22:35:43 +05:30
class: "d-none d-xl-flex align-items-center icon-wrapper issues has-tooltip",
2019-02-15 15:39:39 +05:30
title: _('Issues'), data: { container: 'body', placement: 'top' } do
2020-07-28 23:09:34 +05:30
= sprite_icon('issues', size: 14, css_class: 'gl-mr-2')
2019-02-15 15:39:39 +05:30
= number_with_delimiter(project.open_issues_count)
.updated-note
2019-10-12 21:52:04 +05:30
%span
= _('Updated')
= updated_tooltip