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 @@ $ -> ...@@ -62,6 +62,9 @@ $ ->
# Click a .one_click_select field, select the contents # Click a .one_click_select field, select the contents
$(".one_click_select").on 'click', -> $(@).select() $(".one_click_select").on 'click', -> $(@).select()
$('.remove-row').bind 'ajax:success', ->
$(this).closest('li').fadeOut()
# Click a .appear-link, appear-data fadeout # Click a .appear-link, appear-data fadeout
$(".appear-link").on 'click', (e) -> $(".appear-link").on 'click', (e) ->
$('.appear-data').fadeIn() $('.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 ...@@ -8,10 +8,6 @@ class Projects::RepositoriesController < Projects::ApplicationController
@activities = @repository.commits_with_refs(20) @activities = @repository.commits_with_refs(20)
end end
def branches
@branches = @repository.branches
end
def tags def tags
@tags = @repository.tags @tags = @repository.tags
end end
......
class Repository class Repository
include Gitlab::ShellAdapter
attr_accessor :raw_repository attr_accessor :raw_repository
def initialize(path_with_namespace, default_branch) def initialize(path_with_namespace, default_branch)
...@@ -33,6 +35,10 @@ class Repository ...@@ -33,6 +35,10 @@ class Repository
commits commits
end end
def rm_branch(branch_name)
gitlab_shell.rm_branch(path_with_namespace, branch_name)
end
def round_commit_count def round_commit_count
if commit_count > 10000 if commit_count > 10000
'10000+' '10000+'
......
- commit = Commit.new(Gitlab::Git::Commit.new(branch.commit)) - commit = Commit.new(Gitlab::Git::Commit.new(branch.commit))
%tr %li
%td %h4
= link_to project_commits_path(@project, branch.name) do = 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) %strong= truncate(branch.name, length: 60)
- if branch.name == @repository.root_ref - if branch.name == @repository.root_ref
%span.label default %span.label.label-info default
%td - 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 = link_to project_commit_path(@project, commit.id), class: 'commit_short_id' do
= commit.short_id = commit.short_id
= image_tag gravatar_icon(commit.author_email), class: "avatar s16", alt: '' = image_tag gravatar_icon(commit.author_email), class: "avatar s16", alt: ''
...@@ -18,9 +25,3 @@ ...@@ -18,9 +25,3 @@
%span %span
= time_ago_in_words(commit.committed_date) = time_ago_in_words(commit.committed_date)
ago 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 @@ ...@@ -5,5 +5,5 @@
= link_to project_protected_branches_path(@project) do = link_to project_protected_branches_path(@project) do
Protected Protected
%i.icon-lock %i.icon-lock
= nav_link(path: 'repositories#branches') do = nav_link(path: 'branches#index') do
= link_to 'All branches', branches_project_repository_path(@project) = 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 @@ ...@@ -3,12 +3,7 @@
.span3 .span3
= render "filter" = render "filter"
.span9 .span9
%table %ul.bordered-list
%thead
%tr
%th Name
%th Last commit
%th
- @activities.each do |update| - @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 ...@@ -225,6 +225,7 @@ Gitlab::Application.routes.draw do
end end
end end
resources :branches, only: [:index, :create, :destroy]
resources :protected_branches, only: [:index, :create, :destroy] resources :protected_branches, only: [:index, :create, :destroy]
resources :refs, only: [] do 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