diff options
author | boasting-squirrel <boasting.squirrel@gmail.com> | 2019-04-06 14:39:12 +0000 |
---|---|---|
committer | boasting-squirrel <boasting.squirrel@gmail.com> | 2019-04-06 14:39:12 +0000 |
commit | 134c7397d4a8686fd091119c7ab2bcc06f0247e8 (patch) | |
tree | 8ef74dcb80bd93760af8edb3e2f534c6b6856331 /src/listing.rs | |
parent | Use serde lowercase for SortingMethods enum (diff) | |
parent | Merge pull request #58 from vojta7/file_uploading (diff) | |
download | miniserve-134c7397d4a8686fd091119c7ab2bcc06f0247e8.tar.gz miniserve-134c7397d4a8686fd091119c7ab2bcc06f0247e8.zip |
Merged upload + adapted it to the new design
Diffstat (limited to 'src/listing.rs')
-rw-r--r-- | src/listing.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/listing.rs b/src/listing.rs index de84dc6..b7070f3 100644 --- a/src/listing.rs +++ b/src/listing.rs @@ -144,14 +144,20 @@ pub fn directory_listing<S>( dir: &fs::Directory, req: &HttpRequest<S>, skip_symlinks: bool, + file_upload: bool, random_route: Option<String>, default_color_scheme: themes::ColorScheme, + upload_route: String, ) -> Result<HttpResponse, io::Error> { let title = format!("Index of {}", req.path()); let base = Path::new(req.path()); let random_route = format!("/{}", random_route.unwrap_or_default()); let is_root = base.parent().is_none() || req.path() == random_route; let page_parent = base.parent().map(|p| p.display().to_string()); + let current_dir = match base.strip_prefix(random_route) { + Ok(c_d) => Path::new("/").join(c_d), + Err(_) => base.to_path_buf(), + }; let (sort_method, sort_order, download, color_scheme) = if let Ok(query) = Query::<QueryParameters>::extract(req) { @@ -292,6 +298,9 @@ pub fn directory_listing<S>( sort_method, sort_order, color_scheme, + file_upload, + &upload_route, + ¤t_dir.display().to_string(), ) .into_string(), )) |