summaryrefslogtreecommitdiff
path: root/app/views/projects/commits/_commit.html.haml
blob: cd61576a96afca5b46f4b2bf01b228e6db504b17 (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
-#-----------------------------------------------------------------
  WARNING: Please keep changes up-to-date with the following files:
  - `assets/javascripts/diffs/components/commit_item.vue`

  EXCEPTION WARNING - see above `.vue` file for de-sync drift
-#-----------------------------------------------------------------
- view_details  = local_assigns.fetch(:view_details, false)
- merge_request = local_assigns.fetch(:merge_request, nil)
- project       = local_assigns.fetch(:project) { merge_request&.project }
- ref           = local_assigns.fetch(:ref) { merge_request&.source_branch }
- commit        = commit.present(current_user: current_user)
- commit_status = commit.status_for(ref)
- collapsible = local_assigns.fetch(:collapsible, true)
- link_data_attrs = local_assigns.fetch(:link_data_attrs, {})

- link = commit_path(project, commit, merge_request: merge_request)

- show_project_name = local_assigns.fetch(:show_project_name, false)

%li{ class: ["commit flex-row", ("js-toggle-container" if collapsible)], id: "commit-#{commit.short_id}" }

  .avatar-cell.d-none.d-sm-block
    = author_avatar(commit, size: 40, has_tooltip: false)

  .commit-detail.flex-list
    .commit-content.qa-commit-content
      - if view_details && merge_request
        = link_to commit.title, project_commit_path(project, commit.id, merge_request_iid: merge_request.iid), class: ["commit-row-message item-title js-onboarding-commit-item", ("font-italic" if commit.message.empty?)]
      - else
        = link_to_markdown_field(commit, :title, link, class: "commit-row-message item-title js-onboarding-commit-item #{"font-italic" if commit.message.empty?}", data: link_data_attrs)
      %span.commit-row-message.d-inline.d-sm-none
        ·
        = commit.short_id
      - if commit.description? && collapsible
        %button.text-expander.js-toggle-button
          = sprite_icon('ellipsis_h', size: 12)

      .committer
        - commit_author_link = commit_author_link(commit, avatar: false, size: 24)
        - commit_timeago = time_ago_with_tooltip(commit.authored_date, placement: 'bottom')
        - commit_text =  _('%{commit_author_link} authored %{commit_timeago}') % { commit_author_link: commit_author_link, commit_timeago: commit_timeago }
        #{ commit_text.html_safe }
      = render_if_exists 'projects/commits/project_namespace', show_project_name: show_project_name, project: project

      - if commit.description?
        %pre{ class: ["commit-row-description gl-mb-3", (collapsible ? "js-toggle-content" : "d-block")] }
          = preserve(markdown_field(commit, :description))

    .commit-actions.flex-row
      - if request.xhr?
        = render partial: 'projects/commit/signature', object: commit.signature
      - else
        = render partial: 'projects/commit/ajax_signature', locals: { commit: commit }

      - if commit_status
        = render_commit_status(commit, commit_status, ref: ref)

      .js-commit-pipeline-status{ data: { endpoint: pipelines_project_commit_path(project, commit.id, ref: ref) } }

      .commit-sha-group.d-none.d-sm-flex
        .label.label-monospace.monospace
          = commit.short_id
        = clipboard_button(text: commit.id, title: _("Copy commit SHA"), class: "btn btn-default", container: "body")
        = link_to_browse_code(project, commit)