diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 14:22:11 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 14:22:11 +0000 |
commit | 0c872e02b2c822e3397515ec324051ff540f0cd5 (patch) | |
tree | ce2fb6ce7030e4dad0f4118d21ab6453e5938cdd /app/presenters | |
parent | f7e05a6853b12f02911494c4b3fe53d9540d74fc (diff) | |
download | gitlab-ce-0c872e02b2c822e3397515ec324051ff540f0cd5.tar.gz |
Add latest changes from gitlab-org/gitlab@15-7-stable-eev15.7.0-rc42
Diffstat (limited to 'app/presenters')
-rw-r--r-- | app/presenters/blob_presenter.rb | 2 | ||||
-rw-r--r-- | app/presenters/ci/freeze_period_presenter.rb | 13 | ||||
-rw-r--r-- | app/presenters/group_member_presenter.rb | 4 | ||||
-rw-r--r-- | app/presenters/member_presenter.rb | 4 | ||||
-rw-r--r-- | app/presenters/packages/pypi/simple_package_versions_presenter.rb | 5 | ||||
-rw-r--r-- | app/presenters/project_member_presenter.rb | 6 | ||||
-rw-r--r-- | app/presenters/project_presenter.rb | 16 | ||||
-rw-r--r-- | app/presenters/search_service_presenter.rb | 8 |
8 files changed, 44 insertions, 14 deletions
diff --git a/app/presenters/blob_presenter.rb b/app/presenters/blob_presenter.rb index 92dcfeed104..f25436c54be 100644 --- a/app/presenters/blob_presenter.rb +++ b/app/presenters/blob_presenter.rb @@ -98,7 +98,7 @@ class BlobPresenter < Gitlab::View::Presenter::Delegated end def permalink_path - url_helpers.project_blob_path(project, File.join(project.repository.commit.sha, blob.path)) + url_helpers.project_blob_path(project, File.join(project.repository.commit(blob.commit_id).sha, blob.path)) end def environment_formatted_external_url diff --git a/app/presenters/ci/freeze_period_presenter.rb b/app/presenters/ci/freeze_period_presenter.rb new file mode 100644 index 00000000000..064197f34dd --- /dev/null +++ b/app/presenters/ci/freeze_period_presenter.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Ci + class FreezePeriodPresenter < Gitlab::View::Presenter::Delegated + presents ::Ci::FreezePeriod, as: :freeze_period + + def start_time + return freeze_period.time_start if freeze_period.active? + + freeze_period.next_time_start + end + end +end diff --git a/app/presenters/group_member_presenter.rb b/app/presenters/group_member_presenter.rb index 88facc3608d..18554df4bd9 100644 --- a/app/presenters/group_member_presenter.rb +++ b/app/presenters/group_member_presenter.rb @@ -3,6 +3,10 @@ class GroupMemberPresenter < MemberPresenter presents ::GroupMember + def last_owner? + member.last_owner_of_the_group? + end + private def admin_member_permission diff --git a/app/presenters/member_presenter.rb b/app/presenters/member_presenter.rb index 67d044dd01c..4cdaca3c39e 100644 --- a/app/presenters/member_presenter.rb +++ b/app/presenters/member_presenter.rb @@ -37,6 +37,10 @@ class MemberPresenter < Gitlab::View::Presenter::Delegated false end + def last_owner? + raise NotImplementedError + end + private def admin_member_permission diff --git a/app/presenters/packages/pypi/simple_package_versions_presenter.rb b/app/presenters/packages/pypi/simple_package_versions_presenter.rb index 0baa0714463..2bccaf4db72 100644 --- a/app/presenters/packages/pypi/simple_package_versions_presenter.rb +++ b/app/presenters/packages/pypi/simple_package_versions_presenter.rb @@ -13,7 +13,10 @@ module Packages def links refs = [] - available_packages.each_batch do |batch| + available_packages.each_batch do |relation| + batch = relation.preload_files + .preload_pypi_metadatum + batch.each do |package| package_files = package.installable_package_files diff --git a/app/presenters/project_member_presenter.rb b/app/presenters/project_member_presenter.rb index da24972775a..bb389b7a3ab 100644 --- a/app/presenters/project_member_presenter.rb +++ b/app/presenters/project_member_presenter.rb @@ -21,6 +21,12 @@ class ProjectMemberPresenter < MemberPresenter super end + def last_owner? + # all owners of a project in a group are removable. + # but in personal projects, the namespace holder is not removable. + member.holder_of_the_personal_namespace? + end + private def admin_member_permission diff --git a/app/presenters/project_presenter.rb b/app/presenters/project_presenter.rb index 0be13197343..4d1a9b3f589 100644 --- a/app/presenters/project_presenter.rb +++ b/app/presenters/project_presenter.rb @@ -68,7 +68,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated user_view = current_user.project_view - if can?(current_user, :download_code, project) + if can?(current_user, :read_code, project) user_view elsif user_view == 'activity' 'activity' @@ -179,7 +179,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated return if releases_count < 1 AnchorData.new(true, - statistic_icon('rocket') + + statistic_icon('deployments') + n_('%{strong_start}%{release_count}%{strong_end} Release', '%{strong_start}%{release_count}%{strong_end} Releases', releases_count).html_safe % { release_count: number_with_delimiter(releases_count), strong_start: '<strong class="project-stat-value">'.html_safe, @@ -290,16 +290,10 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated 'btn-default', nil, 'license') - else - if can_current_user_push_to_default_branch? - AnchorData.new(false, + elsif can_current_user_push_to_default_branch? + AnchorData.new(false, content_tag(:span, statistic_icon + _('Add LICENSE'), class: 'add-license-link d-flex'), empty_repo? ? add_license_ide_path : add_license_path) - else - AnchorData.new(false, - icon + content_tag(:span, _('No license. All rights reserved'), class: 'project-stat-value'), - nil) - end end end @@ -423,7 +417,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated end def anonymous_project_view - if !project.empty_repo? && can?(current_user, :download_code, project) + if !project.empty_repo? && can?(current_user, :read_code, project) 'files' elsif project.wiki_repository_exists? && can?(current_user, :read_wiki, project) 'wiki' diff --git a/app/presenters/search_service_presenter.rb b/app/presenters/search_service_presenter.rb index 4755b88cbea..d7d959217b0 100644 --- a/app/presenters/search_service_presenter.rb +++ b/app/presenters/search_service_presenter.rb @@ -25,7 +25,7 @@ class SearchServicePresenter < Gitlab::View::Presenter::Delegated case scope when 'users' - objects.eager_load(:status) if objects.respond_to?(:eager_load) # rubocop:disable CodeReuse/ActiveRecord + objects.respond_to?(:eager_load) ? objects.eager_load(:status) : objects # rubocop:disable CodeReuse/ActiveRecord when 'commits' prepare_commits_for_rendering(objects) else @@ -45,4 +45,10 @@ class SearchServicePresenter < Gitlab::View::Presenter::Delegated def without_count? search_objects.is_a?(Kaminari::PaginatableWithoutCount) end + + def advanced_search_enabled? + false + end end + +SearchServicePresenter.prepend_mod_with('SearchServicePresenter') |