aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/server/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/server/server.go')
-rw-r--r--pkg/server/server.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/pkg/server/server.go b/pkg/server/server.go
index 65034be..a68a952 100644
--- a/pkg/server/server.go
+++ b/pkg/server/server.go
@@ -41,6 +41,20 @@ You can change the order using <pre>sortOrder</pre> with <pre>asc</pre> or <pre>
<fieldset><legend>Submit a Query</legend>
<label for="query">Query:</label>
<input type="text" name="query" required />
+<label for="sortBy">Sort By:</label>
+<select name="sortBy">
+<option value="path">Path</option>
+<option value="title">Title</option>
+<option value="date">Date</option>
+<option value="headings">Headings</option>
+<option value="filetime">Filetime</option>
+<option value="meta">Metadata</option>
+</select>
+<label for="sortOrder">Sort Order:</label>
+<select name="sortOrder">
+<option value="">Ascending</option>
+<option value="desc">Descending</option>
+</select>
<input type="submit" />
</fieldset>
</form>
@@ -96,12 +110,21 @@ func NewMux(db *data.Query) *http.ServeMux {
queryParams := r.URL.Query()
if queryParams.Has("sortBy") {
+ slog.Debug("Parsing sorting info from query params")
sortBy := queryParams.Get("sortBy")
sortOrder := queryParams.Get("sortOrder")
docCmp, ok := index.NewDocCmp(sortBy, sortOrder == "desc" || sortOrder == "descending")
if ok {
slices.SortFunc(docs, docCmp)
}
+ } else if r.Form.Has("sortBy") {
+ slog.Debug("Parsing sorting info from form data")
+ sortBy := r.Form.Get("sortBy")
+ sortOrder := r.Form.Get("sortOrder")
+ docCmp, ok := index.NewDocCmp(sortBy, sortOrder == "desc" || sortOrder == "descending")
+ if ok {
+ slices.SortFunc(docs, docCmp)
+ }
}
if !maxFileTime.IsZero() {