summaryrefslogtreecommitdiff
path: root/app/presenters
diff options
context:
space:
mode:
authorThong Kuah <tkuah@gitlab.com>2018-11-07 14:06:33 +1300
committerThong Kuah <tkuah@gitlab.com>2018-11-08 23:28:30 +1300
commitb019224ff2bf6c8282a210eff1e98d0225e98a0c (patch)
tree61cb0f7bcce5fe41354abe68050133c61e3e5fdf /app/presenters
parent85066afb0ffc2ef973a459c23fbb7afa2f939390 (diff)
downloadgitlab-ce-b019224ff2bf6c8282a210eff1e98d0225e98a0c.tar.gz
Refactor to use presenter
Refacotr project or group specific `if` logic to be contained within each presenter instead. Also add :override to ensure super method exists.
Diffstat (limited to 'app/presenters')
-rw-r--r--app/presenters/clusterable_presenter.rb6
-rw-r--r--app/presenters/group_clusterable_presenter.rb16
-rw-r--r--app/presenters/project_clusterable_presenter.rb11
3 files changed, 28 insertions, 5 deletions
diff --git a/app/presenters/clusterable_presenter.rb b/app/presenters/clusterable_presenter.rb
index 6de967a58e9..08ff49a8702 100644
--- a/app/presenters/clusterable_presenter.rb
+++ b/app/presenters/clusterable_presenter.rb
@@ -44,7 +44,11 @@ class ClusterablePresenter < Gitlab::View::Presenter::Delegated
raise NotImplementedError
end
- def project?
+ def empty_state_help_text
+ nil
+ end
+
+ def learn_more_link
raise NotImplementedError
end
end
diff --git a/app/presenters/group_clusterable_presenter.rb b/app/presenters/group_clusterable_presenter.rb
index 6da4dbfeaa4..427f3ec047c 100644
--- a/app/presenters/group_clusterable_presenter.rb
+++ b/app/presenters/group_clusterable_presenter.rb
@@ -1,19 +1,31 @@
# frozen_string_literal: true
class GroupClusterablePresenter < ClusterablePresenter
+ extend ::Gitlab::Utils::Override
+ include ActionView::Helpers::UrlHelper
+
+ override :cluster_status_cluster_path
def cluster_status_cluster_path(cluster, params = {})
cluster_status_group_cluster_path(clusterable, cluster, params)
end
+ override :install_applications_cluster_path
def install_applications_cluster_path(cluster, application)
install_applications_group_cluster_path(clusterable, cluster, application)
end
+ override :cluster_path
def cluster_path(cluster, params = {})
group_cluster_path(clusterable, cluster, params)
end
- def project?
- false
+ override :empty_state_help_text
+ def empty_state_help_text
+ s_('ClusterIntegration|Adding an integration to your group will share the cluster across all your projects.')
+ end
+
+ override :learn_more_link
+ def learn_more_link
+ link_to(s_('ClusterIntegration|Learn more about group Kubernetes clusters'), help_page_path('user/project/clusters/index'), target: '_blank', rel: 'noopener noreferrer')
end
end
diff --git a/app/presenters/project_clusterable_presenter.rb b/app/presenters/project_clusterable_presenter.rb
index 2aea31e8bbf..ede8547d210 100644
--- a/app/presenters/project_clusterable_presenter.rb
+++ b/app/presenters/project_clusterable_presenter.rb
@@ -1,19 +1,26 @@
# frozen_string_literal: true
class ProjectClusterablePresenter < ClusterablePresenter
+ extend ::Gitlab::Utils::Override
+ include ActionView::Helpers::UrlHelper
+
+ override :cluster_status_cluster_path
def cluster_status_cluster_path(cluster, params = {})
cluster_status_project_cluster_path(clusterable, cluster, params)
end
+ override :install_applications_cluster_path
def install_applications_cluster_path(cluster, application)
install_applications_project_cluster_path(clusterable, cluster, application)
end
+ override :cluster_path
def cluster_path(cluster, params = {})
project_cluster_path(clusterable, cluster, params)
end
- def project?
- true
+ override :learn_more_link
+ def learn_more_link
+ link_to(s_('ClusterIntegration|Learn more about Kubernetes'), help_page_path('user/project/clusters/index'), target: '_blank', rel: 'noopener noreferrer')
end
end