Link to previous commited source file (diff.view_file button) instead of returning 404 for deleted files.
This commit is contained in:
		
					parent
					
						
							
								16018e8323
							
						
					
				
			
			
				commit
				
					
						fc6d80d619
					
				
			
		
					 3 changed files with 16 additions and 0 deletions
				
			
		|  | @ -60,6 +60,8 @@ type DiffFile struct { | |||
| 	Index              int | ||||
| 	Addition, Deletion int | ||||
| 	Type               int | ||||
| 	IsCreated          bool | ||||
| 	IsDeleted          bool | ||||
| 	IsBin              bool | ||||
| 	Sections           []*DiffSection | ||||
| } | ||||
|  | @ -181,10 +183,16 @@ func ParsePatch(pid int64, maxlines int, cmd *exec.Cmd, reader io.Reader) (*Diff | |||
| 				switch { | ||||
| 				case strings.HasPrefix(scanner.Text(), "new file"): | ||||
| 					curFile.Type = DIFF_FILE_ADD | ||||
| 					curFile.IsDeleted = false | ||||
| 					curFile.IsCreated = true | ||||
| 				case strings.HasPrefix(scanner.Text(), "deleted"): | ||||
| 					curFile.Type = DIFF_FILE_DEL | ||||
| 					curFile.IsCreated = false | ||||
| 					curFile.IsDeleted = true | ||||
| 				case strings.HasPrefix(scanner.Text(), "index"): | ||||
| 					curFile.Type = DIFF_FILE_CHANGE | ||||
| 					curFile.IsCreated = false | ||||
| 					curFile.IsDeleted = false | ||||
| 				} | ||||
| 				if curFile.Type > 0 { | ||||
| 					break | ||||
|  |  | |||
|  | @ -253,6 +253,9 @@ func Diff(ctx *middleware.Context) { | |||
| 	ctx.Data["Parents"] = parents | ||||
| 	ctx.Data["DiffNotAvailable"] = diff.NumFiles() == 0 | ||||
| 	ctx.Data["SourcePath"] = setting.AppSubUrl + "/" + path.Join(userName, repoName, "src", commitId) | ||||
| 	if (commit.ParentCount() > 0) { | ||||
| 		ctx.Data["BeforeSourcePath"] = setting.AppSubUrl + "/" + path.Join(userName, repoName, "src", parents[0]) | ||||
| 	} | ||||
| 	ctx.Data["RawPath"] = setting.AppSubUrl + "/" + path.Join(userName, repoName, "raw", commitId) | ||||
| 	ctx.HTML(200, DIFF) | ||||
| } | ||||
|  | @ -316,6 +319,7 @@ func CompareDiff(ctx *middleware.Context) { | |||
| 	ctx.Data["Diff"] = diff | ||||
| 	ctx.Data["DiffNotAvailable"] = diff.NumFiles() == 0 | ||||
| 	ctx.Data["SourcePath"] = setting.AppSubUrl + "/" + path.Join(userName, repoName, "src", afterCommitId) | ||||
| 	ctx.Data["BeforeSourcePath"] = setting.AppSubUrl + "/" + path.Join(userName, repoName, "src", beforeCommitId) | ||||
| 	ctx.Data["RawPath"] = setting.AppSubUrl + "/" + path.Join(userName, repoName, "raw", afterCommitId) | ||||
| 	ctx.HTML(200, DIFF) | ||||
| } | ||||
|  |  | |||
|  | @ -89,7 +89,11 @@ | |||
|                     {{$.i18n.Tr "repo.diff.bin"}} | ||||
|                     {{end}} | ||||
|                 </div> | ||||
|                 {{if $file.IsDeleted}} | ||||
|                 <a class="btn btn-gray btn-header btn-radius text-black pull-right" rel="nofollow" href="{{$.BeforeSourcePath}}/{{.Name}}">{{$.i18n.Tr "repo.diff.view_file"}}</a> | ||||
|                 {{else}} | ||||
|                 <a class="btn btn-gray btn-header btn-radius text-black pull-right" rel="nofollow" href="{{$.SourcePath}}/{{.Name}}">{{$.i18n.Tr "repo.diff.view_file"}}</a> | ||||
|                 {{end}} | ||||
|                 <span class="file">{{$file.Name}}</span> | ||||
|             </div> | ||||
|             {{$isImage := (call $.IsImageFile $file.Name)}} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tony Tsang
				Tony Tsang