2013-11-06 10:13:21 -05:00
|
|
|
- empty_repo = @project.empty_repo?
|
2018-12-07 09:11:42 -05:00
|
|
|
- show_auto_devops_callout = show_auto_devops_callout?(@project)
|
2019-02-28 05:37:39 -05:00
|
|
|
- max_project_topic_length = 15
|
2019-05-29 05:24:35 -04:00
|
|
|
.project-home-panel{ class: [("empty-project" if empty_repo), ("js-keep-hidden-on-navigation" if vue_file_list_enabled?)] }
|
2019-01-21 15:52:53 -05:00
|
|
|
.row.append-bottom-8
|
|
|
|
.home-panel-title-row.col-md-12.col-lg-6.d-flex
|
2019-02-25 08:00:05 -05:00
|
|
|
.avatar-container.rect-avatar.s64.home-panel-avatar.append-right-default.float-none
|
2018-12-07 09:11:42 -05:00
|
|
|
= project_icon(@project, alt: @project.name, class: 'avatar avatar-tile s64', width: 64, height: 64)
|
|
|
|
.d-flex.flex-column.flex-wrap.align-items-baseline
|
|
|
|
.d-inline-flex.align-items-baseline
|
2019-01-21 15:52:53 -05:00
|
|
|
%h1.home-panel-title.prepend-top-8.append-bottom-5.qa-project-name
|
2018-12-07 09:11:42 -05:00
|
|
|
= @project.name
|
2019-01-21 15:52:53 -05:00
|
|
|
%span.visibility-icon.text-secondary.prepend-left-4.has-tooltip{ data: { container: 'body' }, title: visibility_icon_description(@project) }
|
2018-12-07 09:11:42 -05:00
|
|
|
= visibility_level_icon(@project.visibility_level, fw: false, options: {class: 'icon'})
|
2019-03-31 05:55:56 -04:00
|
|
|
.home-panel-metadata.d-flex.flex-wrap.text-secondary
|
2018-12-07 09:11:42 -05:00
|
|
|
- if can?(current_user, :read_project, @project)
|
|
|
|
%span.text-secondary
|
|
|
|
= s_('ProjectPage|Project ID: %{project_id}') % { project_id: @project.id }
|
|
|
|
- if current_user
|
|
|
|
%span.access-request-links.prepend-left-8
|
|
|
|
= render 'shared/members/access_request_links', source: @project
|
|
|
|
- if @project.tag_list.present?
|
2019-03-31 05:55:56 -04:00
|
|
|
%span.home-panel-topic-list.mt-2.w-100.d-inline-flex
|
2018-12-07 09:11:42 -05:00
|
|
|
= sprite_icon('tag', size: 16, css_class: 'icon append-right-4')
|
2019-02-05 18:12:02 -05:00
|
|
|
|
|
|
|
- @project.topics_to_show.each do |topic|
|
2019-02-28 05:37:39 -05:00
|
|
|
- project_topics_classes = "badge badge-pill badge-secondary append-right-5"
|
|
|
|
- explore_project_topic_path = explore_projects_path(tag: topic)
|
|
|
|
- if topic.length > max_project_topic_length
|
|
|
|
%a{ class: "#{ project_topics_classes } str-truncated-30 has-tooltip", data: { container: "body" }, title: topic, href: explore_project_topic_path }
|
|
|
|
= topic.titleize
|
|
|
|
- else
|
|
|
|
%a{ class: project_topics_classes, href: explore_project_topic_path }
|
|
|
|
= topic.titleize
|
2019-02-05 18:12:02 -05:00
|
|
|
|
2019-01-10 15:08:41 -05:00
|
|
|
- if @project.has_extra_topics?
|
2019-02-28 05:37:39 -05:00
|
|
|
.text-nowrap.has-tooltip{ data: { container: 'body' }, title: @project.has_extra_topics? ? @project.topics_not_shown.join(', ') : nil }
|
2019-02-05 18:12:02 -05:00
|
|
|
= _("+ %{count} more") % { count: @project.count_of_extra_topics_not_shown }
|
2016-02-18 18:08:11 -05:00
|
|
|
|
2019-01-10 15:08:41 -05:00
|
|
|
|
2018-12-14 07:34:03 -05:00
|
|
|
.project-repo-buttons.col-md-12.col-lg-6.d-inline-flex.flex-wrap.justify-content-lg-end
|
2018-12-07 09:11:42 -05:00
|
|
|
- if current_user
|
|
|
|
.d-inline-flex
|
2019-01-21 15:52:53 -05:00
|
|
|
= render 'shared/notifications/new_button', notification_setting: @notification_setting, btn_class: 'btn-xs'
|
2018-09-06 03:27:39 -04:00
|
|
|
|
|
|
|
.count-buttons.d-inline-flex
|
2016-06-29 08:07:12 -04:00
|
|
|
= render 'projects/buttons/star'
|
|
|
|
= render 'projects/buttons/fork'
|
2015-09-24 12:36:15 -04:00
|
|
|
|
2018-09-06 03:27:39 -04:00
|
|
|
- if can?(current_user, :download_code, @project)
|
2018-12-07 09:11:42 -05:00
|
|
|
.project-clone-holder.d-inline-flex.d-md-none.btn-block
|
2018-09-06 03:27:39 -04:00
|
|
|
= render "shared/mobile_clone_panel"
|
2016-12-14 16:51:25 -05:00
|
|
|
|
2018-12-07 09:11:42 -05:00
|
|
|
.project-clone-holder.d-none.d-md-inline-flex
|
|
|
|
= render "projects/buttons/clone"
|
2018-06-05 06:10:34 -04:00
|
|
|
|
2018-12-07 09:11:42 -05:00
|
|
|
- if can?(current_user, :download_code, @project)
|
|
|
|
%nav.project-stats
|
2019-01-21 15:52:53 -05:00
|
|
|
.nav-links.quick-links
|
2019-03-12 10:20:52 -04:00
|
|
|
- if @project.empty_repo?
|
|
|
|
= render 'stat_anchor_list', anchors: @project.empty_repo_statistics_anchors
|
|
|
|
- else
|
|
|
|
= render 'stat_anchor_list', anchors: @project.statistics_anchors(show_auto_devops_callout: show_auto_devops_callout)
|
2018-09-06 03:27:39 -04:00
|
|
|
|
2019-01-21 15:52:53 -05:00
|
|
|
.home-panel-home-desc.mt-1
|
2018-12-07 09:11:42 -05:00
|
|
|
- if @project.description.present?
|
2019-06-12 15:12:33 -04:00
|
|
|
.home-panel-description.text-break
|
2019-01-21 15:52:53 -05:00
|
|
|
.home-panel-description-markdown.read-more-container
|
2018-12-07 09:11:42 -05:00
|
|
|
= markdown_field(@project, :description)
|
|
|
|
%button.btn.btn-blank.btn-link.js-read-more-trigger.d-lg-none{ type: "button" }
|
|
|
|
= _("Read more")
|
|
|
|
|
|
|
|
- if @project.forked?
|
|
|
|
%p
|
|
|
|
- if @project.fork_source
|
|
|
|
#{ s_('ForkedFromProjectPath|Forked from') }
|
|
|
|
= link_to project_path(@project.fork_source) do
|
|
|
|
= fork_source_name(@project)
|
|
|
|
- else
|
|
|
|
- deleted_message = s_('ForkedFromProjectPath|Forked from %{project_name} (deleted)')
|
|
|
|
= deleted_message % { project_name: fork_source_name(@project) }
|
2017-02-13 03:45:10 -05:00
|
|
|
|
2019-04-25 04:43:21 -04:00
|
|
|
= render_if_exists "projects/home_mirror"
|
|
|
|
|
2018-12-07 09:11:42 -05:00
|
|
|
- if @project.badges.present?
|
|
|
|
.project-badges.mb-2
|
|
|
|
- @project.badges.each do |badge|
|
|
|
|
%a.append-right-8{ href: badge.rendered_link_url(@project),
|
|
|
|
target: '_blank',
|
|
|
|
rel: 'noopener noreferrer' }>
|
|
|
|
%img.project-badge{ src: badge.rendered_image_url(@project),
|
|
|
|
'aria-hidden': true,
|
|
|
|
alt: 'Project badge' }>
|