Implementation of Folder Jumping
This commit is contained in:
		
							parent
							
								
									331316894e
								
							
						
					
					
						commit
						c22f9114c7
					
				
					 6 changed files with 54 additions and 5 deletions
				
			
		|  | @ -117,6 +117,17 @@ func NewFuncMap() []template.FuncMap { | |||
| 			} | ||||
| 			return "tab-size-8" | ||||
| 		}, | ||||
| 		"SubJumpablePath": func(str string) []string { | ||||
| 			var path []string | ||||
| 			index := strings.LastIndex(str, "/") | ||||
| 			if index != -1 && index != len(str) { | ||||
| 				path = append(path, string(str[0:index+1])) | ||||
| 				path = append(path, string(str[index+1:])) | ||||
| 			} else { | ||||
| 				path = append(path, str) | ||||
| 			} | ||||
| 			return path | ||||
| 		}, | ||||
| 	}} | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1272,6 +1272,9 @@ footer .ui.language .menu { | |||
| .repository.file.list #repo-files-table tr:hover { | ||||
|   background-color: #ffffEE; | ||||
| } | ||||
| .repository.file.list #repo-files-table .jumpable-path { | ||||
|   color: #888; | ||||
| } | ||||
| .repository.file.list #file-content .header .icon { | ||||
|   font-size: 1em; | ||||
|   margin-top: -2px; | ||||
|  |  | |||
|  | @ -205,6 +205,9 @@ | |||
| 			tr:hover { | ||||
| 				background-color: #ffffEE; | ||||
| 			} | ||||
|             .jumpable-path { | ||||
|                 color: #888; | ||||
|             } | ||||
| 		} | ||||
| 
 | ||||
| 		#file-content { | ||||
|  |  | |||
|  | @ -43,8 +43,21 @@ | |||
| 					</td> | ||||
| 				{{else}} | ||||
| 					<td class="name"> | ||||
| 						<span class="octicon octicon-file-{{if or $entry.IsDir}}directory{{else}}text{{end}}"></span> | ||||
| 						{{if $entry.IsDir}} | ||||
| 							{{$subJumpablePathName := $entry.GetSubJumpablePathName}} | ||||
| 							{{$subJumpablePath := SubJumpablePath $subJumpablePathName}} | ||||
| 							<span class="octicon octicon-file-directory"></span> | ||||
| 							<a href="{{EscapePound $.TreeLink}}/{{EscapePound $subJumpablePathName}}"> | ||||
| 								{{if eq (len $subJumpablePath) 2}} | ||||
| 									<span class="jumpable-path">{{index  $subJumpablePath 0}}</span>{{index  $subJumpablePath 1}} | ||||
| 								{{else}} | ||||
| 									{{index $subJumpablePath 0}} | ||||
| 								{{end}} | ||||
| 							</a> | ||||
| 						{{else}} | ||||
| 							<span class="octicon octicon-file-text"></span> | ||||
| 							<a href="{{EscapePound $.TreeLink}}/{{EscapePound $entry.Name}}">{{$entry.Name}}</a> | ||||
| 						{{end}} | ||||
| 					</td> | ||||
| 				{{end}} | ||||
| 				<td class="message collapsing has-emoji"> | ||||
|  |  | |||
							
								
								
									
										19
									
								
								vendor/code.gitea.io/git/tree_entry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/code.gitea.io/git/tree_entry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							|  | @ -94,6 +94,25 @@ func (te *TreeEntry) Blob() *Blob { | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| // GetSubJumpablePathName return the full path of subdirectory jumpable ( contains only one directory )
 | ||||
| func (te *TreeEntry) GetSubJumpablePathName() string { | ||||
| 	if te.IsSubModule() || !te.IsDir() { | ||||
| 		return "" | ||||
| 	} | ||||
| 	tree, err := te.ptree.SubTree(te.name) | ||||
| 	if err != nil { | ||||
| 		return te.name | ||||
| 	} | ||||
| 	entries, _ := tree.ListEntries() | ||||
| 	if len(entries) == 1 && entries[0].IsDir() { | ||||
| 		name := entries[0].GetSubJumpablePathName() | ||||
| 		if name != "" { | ||||
| 			return te.name + "/" + name | ||||
| 		} | ||||
| 	} | ||||
| 	return te.name | ||||
| } | ||||
| 
 | ||||
| // Entries a list of entry
 | ||||
| type Entries []*TreeEntry | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										6
									
								
								vendor/vendor.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/vendor.json
									
									
									
									
										vendored
									
									
								
							|  | @ -3,10 +3,10 @@ | |||
| 	"ignore": "test", | ||||
| 	"package": [ | ||||
| 		{ | ||||
| 			"checksumSHA1": "OWuUWQ8sWC8n+eTQttx+3vfES8g=", | ||||
| 			"checksumSHA1": "mIaKLz6373W+jDLjgE/Yzt/exeo=", | ||||
| 			"path": "code.gitea.io/git", | ||||
| 			"revision": "634abd6a61c350a95f6b146c3a5fc323282608ae", | ||||
| 			"revisionTime": "2016-12-22T08:49:21Z" | ||||
| 			"revision": "3d0fa331865619d2f3a7a0fcf23670a389310954", | ||||
| 			"revisionTime": "2016-12-28T14:57:51Z" | ||||
| 		}, | ||||
| 		{ | ||||
| 			"checksumSHA1": "dnGaLR7sd9D5YpQZP4QUGZiEq+c=", | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue