From 06a70c481a399b871ad7c026bed57aa238f9b16f Mon Sep 17 00:00:00 2001 From: Ezekiel Kigbo Date: Thu, 16 May 2019 19:29:08 -0500 Subject: WIP: Load ci pipeline data --- .../components/projects_list/project_ci_pipeline_status.vue | 8 ++++---- .../components/projects_list/project_list_item.vue | 8 ++++++++ app/helpers/projects_helper.rb | 12 +++++++----- app/views/shared/projects/_list.html.haml | 2 +- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/app/assets/javascripts/vue_shared/components/projects_list/project_ci_pipeline_status.vue b/app/assets/javascripts/vue_shared/components/projects_list/project_ci_pipeline_status.vue index 705366ab568..dd2b825c3e4 100644 --- a/app/assets/javascripts/vue_shared/components/projects_list/project_ci_pipeline_status.vue +++ b/app/assets/javascripts/vue_shared/components/projects_list/project_ci_pipeline_status.vue @@ -1,6 +1,6 @@ diff --git a/app/assets/javascripts/vue_shared/components/projects_list/project_list_item.vue b/app/assets/javascripts/vue_shared/components/projects_list/project_list_item.vue index 67679bc421d..076ef12b0e6 100644 --- a/app/assets/javascripts/vue_shared/components/projects_list/project_list_item.vue +++ b/app/assets/javascripts/vue_shared/components/projects_list/project_list_item.vue @@ -6,6 +6,7 @@ import ProjectCounts from './project_counts.vue'; import ProjectAccess from './project_access.vue'; import ProjectTitle from './project_title.vue'; import ProjectVisibilityLevel from './project_visibility_level.vue'; +import ProjectCiPipelineStatus from './project_ci_pipeline_status.vue'; /** * Renders a project list item @@ -19,6 +20,7 @@ export default { ProjectAccess, ProjectTitle, ProjectVisibilityLevel, + ProjectCiPipelineStatus, }, props: { isExploreProjectsTab: { @@ -204,6 +206,11 @@ export default { visibilityDescription() { return this.project.visibility.description || null; }, + hasPipelineAccess() { + // TODO: need to check this condition + // There should be prop for pipeline status access + return this.project.status && true; + }, }, }; @@ -242,6 +249,7 @@ export default { :forks-count="totals.forksCount" :merge-requests-count="totals.mergeRequestsCount" /> +
Updated diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index a8acba98bdb..7909f5452b2 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -632,24 +632,26 @@ module ProjectsHelper !project.repository.gitlab_ci_yml end - def project_additional_fields(project) + def project_additional_fields(project, current_user) + # has_pipeline_status_access = pipeline_status && can?(current_user, :read_cross_project) && project.pipeline_status.has_status? && can?(current_user, :read_build, project), additional_fields = { # TODO: namespace is not always correct # for cases where we are the owner we should have the 'owner' object available - namespace: project.namespace, + namespace: project.namespace, open_merge_requests_count: project.open_merge_requests_count, open_issues_count: project.open_issues_count, + # status: project.commit.last_pipeline.detailed_status(current_user), + # owner: project.owner, visibility: { level: project.visibility_level, description: visibility_icon_description(project) } - # owner: project.owner } project.as_json.merge(additional_fields) end - def projects_data_json(projects) - projects = projects.to_a.map { |project| project_additional_fields(project) } + def projects_data_json(projects, current_user) + projects = projects.to_a.map { |project| project_additional_fields(project, current_user) } projects.to_json.html_safe end diff --git a/app/views/shared/projects/_list.html.haml b/app/views/shared/projects/_list.html.haml index 294aee9822b..2c53f8c6cf6 100644 --- a/app/views/shared/projects/_list.html.haml +++ b/app/views/shared/projects/_list.html.haml @@ -32,7 +32,7 @@ -# maybe load merge request count here - if Feature.enabled?(:vue_projects_list) -# Mount vue app - %ul.vjs-projects-list{ class: css_classes, data: { projects: projects_data_json(projects) } } + %ul.vjs-projects-list{ class: css_classes, data: { projects: projects_data_json(projects, current_user) } } = paginate_collection(projects, remote: remote) unless skip_pagination - else %ul.projects-list{ class: css_classes } -- cgit v1.2.1