diff options
author | Sven-Hendrik Haase <svenstaro@gmail.com> | 2024-01-13 04:36:58 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-13 04:36:58 +0000 |
commit | c78db05996af04e52d6b16f961a8b247a60c3e88 (patch) | |
tree | 53149c8ee8aa68fa680d23e5011a4c3adfd5b5de /src/listing.rs | |
parent | Use tokio::fs instead of std::fs to enable async file operations (fixes #445) (diff) | |
parent | Set default sorting order and method with arguments (diff) | |
download | miniserve-c78db05996af04e52d6b16f961a8b247a60c3e88.tar.gz miniserve-c78db05996af04e52d6b16f961a8b247a60c3e88.zip |
Merge pull request #1308 from ElliottLandsborough/set_sorting_order_with_arguments
Set default sorting order and method with arguments
Diffstat (limited to 'src/listing.rs')
-rw-r--r-- | src/listing.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/listing.rs b/src/listing.rs index 6e75b0e..40c5a77 100644 --- a/src/listing.rs +++ b/src/listing.rs @@ -223,7 +223,7 @@ pub fn directory_listing( res }; - let query_params = extract_query_parameters(req); + let mut query_params = extract_query_parameters(req); let mut entries: Vec<Entry> = Vec::new(); let mut readme: Option<(String, String)> = None; @@ -299,6 +299,14 @@ pub fn directory_listing( } } + if query_params.sort.is_none() { + query_params.sort = conf.default_sorting_method + } + + if query_params.order.is_none() { + query_params.order = conf.default_sorting_order + } + match query_params.sort.unwrap_or(SortingMethod::Name) { SortingMethod::Name => entries.sort_by(|e1, e2| { alphanumeric_sort::compare_str(e1.name.to_lowercase(), e2.name.to_lowercase()) @@ -319,7 +327,7 @@ pub fn directory_listing( }), }; - if let Some(SortingOrder::Descending) = query_params.order { + if let Some(SortingOrder::Ascending) = query_params.order { entries.reverse() } |