Commit page: async load branches info
Conflicts: config/routes.rb
This commit is contained in:
parent
7bf2036852
commit
b9d9ac82a9
|
@ -11,8 +11,6 @@ class Projects::CommitController < Projects::ApplicationController
|
||||||
return git_not_found! unless @commit
|
return git_not_found! unless @commit
|
||||||
|
|
||||||
@line_notes = @project.notes.for_commit_id(commit.id).inline
|
@line_notes = @project.notes.for_commit_id(commit.id).inline
|
||||||
@branches = @project.repository.branch_names_contains(commit.id)
|
|
||||||
@tags = @project.repository.tag_names_contains(commit.id)
|
|
||||||
@diffs = @commit.diffs
|
@diffs = @commit.diffs
|
||||||
@note = @project.build_commit_note(commit)
|
@note = @project.build_commit_note(commit)
|
||||||
@notes_count = @project.notes.for_commit_id(commit.id).count
|
@notes_count = @project.notes.for_commit_id(commit.id).count
|
||||||
|
@ -31,6 +29,12 @@ class Projects::CommitController < Projects::ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def branches
|
||||||
|
@branches = @project.repository.branch_names_contains(commit.id)
|
||||||
|
@tags = @project.repository.tag_names_contains(commit.id)
|
||||||
|
render layout: false
|
||||||
|
end
|
||||||
|
|
||||||
def commit
|
def commit
|
||||||
@commit ||= @project.repository.commit(params[:id])
|
@commit ||= @project.repository.commit(params[:id])
|
||||||
end
|
end
|
||||||
|
|
|
@ -37,23 +37,8 @@
|
||||||
- @commit.parents.each do |parent|
|
- @commit.parents.each do |parent|
|
||||||
= link_to parent.short_id, project_commit_path(@project, parent)
|
= link_to parent.short_id, project_commit_path(@project, parent)
|
||||||
|
|
||||||
.commit-info-row
|
.commit-info-row.branches
|
||||||
- if @branches.any?
|
%i.fa.fa-spinner.fa-spin
|
||||||
%span
|
|
||||||
- branch = commit_default_branch(@project, @branches)
|
|
||||||
= link_to(project_tree_path(@project, branch)) do
|
|
||||||
%span.label.label-gray
|
|
||||||
%i.fa.fa-code-fork
|
|
||||||
= branch
|
|
||||||
- if @branches.any? || @tags.any?
|
|
||||||
= link_to("#", class: "js-details-expand") do
|
|
||||||
%span.label.label-gray
|
|
||||||
\...
|
|
||||||
%span.js-details-content.hide
|
|
||||||
- if @branches.any?
|
|
||||||
= commit_branches_links(@project, @branches)
|
|
||||||
- if @tags.any?
|
|
||||||
= commit_tags_links(@project, @tags)
|
|
||||||
|
|
||||||
.commit-box
|
.commit-box
|
||||||
%h3.commit-title
|
%h3.commit-title
|
||||||
|
@ -61,3 +46,7 @@
|
||||||
- if @commit.description.present?
|
- if @commit.description.present?
|
||||||
%pre.commit-description
|
%pre.commit-description
|
||||||
= preserve(gfm(escape_once(@commit.description)))
|
= preserve(gfm(escape_once(@commit.description)))
|
||||||
|
|
||||||
|
:coffeescript
|
||||||
|
$ ->
|
||||||
|
$(".commit-info-row.branches").load("#{branches_project_commit_path(@project, @commit.id)}")
|
|
@ -0,0 +1,16 @@
|
||||||
|
- if @branches.any?
|
||||||
|
%span
|
||||||
|
- branch = commit_default_branch(@project, @branches)
|
||||||
|
= link_to(project_tree_path(@project, branch)) do
|
||||||
|
%span.label.label-gray
|
||||||
|
%i.fa.fa-code-fork
|
||||||
|
= branch
|
||||||
|
- if @branches.any? || @tags.any?
|
||||||
|
= link_to("#", class: "js-details-expand") do
|
||||||
|
%span.label.label-gray
|
||||||
|
\...
|
||||||
|
%span.js-details-content.hide
|
||||||
|
- if @branches.any?
|
||||||
|
= commit_branches_links(@project, @branches)
|
||||||
|
- if @tags.any?
|
||||||
|
= commit_tags_links(@project, @tags)
|
|
@ -228,8 +228,12 @@ Gitlab::Application.routes.draw do
|
||||||
resources :raw, only: [:show], constraints: { id: /.+/ }
|
resources :raw, only: [:show], constraints: { id: /.+/ }
|
||||||
resources :tree, only: [:show], constraints: { id: /.+/, format: /(html|js)/ }
|
resources :tree, only: [:show], constraints: { id: /.+/, format: /(html|js)/ }
|
||||||
resource :avatar, only: [:show, :destroy]
|
resource :avatar, only: [:show, :destroy]
|
||||||
resources :commit, only: [:show], constraints: { id: /[[:alnum:]]{6,40}/ }
|
|
||||||
resources :commits, only: [:show], constraints: { id: /(?:[^.]|\.(?!atom$))+/, format: /atom/ }
|
resources :commit, only: [:show], constraints: {id: /[[:alnum:]]{6,40}/} do
|
||||||
|
get :branches, on: :member
|
||||||
|
end
|
||||||
|
|
||||||
|
resources :commits, only: [:show], constraints: {id: /(?:[^.]|\.(?!atom$))+/, format: /atom/}
|
||||||
resources :compare, only: [:index, :create]
|
resources :compare, only: [:index, :create]
|
||||||
resources :blame, only: [:show], constraints: { id: /.+/ }
|
resources :blame, only: [:show], constraints: { id: /.+/ }
|
||||||
resources :network, only: [:show], constraints: { id: /(?:[^.]|\.(?!json$))+/, format: /json/ }
|
resources :network, only: [:show], constraints: { id: /(?:[^.]|\.(?!json$))+/, format: /json/ }
|
||||||
|
|
|
@ -70,4 +70,13 @@ describe Projects::CommitController do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "#branches" do
|
||||||
|
it "contains branch and tags information" do
|
||||||
|
get :branches, project_id: project.to_param, id: commit.id
|
||||||
|
|
||||||
|
expect(assigns(:branches)).to include("master", "feature_conflict")
|
||||||
|
expect(assigns(:tags)).to include("v1.1.0")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue