BigW Consortium Gitlab

show.html.haml 4.79 KB
Newer Older
1 2
- @no_container = true
- page_title "Cycle Analytics"
3
- content_for :page_specific_javascripts do
4
  = page_specific_javascript_bundle_tag('common_vue')
5
  = page_specific_javascript_bundle_tag('cycle_analytics')
6

7
= render "projects/head"
8

9
#cycle-analytics{ class: container_class, "v-cloak" => "true", data: { request_path: project_cycle_analytics_path(@project) } }
Phil Hughes committed
10
  - if @cycle_analytics_no_data
11 12 13 14 15 16 17 18 19 20 21
    .landing.content-block{ "v-if" => "!isOverviewDialogDismissed" }
      %button.dismiss-button{ type: 'button', 'aria-label': 'Dismiss Cycle Analytics introduction box' }
        = icon("times", "@click" => "dismissOverviewDialog()")
      .svg-container
        = custom_icon('icon_cycle_analytics_splash')
      .inner-content
        %h4
          {{ __('Introducing Cycle Analytics') }}
        %p
          {{ __('Cycle Analytics gives an overview of how much time it takes to go from idea to production in your project.') }}
        %p
22
          = link_to _('Read more'), help_page_path('user/project/cycle_analytics'), target: '_blank', class: 'btn'
23
  = icon("spinner spin", "v-show" => "isLoading")
24
  .wrapper{ "v-show" => "!isLoading && !hasError" }
25 26
    .panel.panel-default
      .panel-heading
27
        {{ __('Pipeline Health') }}
28 29 30
      .content-block
        .container-fluid
          .row
Alfredo Sumaran committed
31
            .col-sm-3.col-xs-12.column{ "v-for" => "item in state.summary" }
32
              %h3.header {{ item.value }}
33
              %p.text {{ item.title }}
34 35
            .col-sm-3.col-xs-12.column
              .dropdown.inline.js-ca-dropdown
36
                %button.dropdown-menu-toggle{ "data-toggle" => "dropdown", :type => "button" }
37
                  %span.dropdown-label {{ n__('Last %d day', 'Last %d days', 30) }}
38 39 40 41
                  %i.fa.fa-chevron-down
                %ul.dropdown-menu.dropdown-menu-align-right
                  %li
                    %a{ "href" => "#", "data-value" => "30" }
42
                      {{ n__('Last %d day', 'Last %d days', 30) }}
43 44
                  %li
                    %a{ "href" => "#", "data-value" => "90" }
45
                      {{ n__('Last %d day', 'Last %d days', 90) }}
46 47
    .stage-panel-container
      .panel.panel-default.stage-panel
48
        .panel-heading
49 50 51 52
          %nav.col-headers
            %ul
              %li.stage-header
                %span.stage-name
53
                  {{ s__('ProjectLifecycle|Stage') }}
54
                %i.has-tooltip.fa.fa-question-circle{ "data-placement" => "top", title: _("The phase of the development lifecycle."), "aria-hidden" => "true" }
55 56
              %li.median-header
                %span.stage-name
57
                  {{ __('Median') }}
58
                %i.has-tooltip.fa.fa-question-circle{ "data-placement" => "top", title: _("The value lying at the midpoint of a series of observed values. E.g., between 3, 5, 9, the median is 5. Between 3, 5, 7, 8, the median is (5+7)/2 = 6."), "aria-hidden" => "true" }
59 60
              %li.event-header
                %span.stage-name
61
                  {{ currentStage ? __(currentStage.legend) : __('Related Issues') }}
62
                %i.has-tooltip.fa.fa-question-circle{ "data-placement" => "top", title: _("The collection of events added to the data gathered for that stage."), "aria-hidden" => "true" }
63 64
              %li.total-time-header
                %span.stage-name
65
                  {{ __('Total Time') }}
66
                %i.has-tooltip.fa.fa-question-circle{ "data-placement" => "top", title: _("The time taken by each data entry gathered by that stage."), "aria-hidden" => "true" }
67 68 69 70 71
        .stage-panel-body
          %nav.stage-nav
            %ul
              %li.stage-nav-item{ ':class' => '{ active: stage.active }', '@click' => 'selectStage(stage)', "v-for" => "stage in state.stages" }
                .stage-nav-item-cell.stage-name
72
                  {{ stage.title }}
73 74 75 76 77
                .stage-nav-item-cell.stage-median
                  %template{ "v-if" => "stage.isUserAllowed" }
                    %span{ "v-if" => "stage.value" }
                      {{ stage.value }}
                    %span.stage-empty{ "v-else" => true }
78
                      {{ __('Not enough data') }}
79 80
                  %template{ "v-else" => true }
                    %span.not-available
81
                      {{ __('Not available') }}
82 83 84 85 86 87 88 89 90 91
          .section.stage-events
            %template{ "v-if" => "isLoadingStage" }
              = icon("spinner spin")
            %template{ "v-if" => "currentStage && !currentStage.isUserAllowed" }
              = render partial: "no_access"
            %template{ "v-else" => true }
              %template{ "v-if" => "isEmptyStage && !isLoadingStage" }
                = render partial: "empty_stage"
              %template{ "v-if" => "state.events.length && !isLoadingStage && !isEmptyStage" }
                %component{ ":is" => "currentStage.component", ":stage" => "currentStage", ":items" => "state.events" }