2020-07-28 23:09:34 +05:30
- add_to_breadcrumbs _("Projects"), admin_projects_path
2018-03-27 19:54:05 +05:30
- breadcrumb_title @project.full_name
2020-07-28 23:09:34 +05:30
- page_title @project.full_name, _("Projects")
2018-12-05 23:21:45 +05:30
- @content_class = "admin-projects"
2021-01-29 00:20:46 +05:30
- current_user_is_group_owner = @group && @group.has_owner?(current_user)
2018-12-05 23:21:45 +05:30
2020-07-28 23:09:34 +05:30
.js-remove-member-modal
2014-09-02 18:07:02 +05:30
%h3.page-title
2020-07-28 23:09:34 +05:30
= _('Project: %{name}') % { name: @project.full_name }
2020-10-24 23:57:45 +05:30
= link_to edit_project_path(@project), class: "btn btn-default gl-button float-right" do
= sprite_icon('pencil-square', css_class: 'gl-icon')
2020-07-28 23:09:34 +05:30
= _('Edit')
2014-09-02 18:07:02 +05:30
%hr
2016-06-02 11:05:42 +05:30
- if @project.last_repository_check_failed?
.row
.col-md-12
2021-01-29 00:20:46 +05:30
.gl-alert.gl-alert-danger.gl-mb-5{ data: { testid: 'last-repository-check-failed-alert' } }
2021-01-03 14:25:43 +05:30
= sprite_icon('error', size: 16, css_class: 'gl-icon gl-alert-icon gl-alert-icon-no-title')
.gl-alert-body
2020-05-24 23:13:21 +05:30
- last_check_message = _("Last repository check (%{last_check_timestamp}) failed. See the 'repocheck.log' file for error messages.")
- last_check_message = last_check_message % { last_check_timestamp: time_ago_with_tooltip(@project.last_repository_check_at) }
= last_check_message.html_safe
2014-09-02 18:07:02 +05:30
.row
.col-md-6
2018-11-08 19:23:39 +05:30
.card
.card-header
2020-07-28 23:09:34 +05:30
= _('Project info:')
2018-11-08 19:23:39 +05:30
%ul.content-list
2014-09-02 18:07:02 +05:30
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('Name:')
2014-09-02 18:07:02 +05:30
%strong
= link_to @project.name, project_path(@project)
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('Namespace:')
2014-09-02 18:07:02 +05:30
%strong
- if @project.namespace
= link_to @project.namespace.human_name, [:admin, @project.group || @project.owner]
- else
2020-07-28 23:09:34 +05:30
= s_('ProjectSettings|Global')
2014-09-02 18:07:02 +05:30
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('Owned by:')
2014-09-02 18:07:02 +05:30
%strong
- if @project.owner
= link_to @project.owner_name, [:admin, @project.owner]
- else
2020-07-28 23:09:34 +05:30
= _('(deleted)')
2014-09-02 18:07:02 +05:30
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('Created by:')
2014-09-02 18:07:02 +05:30
%strong
2020-07-28 23:09:34 +05:30
= @project.creator.try(:name) || _('(deleted)')
2014-09-02 18:07:02 +05:30
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('Created on:')
2014-09-02 18:07:02 +05:30
%strong
2016-01-14 18:37:52 +05:30
= @project.created_at.to_s(:medium)
2014-09-02 18:07:02 +05:30
2019-10-12 21:52:04 +05:30
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('ID:')
2019-10-12 21:52:04 +05:30
%strong
= @project.id
2014-09-02 18:07:02 +05:30
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('http:')
2014-09-02 18:07:02 +05:30
%strong
2015-04-26 12:48:37 +05:30
= link_to @project.http_url_to_repo, project_path(@project)
2014-09-02 18:07:02 +05:30
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('ssh:')
2014-09-02 18:07:02 +05:30
%strong
2015-04-26 12:48:37 +05:30
= link_to @project.ssh_url_to_repo, project_path(@project)
2014-09-02 18:07:02 +05:30
- if @project.repository.exists?
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('Gitaly storage name:')
2014-09-02 18:07:02 +05:30
%strong
2018-05-09 12:01:36 +05:30
= @project.repository.storage
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('Gitaly relative path:')
2018-05-09 12:01:36 +05:30
%strong
= @project.repository.relative_path
2014-09-02 18:07:02 +05:30
%li
2019-09-30 21:07:59 +05:30
= render 'shared/storage_counter_statistics', storage_size: @project.statistics&.storage_size, storage_details: @project.statistics
2014-09-02 18:07:02 +05:30
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('last commit:')
2014-09-02 18:07:02 +05:30
%strong
= last_commit(@project)
2016-09-29 09:46:39 +05:30
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('Git LFS status:')
2016-09-29 09:46:39 +05:30
%strong
= project_lfs_status(@project)
2020-11-24 15:15:51 +05:30
= link_to sprite_icon('question-o'), help_page_path('topics/git/lfs/index')
2014-09-02 18:07:02 +05:30
- else
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('repository:')
2014-09-02 18:07:02 +05:30
%strong.cred
2020-07-28 23:09:34 +05:30
= _('does not exist')
2014-09-02 18:07:02 +05:30
2015-04-26 12:48:37 +05:30
- if @project.archived?
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('archived:')
%strong
= _('project is read-only')
2015-04-26 12:48:37 +05:30
2019-09-04 21:01:54 +05:30
= render_if_exists "shared_runner_status", project: @project
2014-09-02 18:07:02 +05:30
%li
2020-07-28 23:09:34 +05:30
%span.light
= _('access:')
2014-09-02 18:07:02 +05:30
%strong
%span{ class: visibility_level_color(@project.visibility_level) }
= visibility_level_icon(@project.visibility_level)
= visibility_level_label(@project.visibility_level)
2020-06-23 00:09:42 +05:30
= render 'shared/custom_attributes', custom_attributes: @project.custom_attributes
2018-12-05 23:21:45 +05:30
= render_if_exists 'admin/projects/geo_status_widget', locals: { project: @project }
2018-11-08 19:23:39 +05:30
.card
.card-header
2020-07-28 23:09:34 +05:30
= s_('ProjectSettings|Transfer project')
2018-11-08 19:23:39 +05:30
.card-body
= form_for @project, url: transfer_admin_project_path(@project), method: :put do |f|
.form-group.row
2019-09-04 21:01:54 +05:30
.col-sm-3.col-form-label
2020-07-28 23:09:34 +05:30
= f.label :new_namespace_id, _("Namespace")
2018-11-08 19:23:39 +05:30
.col-sm-9
2016-08-24 12:49:21 +05:30
.dropdown
2020-07-28 23:09:34 +05:30
= dropdown_toggle(_('Search for Namespace'), { toggle: 'dropdown', field_name: 'new_namespace_id' }, { toggle_class: 'js-namespace-select large' })
2016-08-24 12:49:21 +05:30
.dropdown-menu.dropdown-select
2020-07-28 23:09:34 +05:30
= dropdown_title(_('Namespaces'))
= dropdown_filter(_('Search for Namespace'))
2016-08-24 12:49:21 +05:30
= dropdown_content
= dropdown_loading
2014-09-02 18:07:02 +05:30
2018-11-08 19:23:39 +05:30
.form-group.row
.offset-sm-3.col-sm-9
2021-01-03 14:25:43 +05:30
= f.submit _('Transfer'), class: 'gl-button btn btn-primary'
2014-09-02 18:07:02 +05:30
2018-11-08 19:23:39 +05:30
.card.repository-check
.card-header
2020-05-24 23:13:21 +05:30
= _("Repository check")
2018-11-08 19:23:39 +05:30
.card-body
2017-09-10 17:25:29 +05:30
= form_for @project, url: repository_check_admin_project_path(@project), method: :post do |f|
2016-06-02 11:05:42 +05:30
.form-group
- if @project.last_repository_check_at.nil?
2020-05-24 23:13:21 +05:30
= _("This repository has never been checked.")
- elsif @project.last_repository_check_failed?
- failed_message = _("This repository was last checked %{last_check_timestamp}. The check %{strong_start}failed.%{strong_end} See the 'repocheck.log' file for error messages.")
- failed_message = failed_message % { last_check_timestamp: @project.last_repository_check_at.to_s(:medium), strong_start: "<strong class='cred'>", strong_end: "</strong>" }
= failed_message.html_safe
2016-06-02 11:05:42 +05:30
- else
2020-05-24 23:13:21 +05:30
= _("This repository was last checked %{last_check_timestamp}. The check passed.") % { last_check_timestamp: @project.last_repository_check_at.to_s(:medium) }
2016-06-02 11:05:42 +05:30
2020-11-24 15:15:51 +05:30
= link_to sprite_icon('question-o'), help_page_path('administration/repository_checks')
2016-06-02 11:05:42 +05:30
.form-group
2021-01-03 14:25:43 +05:30
= f.submit _('Trigger repository check'), class: 'gl-button btn btn-primary'
2016-06-02 11:05:42 +05:30
2014-09-02 18:07:02 +05:30
.col-md-6
- if @group
2018-11-08 19:23:39 +05:30
.card
.card-header
2016-08-24 12:49:21 +05:30
%strong= @group.name
2020-07-28 23:09:34 +05:30
= _('group members')
2018-11-08 19:23:39 +05:30
%span.badge.badge-pill= @group_members.size
.float-right
2020-10-24 23:57:45 +05:30
= link_to admin_group_path(@group), class: 'btn btn-default gl-button btn-sm' do
= sprite_icon('pencil-square', css_class: 'gl-icon')
= _('Manage access')
2018-11-08 19:23:39 +05:30
%ul.content-list.members-list
2021-01-29 00:20:46 +05:30
= render partial: 'shared/members/member',
collection: @group_members, as: :member,
locals: { membership_source: @project,
group: @group,
show_controls: false,
current_user_is_group_owner: current_user_is_group_owner }
2018-11-08 19:23:39 +05:30
.card-footer
2014-09-02 18:07:02 +05:30
= paginate @group_members, param_name: 'group_members_page', theme: 'gitlab'
2021-01-29 00:20:46 +05:30
= render 'shared/members/requests', membership_source: @project, group: @group, requesters: @requesters, force_mobile_view: true
2016-08-24 12:49:21 +05:30
2018-11-08 19:23:39 +05:30
.card
.card-header
2016-08-24 12:49:21 +05:30
%strong= @project.name
2020-07-28 23:09:34 +05:30
= _('project members')
2018-11-08 19:23:39 +05:30
%span.badge.badge-pill= @project.users.size
.float-right
2020-10-24 23:57:45 +05:30
= link_to project_project_members_path(@project), class: 'btn btn-default gl-button btn-sm' do
= sprite_icon('pencil-square', css_class: 'gl-icon')
= _('Manage access')
2018-11-08 19:23:39 +05:30
%ul.content-list.project_members.members-list
2021-01-29 00:20:46 +05:30
= render partial: 'shared/members/member',
collection: @project_members, as: :member,
locals: { membership_source: @project,
group: @group,
show_controls: false,
current_user_is_group_owner: current_user_is_group_owner }
2018-11-08 19:23:39 +05:30
.card-footer
2014-09-02 18:07:02 +05:30
= paginate @project_members, param_name: 'project_members_page', theme: 'gitlab'