summaryrefslogtreecommitdiff
path: root/app/views/projects/cycle_analytics/show.html.haml
blob: 1691af9dfddf2acebc9fed378879884624a96ee0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
- page_title "Cycle Analytics"

#cycle-analytics{ "v-cloak" => "true", data: { request_path: project_cycle_analytics_path(@project) } }
  - if @cycle_analytics_no_data
    %banner{ "v-if" => "!isOverviewDialogDismissed",
      "documentation-link": help_page_path('user/analytics/cycle_analytics.md'),
      "v-on:dismiss-overview-dialog" => "dismissOverviewDialog()" }
  = icon("spinner spin", "v-show" => "isLoading")
  .wrapper{ "v-show" => "!isLoading && !hasError" }
    .card
      .card-header
        {{ __('Recent Project Activity') }}
      .content-block
        .container-fluid
          .row
            .col-12.column{ "v-for" => "item in state.summary", ":class" => "summaryTableColumnClass" }
              %h3.header {{ item.value }}
              %p.text {{ item.title }}
            .col-12.column{ ":class" => "summaryTableColumnClass" }
              .dropdown.inline.js-ca-dropdown
                %button.dropdown-menu-toggle{ "data-toggle" => "dropdown", :type => "button" }
                  %span.dropdown-label {{ n__('Last %d day', 'Last %d days', 30) }}
                  %i.fa.fa-chevron-down
                %ul.dropdown-menu.dropdown-menu-right
                  %li
                    %a{ "href" => "#", "data-value" => "7" }
                      {{ n__('Last %d day', 'Last %d days', 7) }}
                  %li
                    %a{ "href" => "#", "data-value" => "30" }
                      {{ n__('Last %d day', 'Last %d days', 30) }}
                  %li
                    %a{ "href" => "#", "data-value" => "90" }
                      {{ n__('Last %d day', 'Last %d days', 90) }}
    .stage-panel-container
      .card.stage-panel
        .card-header.border-bottom-0
          %nav.col-headers
            %ul
              %li.stage-header.pl-5
                %span.stage-name.font-weight-bold
                  {{ s__('ProjectLifecycle|Stage') }}
                %i.has-tooltip.fa.fa-question-circle{ "data-placement" => "top", title: _("The phase of the development lifecycle."), "aria-hidden" => "true" }
              %li.median-header
                %span.stage-name.font-weight-bold
                  {{ __('Median') }}
                %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" }
              %li.event-header.pl-3
                %span.stage-name.font-weight-bold
                  {{ currentStage ? __(currentStage.legend) : __('Related Issues') }}
                %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" }
              %li.total-time-header.pr-5.text-right
                %span.stage-name.font-weight-bold
                  {{ __('Total Time') }}
                %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" }
        .stage-panel-body
          %nav.stage-nav
            %ul
              %stage-nav-item{ "v-for" => "stage in state.stages", ":key" => '`ca-stage-title-${stage.title}`', '@select' => 'selectStage(stage)', ":title" => "stage.title", ":is-user-allowed" => "stage.isUserAllowed", ":value" => "stage.value", ":is-active" => "stage.active" }
          .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" }