Commit 7a167cf1 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Move branches list to own controller with pagination. Ability to remove branches from UI

parent a466b217
......@@ -62,6 +62,9 @@ $ ->
# 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()
......
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
......@@ -8,10 +8,6 @@ class Projects::RepositoriesController < Projects::ApplicationController
@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)
......@@ -33,6 +35,10 @@ class Repository
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+'
......
- commit = Commit.new(Gitlab::Git::Commit.new(branch.commit))
%tr
%td
%li
%h4
= 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
%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: ''
......@@ -18,9 +25,3 @@
%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
= 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'
......@@ -5,5 +5,5 @@
= 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)
= 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
......@@ -3,12 +3,7 @@
.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
......@@ -225,6 +225,7 @@ Gitlab::Application.routes.draw do
end
end
resources :branches, only: [:index, :create, :destroy]
resources :protected_branches, only: [:index, :create, :destroy]
resources :refs, only: [] do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment