From ed4ec0dab7df042d53696ad118c9f0a829990802 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Mon, 5 Dec 2016 14:19:12 +0100 Subject: Add support for detailed status to status helpers --- app/helpers/ci_status_helper.rb | 53 +++++++++++++--------- .../projects/ci/pipelines/_pipeline.html.haml | 5 +- app/views/projects/pipelines/_info.html.haml | 2 +- 3 files changed, 36 insertions(+), 24 deletions(-) diff --git a/app/helpers/ci_status_helper.rb b/app/helpers/ci_status_helper.rb index abcf84b4d15..ff507765255 100644 --- a/app/helpers/ci_status_helper.rb +++ b/app/helpers/ci_status_helper.rb @@ -6,7 +6,8 @@ module CiStatusHelper def ci_status_with_icon(status, target = nil) content = ci_icon_for_status(status) + ci_label_for_status(status) - klass = "ci-status ci-#{status}" + klass = "ci-status ci-#{status}" # TODO, add support for detailed status + if target link_to content, target, class: klass else @@ -15,11 +16,13 @@ module CiStatusHelper end def ci_label_for_status(status) + if detailed_status?(status) + return status.label + end + case status when 'success' 'passed' - when 'success_with_warnings' - 'passed with warnings' else status end @@ -32,25 +35,27 @@ module CiStatusHelper def ci_icon_for_status(status) icon_name = - case status - when 'success' - 'icon_status_success' - when 'success_with_warnings' - 'icon_status_warning' - when 'failed' - 'icon_status_failed' - when 'pending' - 'icon_status_pending' - when 'running' - 'icon_status_running' - when 'play' - 'icon_play' - when 'created' - 'icon_status_created' - when 'skipped' - 'icon_status_skipped' + if detailed_status?(status) + status.icon else - 'icon_status_canceled' + case status + when 'success' + 'icon_status_success' + when 'failed' + 'icon_status_failed' + when 'pending' + 'icon_status_pending' + when 'running' + 'icon_status_running' + when 'play' + 'icon_play' + when 'created' + 'icon_status_created' + when 'skipped' + 'icon_status_skipped' + else + 'icon_status_canceled' + end end custom_icon(icon_name) @@ -94,4 +99,10 @@ module CiStatusHelper class: klass, title: title, data: data end end + + def detailed_status?(status) + status.respond_to?(:text) && + status.respond_to?(:label) && + status.respond_to?(:icon) + end end diff --git a/app/views/projects/ci/pipelines/_pipeline.html.haml b/app/views/projects/ci/pipelines/_pipeline.html.haml index 4c7b14a04db..00a30870dad 100644 --- a/app/views/projects/ci/pipelines/_pipeline.html.haml +++ b/app/views/projects/ci/pipelines/_pipeline.html.haml @@ -1,12 +1,13 @@ - status = pipeline.status +- detailed_status = pipeline.detailed_status - show_commit = local_assigns.fetch(:show_commit, true) - show_branch = local_assigns.fetch(:show_branch, true) %tr.commit %td.commit-link = link_to namespace_project_pipeline_path(pipeline.project.namespace, pipeline.project, pipeline.id), class: "ci-status ci-#{status}" do - = ci_icon_for_status(status) - = ci_label_for_status(status) + = ci_icon_for_status(detailed_status) + = ci_label_for_status(detailed_status) %td = link_to namespace_project_pipeline_path(pipeline.project.namespace, pipeline.project, pipeline.id) do diff --git a/app/views/projects/pipelines/_info.html.haml b/app/views/projects/pipelines/_info.html.haml index 095bd254d6b..229bdfb0e8d 100644 --- a/app/views/projects/pipelines/_info.html.haml +++ b/app/views/projects/pipelines/_info.html.haml @@ -1,6 +1,6 @@ .page-content-header .header-main-content - = ci_status_with_icon(@pipeline.status) + = ci_status_with_icon(@pipeline.detailed_status) %strong Pipeline ##{@commit.pipelines.last.id} triggered #{time_ago_with_tooltip(@commit.authored_date)} by = author_avatar(@commit, size: 24) -- cgit v1.2.1