aboutsummaryrefslogtreecommitdiffstats
path: root/src/listing.rs
diff options
context:
space:
mode:
authorSven-Hendrik Haase <svenstaro@gmail.com>2024-01-13 04:36:58 +0000
committerGitHub <noreply@github.com>2024-01-13 04:36:58 +0000
commitc78db05996af04e52d6b16f961a8b247a60c3e88 (patch)
tree53149c8ee8aa68fa680d23e5011a4c3adfd5b5de /src/listing.rs
parentUse tokio::fs instead of std::fs to enable async file operations (fixes #445) (diff)
parentSet default sorting order and method with arguments (diff)
downloadminiserve-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.rs12
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()
}