diff options
Diffstat (limited to 'src/listing.rs')
-rw-r--r-- | src/listing.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/listing.rs b/src/listing.rs index eb0b8e1..d7cfd7e 100644 --- a/src/listing.rs +++ b/src/listing.rs @@ -158,6 +158,7 @@ pub fn directory_listing( upload_route: String, tar_enabled: bool, zip_enabled: bool, + dirs_first: bool, title: Option<String>, ) -> Result<ServiceResponse, io::Error> { use actix_web::dev::BodyEncoding; @@ -321,6 +322,11 @@ pub fn directory_listing( entries.reverse() } + // List directories first + if dirs_first { + entries.sort_by_key(|e| !e.is_dir()); + } + if let Some(compression_method) = query_params.download { if !compression_method.is_enabled(tar_enabled, zip_enabled) { return Ok(ServiceResponse::new( |