diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-13 00:06:18 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-13 00:06:18 +0000 |
commit | 4689bac80c8ab86e2b37abf217cc9b3404c5255f (patch) | |
tree | b937709e651b6cc0fa7c768e8e930dc02fb5a564 /app/controllers/concerns | |
parent | 6e3880e2bb5a404467c64edc916d9edf7556d09d (diff) | |
download | gitlab-ce-4689bac80c8ab86e2b37abf217cc9b3404c5255f.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/controllers/concerns')
-rw-r--r-- | app/controllers/concerns/metrics_dashboard.rb | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/app/controllers/concerns/metrics_dashboard.rb b/app/controllers/concerns/metrics_dashboard.rb index b06b5d5a30c..dc392147cb8 100644 --- a/app/controllers/concerns/metrics_dashboard.rb +++ b/app/controllers/concerns/metrics_dashboard.rb @@ -4,6 +4,8 @@ # to the parameters specified by the controller. module MetricsDashboard include RenderServiceResults + include ChecksCollaboration + extend ActiveSupport::Concern def metrics_dashboard @@ -14,7 +16,7 @@ module MetricsDashboard ) if include_all_dashboards? && result - result[:all_dashboards] = dashboard_finder.find_all_paths(project_for_dashboard) + result[:all_dashboards] = all_dashboards end respond_to do |format| @@ -30,6 +32,30 @@ module MetricsDashboard private + def all_dashboards + dashboards = dashboard_finder.find_all_paths(project_for_dashboard) + dashboards.map do |dashboard| + amend_dashboard(dashboard) + end + end + + def amend_dashboard(dashboard) + project_dashboard = project_for_dashboard && !dashboard[:system_dashboard] + + dashboard[:can_edit] = project_dashboard ? can_edit?(dashboard) : false + dashboard[:project_blob_path] = project_dashboard ? dashboard_project_blob_path(dashboard) : nil + + dashboard + end + + def dashboard_project_blob_path(dashboard) + project_blob_path(project_for_dashboard, File.join(project_for_dashboard.default_branch, dashboard.fetch(:path, ""))) + end + + def can_edit?(dashboard) + can_collaborate_with_project?(project_for_dashboard, ref: project_for_dashboard.default_branch) + end + # Override in class to provide arguments to the finder. def metrics_dashboard_params {} |