gitlabhq/gitlabhq

View on GitHub
app/views/projects/protected_branches/index.html.haml

Summary

Maintainability
Test Coverage
= render "projects/commits/head"
.row
  .span3
    = render "projects/branches/filter"
  .span9
    .alert.alert-info
      %p Protected branches designed to prevent push for all except #{link_to "masters", help_permissions_path, class: "vlink"}.
      %p This ability allows:
      %ul
        %li keep stable branches secured
        %li forced code review before merge to protected branches
      %p Read more about project permissions #{link_to "here", help_permissions_path, class: "underlined_link"}

    - if can? current_user, :admin_project, @project
      = form_for [@project, @protected_branch] do |f|
        -if @protected_branch.errors.any?
          .alert.alert-error
            %ul
              - @protected_branch.errors.full_messages.each do |msg|
                %li= msg

        .entry.clearfix
          = f.label :name, "Branch"
          .span3
            = f.select(:name, @project.open_branches.map { |br| [br.name, br.name] } , {include_blank: "Select branch"}, {class: "chosen span3"})
           
          = f.submit 'Protect', class: "btn-create btn"
    - unless @branches.empty?
      %h5 Already Protected:
      %ul.bordered-list.protected-branches-list
        - @branches.each do |branch|
          %li
            %h4
              = link_to project_commits_path(@project, branch.name) do
                %strong= branch.name
                - if @project.root_ref?(branch.name)
                  %span.label.label-info default
                %span.label.label-success
                  %i.icon-lock
              .pull-right
                - if can? current_user, :admin_project, @project
                  = link_to 'Unprotect', [@project, branch], confirm: 'Branch will be writable for developers. Are you sure?', method: :delete, class: "btn btn-remove btn-small"

            - if commit = branch.commit
              = link_to project_commit_path(@project, commit.id), class: 'commit_short_id' do
                = commit.short_id
              %span.light
                = gfm escape_once(truncate(commit.title, length: 40))
              %span
                = time_ago_in_words(commit.committed_date)
                ago
            - else
              (branch was removed from repository)