Merge branch 'fix-404-on-network-when-entering-a-nonexistent-git-revision' into 'master'
Network page appear with an error message when entering nonexistent git revision Closes #2362 See merge request !7172
This commit is contained in:
commit
55e0065b49
7 changed files with 33 additions and 14 deletions
|
@ -9,6 +9,8 @@
|
|||
|
||||
(function() {
|
||||
$(function() {
|
||||
if (!$(".network-graph").length) return;
|
||||
|
||||
var network_graph;
|
||||
network_graph = new Network({
|
||||
url: $(".network-graph").attr('data-url'),
|
||||
|
|
|
@ -5,17 +5,29 @@ class Projects::NetworkController < Projects::ApplicationController
|
|||
before_action :require_non_empty_project
|
||||
before_action :assign_ref_vars
|
||||
before_action :authorize_download_code!
|
||||
before_action :assign_commit
|
||||
|
||||
def show
|
||||
@url = namespace_project_network_path(@project.namespace, @project, @ref, @options.merge(format: :json))
|
||||
@commit_url = namespace_project_commit_path(@project.namespace, @project, 'ae45ca32').gsub("ae45ca32", "%s")
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.html do
|
||||
if @options[:extended_sha1] && !@commit
|
||||
flash.now[:alert] = "Git revision '#{@options[:extended_sha1]}' does not exist."
|
||||
end
|
||||
end
|
||||
|
||||
format.json do
|
||||
@graph = Network::Graph.new(project, @ref, @commit, @options[:filter_ref])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def assign_commit
|
||||
return if params[:extended_sha1].blank?
|
||||
|
||||
@options[:extended_sha1] = params[:extended_sha1]
|
||||
@commit = @repo.commit(@options[:extended_sha1])
|
||||
end
|
||||
end
|
||||
|
|
|
@ -17,5 +17,6 @@
|
|||
= check_box_tag :filter_ref, 1, @options[:filter_ref]
|
||||
%span Begin with the selected commit
|
||||
|
||||
.network-graph{ data: { url: @url, commit_url: @commit_url, ref: @ref, commit_id: @commit.id } }
|
||||
= spinner nil, true
|
||||
- if @commit
|
||||
.network-graph{ data: { url: @url, commit_url: @commit_url, ref: @ref, commit_id: @commit.id } }
|
||||
= spinner nil, true
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Fix 404 on network page when entering non-existent git revision
|
||||
merge_request: 7172
|
||||
author: Hiroyuki Sato
|
|
@ -43,4 +43,4 @@ Feature: Project Network Graph
|
|||
|
||||
Scenario: I should fail to look for a commit
|
||||
When I look for a commit by ";"
|
||||
Then page status code should be 404
|
||||
Then I should see non-existent git revision error message
|
||||
|
|
|
@ -109,4 +109,8 @@ class Spinach::Features::ProjectNetworkGraph < Spinach::FeatureSteps
|
|||
find('button').click
|
||||
end
|
||||
end
|
||||
|
||||
step 'I should see non-existent git revision error message' do
|
||||
expect(page).to have_selector '.flash-alert', text: "Git revision ';' does not exist."
|
||||
end
|
||||
end
|
||||
|
|
|
@ -106,7 +106,7 @@ module ExtractsPath
|
|||
# resolved (e.g., when a user inserts an invalid path or ref).
|
||||
def assign_ref_vars
|
||||
# assign allowed options
|
||||
allowed_options = ["filter_ref", "extended_sha1"]
|
||||
allowed_options = ["filter_ref"]
|
||||
@options = params.select {|key, value| allowed_options.include?(key) && !value.blank? }
|
||||
@options = HashWithIndifferentAccess.new(@options)
|
||||
|
||||
|
@ -114,17 +114,13 @@ module ExtractsPath
|
|||
@ref, @path = extract_ref(@id)
|
||||
@repo = @project.repository
|
||||
|
||||
if @options[:extended_sha1].present?
|
||||
@commit = @repo.commit(@options[:extended_sha1])
|
||||
else
|
||||
@commit = @repo.commit(@ref)
|
||||
|
||||
if @path.empty? && !@commit && @id.ends_with?('.atom')
|
||||
@id = @ref = extract_ref_without_atom(@id)
|
||||
@commit = @repo.commit(@ref)
|
||||
|
||||
if @path.empty? && !@commit && @id.ends_with?('.atom')
|
||||
@id = @ref = extract_ref_without_atom(@id)
|
||||
@commit = @repo.commit(@ref)
|
||||
|
||||
request.format = :atom if @commit
|
||||
end
|
||||
request.format = :atom if @commit
|
||||
end
|
||||
|
||||
raise InvalidPathError unless @commit
|
||||
|
|
Loading…
Reference in a new issue