diff options
Diffstat (limited to 'app/presenters/project_presenter.rb')
-rw-r--r-- | app/presenters/project_presenter.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/app/presenters/project_presenter.rb b/app/presenters/project_presenter.rb index 856eba5aadc..4533ef3633d 100644 --- a/app/presenters/project_presenter.rb +++ b/app/presenters/project_presenter.rb @@ -28,6 +28,7 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated [ commits_anchor_data, branches_anchor_data, + terraform_states_anchor_data, tags_anchor_data, storage_anchor_data, releases_anchor_data, @@ -236,6 +237,21 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated ) end + def terraform_states_anchor_data + if project.terraform_states.exists? && can_read_terraform_state? + AnchorData.new( + true, + statistic_icon('terraform') + + n_('%{strong_start}%{terraform_states_count}%{strong_end} Terraform State', '%{strong_start}%{terraform_states_count}%{strong_end} Terraform States', project.terraform_states.count).html_safe % { + terraform_states_count: number_with_delimiter(project.terraform_states.count), + strong_start: '<strong class="project-stat-value">'.html_safe, + strong_end: '</strong>'.html_safe + }, + project_terraform_index_path(project) + ) + end + end + def tags_anchor_data AnchorData.new( true, @@ -488,6 +504,10 @@ class ProjectPresenter < Gitlab::View::Presenter::Delegated end end + def can_read_terraform_state? + current_user && can?(current_user, :read_terraform_state, project) + end + # Avoid including ActionView::Helpers::UrlHelper def content_tag(...) ActionController::Base.helpers.content_tag(...) |