mirror of
				https://github.com/filebrowser/filebrowser.git
				synced 2025-10-31 17:23:09 +00:00 
			
		
		
		
	Last Modified Sort (#174)
* Last Modified sorting * Goimported the file so travis doesn't complain. Former-commit-id: 06484c47f1426eb26be91032bc8269a74db2c75b [formerly 45a2fa0c020ec678e8780a7b1877013cccd709fd] [formerly 576db545eb2caee9497fa01cac64b95a9c73e8f7 [formerly b61a9899585d1baac4ef8ae5296e256e9317e972]] Former-commit-id: 574cce1c8c2dc2680149f829f491a45561ec08e1 [formerly 4aed04767c209ab1fe2d43b44eecdfcc15554552] Former-commit-id: e95f9822151173fe30713e749a3a510d792d3636
This commit is contained in:
		
							parent
							
								
									1755d52019
								
							
						
					
					
						commit
						4a4db4f4ee
					
				| @ -20,12 +20,14 @@ | ||||
|             <i class="material-icons">{{ nameIcon }}</i> | ||||
|           </p> | ||||
| 
 | ||||
|           <p :class="{ active: !nameSorted }" class="size" @click="sort('size')"> | ||||
|           <p :class="{ active: sizeSorted }" class="size" @click="sort('size')"> | ||||
|             <span>Size</span> | ||||
|             <i class="material-icons">{{ sizeIcon }}</i> | ||||
|           </p> | ||||
| 
 | ||||
|           <p class="modified">Last modified</p> | ||||
|           <p :class="{ active: modifiedSorted }" class="modified" @click="sort('modified')"> | ||||
|             <span>Last modified</span> | ||||
|             <i class="material-icons">{{ modifiedIcon }}</i> | ||||
|           </p> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
| @ -86,6 +88,12 @@ export default { | ||||
|     nameSorted () { | ||||
|       return (this.req.sort === 'name') | ||||
|     }, | ||||
|     sizeSorted () { | ||||
|       return (this.req.sort === 'size') | ||||
|     }, | ||||
|     modifiedSorted () { | ||||
|       return (this.req.sort === 'modified') | ||||
|     }, | ||||
|     ascOrdered () { | ||||
|       return (this.req.order === 'asc') | ||||
|     }, | ||||
| @ -97,7 +105,14 @@ export default { | ||||
|       return 'arrow_downward' | ||||
|     }, | ||||
|     sizeIcon () { | ||||
|       if (!this.nameSorted && this.ascOrdered) { | ||||
|       if (this.sizeSorted && this.ascOrdered) { | ||||
|         return 'arrow_downward' | ||||
|       } | ||||
| 
 | ||||
|       return 'arrow_upward' | ||||
|     }, | ||||
|     modifiedIcon () { | ||||
|       if (this.modifiedSorted && this.ascOrdered) { | ||||
|         return 'arrow_downward' | ||||
|       } | ||||
| 
 | ||||
| @ -275,10 +290,14 @@ export default { | ||||
|         if (this.nameIcon === 'arrow_upward') { | ||||
|           order = 'asc' | ||||
|         } | ||||
|       } else { | ||||
|       } else if (sort === 'size') { | ||||
|         if (this.sizeIcon === 'arrow_upward') { | ||||
|           order = 'asc' | ||||
|         } | ||||
|       } else if (sort === 'modified') { | ||||
|         if (this.modifiedIcon === 'arrow_upward') { | ||||
|           order = 'asc' | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       let path = this.$store.state.baseURL | ||||
|  | ||||
							
								
								
									
										19
									
								
								file.go
									
									
									
									
									
								
							
							
								
								
								
								
								
								
							
						
						
									
										19
									
								
								file.go
									
									
									
									
									
								
							| @ -328,6 +328,8 @@ func (l listing) ApplySort() { | ||||
| 			sort.Sort(sort.Reverse(byName(l))) | ||||
| 		case "size": | ||||
| 			sort.Sort(sort.Reverse(bySize(l))) | ||||
| 		case "modified": | ||||
| 			sort.Sort(sort.Reverse(byModified(l))) | ||||
| 		default: | ||||
| 			// If not one of the above, do nothing | ||||
| 			return | ||||
| @ -338,6 +340,8 @@ func (l listing) ApplySort() { | ||||
| 			sort.Sort(byName(l)) | ||||
| 		case "size": | ||||
| 			sort.Sort(bySize(l)) | ||||
| 		case "modified": | ||||
| 			sort.Sort(byModified(l)) | ||||
| 		default: | ||||
| 			sort.Sort(byName(l)) | ||||
| 			return | ||||
| @ -348,6 +352,7 @@ func (l listing) ApplySort() { | ||||
| // Implement sorting for listing | ||||
| type byName listing | ||||
| type bySize listing | ||||
| type byModified listing | ||||
| 
 | ||||
| // By Name | ||||
| func (l byName) Len() int { | ||||
| @ -392,6 +397,20 @@ func (l bySize) Less(i, j int) bool { | ||||
| 	return iSize < jSize | ||||
| } | ||||
| 
 | ||||
| // By Modified | ||||
| func (l byModified) Len() int { | ||||
| 	return len(l.Items) | ||||
| } | ||||
| 
 | ||||
| func (l byModified) Swap(i, j int) { | ||||
| 	l.Items[i], l.Items[j] = l.Items[j], l.Items[i] | ||||
| } | ||||
| 
 | ||||
| func (l byModified) Less(i, j int) bool { | ||||
| 	iModified, jModified := l.Items[i].ModTime, l.Items[j].ModTime | ||||
| 	return iModified.Sub(jModified) < 0 | ||||
| } | ||||
| 
 | ||||
| var textExtensions = [...]string{ | ||||
| 	".md", ".markdown", ".mdown", ".mmark", | ||||
| 	".asciidoc", ".adoc", ".ad", | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Eric Volpert
						Eric Volpert