# Click a .one_click_select field, select the contents
$(".one_click_select").on 'click', -> $(@).select()
+ $('.remove-row').bind 'ajax:success', ->
+ $(this).closest('li').fadeOut()
+
# Click a .appear-link, appear-data fadeout
$(".appear-link").on 'click', (e) ->
$('.appear-data').fadeIn()
--- /dev/null
+class Projects::BranchesController < Projects::ApplicationController
+ # Authorize
+ before_filter :authorize_read_project!
+ before_filter :require_non_empty_project
+
+ before_filter :authorize_admin_project!, only: [:destroy, :create]
+
+ def index
+ @branches = Kaminari.paginate_array(@repository.branches).page(params[:page]).per(30)
+ end
+
+ def create
+ # TODO: implement
+ end
+
+ def destroy
+ @project.repository.rm_branch(params[:id])
+
+ respond_to do |format|
+ format.html { redirect_to project_branches_path }
+ format.js { render nothing: true }
+ end
+ end
+end
@activities = @repository.commits_with_refs(20)
end
- def branches
- @branches = @repository.branches
- end
-
def tags
@tags = @repository.tags
end
class Repository
+ include Gitlab::ShellAdapter
+
attr_accessor :raw_repository
def initialize(path_with_namespace, default_branch)
commits
end
+ def rm_branch(branch_name)
+ gitlab_shell.rm_branch(path_with_namespace, branch_name)
+ end
+
def round_commit_count
if commit_count > 10000
'10000+'
--- /dev/null
+- commit = Commit.new(Gitlab::Git::Commit.new(branch.commit))
+%li
+ %h4
+ = link_to project_commits_path(@project, branch.name) do
+ %strong= truncate(branch.name, length: 60)
+ - if branch.name == @repository.root_ref
+ %span.label.label-info default
+ - if @project.protected_branch? branch.name
+ %span.label.label-success
+ %i.icon-lock
+ .pull-right
+ - if can?(current_user, :download_code, @project)
+ = link_to archive_project_repository_path(@project, ref: branch.name), class: 'btn grouped btn-small' do
+ %i.icon-download-alt
+ - if can?(current_user, :admin_project, @project) && branch.name != @repository.root_ref
+ = link_to project_branch_path(@project, branch.name), class: 'btn grouped btn-small remove-row', method: :delete, confirm: 'Removed branch cannot be restored. Are you sure?', remote: true do
+ %i.icon-trash
+
+ %p
+ = link_to project_commit_path(@project, commit.id), class: 'commit_short_id' do
+ = commit.short_id
+ = image_tag gravatar_icon(commit.author_email), class: "avatar s16", alt: ''
+ %span.light
+ = gfm escape_once(truncate(commit.title, length: 40))
+ %span
+ = time_ago_in_words(commit.committed_date)
+ ago
--- /dev/null
+= render "projects/commits/head"
+.row
+ .span3
+ = render "projects/repositories/filter"
+ .span9
+ - unless @branches.empty?
+ %ul.bordered-list
+ - @branches.each do |branch|
+ = render "projects/branches/branch", branch: branch
+ = paginate @branches, theme: 'gitlab'
+++ /dev/null
-- commit = Commit.new(Gitlab::Git::Commit.new(branch.commit))
-%tr
- %td
- = link_to project_commits_path(@project, branch.name) do
- - if @project.protected_branch? branch.name
- %i.icon-lock
- - else
- %i.icon-unlock
- %strong= truncate(branch.name, length: 60)
- - if branch.name == @repository.root_ref
- %span.label default
- %td
- = link_to project_commit_path(@project, commit.id), class: 'commit_short_id' do
- = commit.short_id
- = image_tag gravatar_icon(commit.author_email), class: "avatar s16", alt: ''
- %span.light
- = gfm escape_once(truncate(commit.title, length: 40))
- %span
- = time_ago_in_words(commit.committed_date)
- ago
- %td
- - if can? current_user, :download_code, @project
- = link_to archive_project_repository_path(@project, ref: branch.name) do
- %i.icon-download-alt
- Download
-
= link_to project_protected_branches_path(@project) do
Protected
%i.icon-lock
- = nav_link(path: 'repositories#branches') do
- = link_to 'All branches', branches_project_repository_path(@project)
+ = nav_link(path: 'branches#index') do
+ = link_to 'All branches', project_branches_path(@project)
+++ /dev/null
-= render "projects/commits/head"
-.row
- .span3
- = render "filter"
- .span9
- - unless @branches.empty?
- %table
- %thead
- %tr
- %th Name
- %th Last commit
- %th
- %tbody
- - @branches.each do |branch|
- = render "projects/repositories/branch", branch: branch
.span3
= render "filter"
.span9
- %table
- %thead
- %tr
- %th Name
- %th Last commit
- %th
+ %ul.bordered-list
- @activities.each do |update|
- = render "branch", branch: update.head
+ = render "projects/branches/branch", branch: update.head
end
end
+ resources :branches, only: [:index, :create, :destroy]
resources :protected_branches, only: [:index, :create, :destroy]
resources :refs, only: [] do